3

Magento で割引をグループ化する方法を知っている人はいますか? グループごとの最大合計割引を設定する方法は? また、最大合計割引を設定するにはどうすればよいですか? 例えば:

Discount Group 1:
a. Early Bird Discount = 10%
b. Member of ABC Organization = 8%
c. Member of BCD Organization = 5%
-----Total Maximum discount for this discount group = 15%

Discount Group 2:
a. Buy more than 5 items = 10%
b. Member of DFG Organization = 5%
c. Member of ASD Organization = 5%
-----Total Maximum discount for this discount group = 15%

-----Total Maximum discount for ALL discount group = 25%
4

1 に答える 1

6

残念ながら、Magento の標準機能を使用して必要な機能とまったく同じ機能を実現する可能性はありません。ただし、割引グループを使用してカスタマイズを作成し、イベントを観察して割引額を検証できますsalesrule_validator_process

開発のための少しステップバイステップのアドバイス:

  1. そのようなフィールドを持つ 2 つのカスタム テーブルで新しいモデルを作成します。
    • グループテーブル:
      • group_id - 主キー
      • name - グループの名前
      • max_discount - 最大割引額
      • is_percent - タイプ (固定またはパーセント)
    • ルールテーブルへのグループ
      • group_id - primary_key
      • rule_id - sales/rule テーブルの主キーへの外部キー 2. 管理インターフェイスを実装する
  2. すべてのグループの最大割引の構成フィールドを作成します。
  3. salesrule_validator_processそのようなイベントをデータで受け取る イベントのオブザーバーを作成します。
    • $observer->getEvent()->getRule()- 現在適用されているルールのモデル
    • $observer->getEvent()->getItem()- このルールが適用される現在の見積もりアイテム
    • $observer->getEvent()->getAddress()- このルールが適用される現在の見積もりアドレス
    • $observer->getEvent()->getQuote()- 顧客の現在の見積もり
    • $observer->getEvent()->getQty()- 割引の計算に使用されるアイテムの数量: 固定アイテム割引、アイテム価格のパーセント、アイテム価格のパーセントまで
    • $observer->getEvent()->getResult()- 割引として適用されるデータを持つ Varien_Object には、現在 2 つのプロパティがあります。
      • getDiscountAmount()- 現在表示されている通貨での割引額
      • getBaseDiscountAmount()- 基本ウェブサイト通貨での割引額
  4. オブザーバー モデルでロジックを実現します。適用されたルールをオブジェクトに保存し、次のルール適用プロセス (グループの最大値を検証し、適用された割引額を変更) で追跡できます。
于 2012-07-19T09:02:02.430 に答える