如何在Magento中分组折扣?

maa*_*_ku 3 max magento discount

有谁知道如何将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%
Run Code Online (Sandbox Code Playgroud)

Iva*_*nyi 6

不可否认,通过Magento的标准功能无法实现您所需的完全相同的功能.但您可以使用折扣组创建自定义,并通过观察事件来验证折扣金额salesrule_validator_process.

所以有点一步一步的建议:

  1. 创建一个包含2个自定义表的新模型,这些表将具有以下字段:
    • 组表:
      • group_id - 主键
      • name - 组名
      • 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() - 用于计算折扣的项目数量:固定项目折扣,项目价格百分比,项目价格百分比
    • $observer->getEvent()->getResult() - Varien_Object包含作为折扣应用的数据,现在有两个属性.
      • getDiscountAmount() - 当前显示货币的折扣金额
      • getBaseDiscountAmount() - 基本网站货币的折扣金额
  4. 在观察者模型中实现逻辑.您可以通过将应用规则存储在对象中并使用下一个规则应用流程来跟踪应用规则 - 验证组最大值并更改应用的折扣金额.