2011-09-10 13 views
3

なし割引を適用するI次のような問題があります。Magentoの - ショッピングカートのルール

ユーザーは、いくつかの特定の製品を追加したときに自動的に贈り物としてカートに製品を追加するサードパーティ製の拡張機能があります。クーポンも適用されます。たとえば、ユーザーがテレビを購入したいときに無料のWiFiレシーバーを追加します。それは十分に良い製品を追加しますが、これらの製品を100%割引させるためのショッピングカートルールが必要です。

私が行う必要があるのは、ショッピングカートルールなしでこれらの製品を無料で追加することです。私が割引と関連して見つけた唯一のイベントはsales_quote_address_discount_itemですが、それを使った操作は結果をもたらしませんでした。

誰かが正しい方向で私を指し示していると本当に感謝します。このコードでは正確にこの割引が適用されますが、どうすればこの拡張機能から同じものを作ることができますか?

答えて

7

process()方法では、クーポンからの割引はMage_SalesRule_Model_Validatorに適用されます。このメソッドは、引用符で呼び出されるたびにcollectTotals()が呼び出されるたびに呼び出されます。クーポンの動作を無効にするには、このクラスをオーバーライドする必要があります。そのメソッドsalesrule_validator_processの中には、メソッド全体をオーバーライドする代わりに使用できるイベントがありますが、正しい場所に発生するかどうかを変更するロジックによって異なります。

+0

ありがとうございました。それが私の必要なものです。 –

2

add_to_cart_afterイベントが発生した後で、独自のロジックを追加することもできます。 (自分のイベントを作成するapply_discount_after_add_to_cart;)

2

このモジュールを見てください。ショッピングカートにギフトとして商品を追加し、追加中に価格を0 $に設定することができます:http://www.code4business.de/make-a-gift-magento-warenkorbpreisregeln-um-geschenke-erweitern/

これを行うには、salesrule_validator_processとsales_quote_collect_totals_beforeの2つのイベントをキャッチします。それは何も書き換えません。コードは、http://www.webguys.de/magento/turchen-21-kostenlose-produkte-uber-warenkorb-preisregeln/にも詳細に記述されています。

価格ルールが必要ですが、商品(または条件)を特定するだけで贈り物を受け取ることができます。ギフトはいつも無料です。追加のルールは必要ありません。

関連する問題