後にこれは単純な作業ではありません。残念ながら、Magentoの割引システムは、カートの合計ボックスに一緒に追加したくないかもしれない新しい割引タイプの追加のために非常に準備されていません。
TBT_Rewards_Model_Salesrule_Observer
クラスのresetDiscountLabels()
メソッドを変更する必要があります。ただし、このメソッドはではありません。ここで、Sweet Toothは割引の説明に割引を追加します。まったく逆です。 Sweet Toothの割引はで、Magentoのカートの割引のリストに自動的にが追加されています(割引の説明はこの割引のリストから自動的に生成されます)。問題は、スウィートトゥース割引でさえ、がのカートに追加されないようにすることです。作成したルールに基づいてカートに適用されるディスカウントですが、顧客は実際に購入することを選択していませんまだポイントがありません。 resetDiscountLabels()
メソッドは、にあります。不要なディスカウントの説明をカートから削除します。追加するものではありません。
問題の解決策は2つのステップに分かれています。第2のステップは、より課税的です。
最初に、上記の方法を変更して、すべて Sweet Tooth割引の説明を適用しないでカートから削除する必要があります。私はあなたのapp/code/local codepoolにファイルを最初にコピーし、元のファイルの代わりにそのファイルを修正することをお勧めします。カートのすべてのルールIDをループしてルールモデルを読み込むと、そのpoints_action
フィールドが設定されている場合は$rule->getPointsAction() !== null
の場合Sweet Toothルールかどうかを判断できます。 のルールのうちがスウィートトゥースルールの場合は、そのメソッドがすでに行っている方法で割引の説明からunset
を使用できます。その後、Sweet Toothディスカウントは、その行の合計ボックスに表示されなくなります。
第2のステップは、合計行に新しい行を追加することです.a.k.a.新しい合計モデルを引用符に追加します。これはより複雑なステップになります。これは私がこの答えで説明するよりはるかに複雑ですが、新しい合計カラムの追加に関するチュートリアルです:http://turnkeye.com/blog/magento-development-add-total-row-checkout/新しい合計モデルのcollect()
メソッドでは、見積もりのapplied_redemptions
フィールドをチェックしてリストを取得する必要があります顧客がカートに貼付したSweet ToothルールIDのこれらの値を使用してトータルのSweet Tooth割引を再生成することができます。
私が言ったように、これは簡単な作業ではありません。残念なことに、これを行うには半永久的な方法です。うまくいけばそれほど多くはありません。むしろ自分の開発時間を他のタスクに集中させたい場合は、開発会社を常に雇って、あなたのためにそれを行うこともできます。
これは便利です。
インストールした報酬モジュールの名前は何ですか? –
SweetTooth - http://www.magentocommerce.com/magento-connect/sweet-tooth-customer-rewards.html –
実行中のSweet Toothのバージョンは? – JMTyler