これは簡単な作業ではありません。残念ながら、Magento のディスカウント システムは、カートの合計ボックスに一緒に追加したくない新しいディスカウントタイプを追加するための十分な準備ができていません。
クラスのresetDiscountLabels()
メソッドを変更する必要があることは事実です。TBT_Rewards_Model_Salesrule_Observer
ただし、この方法は、Sweet Tooth が割引の説明に割引を追加する場所ではありません。まったく逆です。Sweet Tooth の割引は、カートの Magento の割引リストに自動的に追加されます (割引の説明は、この割引リストから自動的に生成されます)。問題は、カートに追加されるべきではない甘党の割引でさえそこに表示されることです.作成したルールに基づいてカートに適用される割引ですが、顧客は実際にはまだポイントを使うことを選択していません. . 不要な割引の説明を追加するのではなく、カートから削除するresetDiscountLabels()
方法があります。
問題の解決には 2 つのステップがあり、2 番目のステップは負担が大きくなります。
最初に、上記の方法を変更して、適用されないものだけでなく、すべてのSweet Tooth 割引の説明をカートから削除する必要があります。最初にファイルを app/code/local codepool にコピーし、元のファイルではなくそのファイルを変更することをお勧めします。カートのすべてのルール ID をループしてルール モデルをロードすると、そのpoints_action
フィールドが設定されている場合、つまり$rule->getPointsAction() !== null
. ルールのいずれかが甘党のルールである場合は、割引の説明から、そのメソッドが既に行っている方法でそれらを行うことができますunset
。この後、Sweet Tooth 割引は合計ボックスのその行に表示されなくなります。
2 番目のステップは、合計ボックスに新しい行を追加することです。つまり、新しい合計モデルを見積もりに追加します。これはより複雑なステップになります。この回答で説明できるよりもはるかに複雑ですが、新しい合計列を追加するためのチュートリアルを次に示します: http://turnkeye.com/blog/magento-development-add-total-row- checkout/ 新しい合計モデルのcollect()
メソッドでは、見積もりのapplied_redemptions
フィールドをチェックして、顧客がカートに適用した Sweet Tooth ルール ID のリストを取得する必要があります。次に、これらの値を使用して、Sweet Tooth 割引の合計を再生成できます。
前述したように、これは単純な作業ではありません。残念ながら、これがセミクリーンな唯一の方法です。うまくいけば、それは多すぎません。自分の開発時間を他のタスクに集中させたい場合は、いつでも開発会社を雇ってそれを行うこともできます。
うまくいけば、これは役に立ちます!