2012-07-19 87 views
3

任何人都知道如何在Magento中對摺扣進行分組?如何設置每組最大總折扣?以及如何設置最大總折扣? 例如:如何在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% 

回答

6

Unfourtunatelly沒有可能實現正是你通過Magento的標準功能,需要相同的功能。但是,您可以通過觀察事件salesrule_validator_process,使用折扣組創建自定義並驗證折扣金額。

所以有點步步建議發展:

  1. 創建2定製表的新模式,將有這樣的字段:
    • 組表:
      • GROUP_ID - 主鍵
      • 名稱 - 集團名稱
      • max_discount - 最高折扣金額
      • is_percent - 類型(固定或百分比)
    • 組規則表
      • GROUP_ID - primary_key
      • RULE_ID - 外鍵銷售/規則表的主鍵 2.實施管理界面吧
  2. 創建配置字段以獲得所有組的最大折扣。
  3. 的事件salesrule_validator_process您的數據接收這樣的事件創建觀察者:
    • $observer->getEvent()->getRule() - 當前應用規則
    • $observer->getEvent()->getItem()模式 - 當前報價項目至極此規則適用
    • $observer->getEvent()->getAddress() - 電流本規則適用的報價地址
    • $observer->getEvent()->getQuote() - 客戶的當前報價
    • $observer->getEvent()->getQty() - 用於cal的項目的數量固定商品折扣,商品價格的百分比,商品價格的百分比
    • $observer->getEvent()->getResult() - 包含作爲折扣應用的數據的Varien_Object,現在有兩個屬性。
      • getDiscountAmount() - 在當前顯示的貨幣
      • getBaseDiscountAmount()折扣的金額 - 在基地網站貨幣
  4. 折扣金額意識到你在觀察模型的邏輯。您可以通過將應用的規則存儲在您的對象中並使用下一個規則應用程序來跟蹤應用的規則 - 驗證組的最大值並更改應用的折扣金額。