我已经做了一张优惠券[coupon_code = SWIMFREE]如果category
是swimming equipment
,hobby
是swimming
,将打五折。
现在我遇到了关于3步结账的问题。
1.结账购物车:应用于优惠券
1.第一步:送货和账单地址
1.第二步:选择您的爱好(有另一个sales_flat_quote table
、sales_flat_quote_hobby
)
1.最后一步:结账-〉概览
"我想要的是“当优惠券被申请并且爱好是游泳时,第三步骤改变价格以给每个产品定价,并且优惠券仍然被显示在那里。
如何在爱好步骤后拦截优惠券?
逐步示例案例:
1.已在购物车上添加
- 游泳衣的正常价格是100$(游泳装备类)
- 凯夫拉纤维的正常价格是50美元(射击器材类)
- 优惠券已应用SWIMFREE,总计为100$(因为优惠券条件)
2.在发运和开单步骤 - 送货和账单地址-下一个
3.在爱好步骤上 - 选中(单选按钮)并确认足球爱好
4.在概览步骤中,然后 - 游泳衣的价格是50$(游泳装备类)
- 凯夫拉纤维的价格是50美元(射击器材类)
- 应用了SWIMFREE,总计现在是150$(因为爱好不是游泳)
我有很多产品,我尝试过添加新属性,但它与属性无关,因为它在sales_flat_quote_hobby
上
我试过改变Sales/Model/Quote/Subtotal.php
来设置购物车上的所有产品价格,但似乎没用。
3条答案
按热度按时间qxgroojn1#
已经自己找到了答案:
重写 Mage 销售规则模型规则条件产品
此函数将在每个加载的步骤中调用。然后检查如果返回true,则将应用优惠券,如果返回false,则将不应用优惠券。
"感谢所有参与者,我很感激"
svdrlsy42#
您应该实作自订收集器来收集总计。它可以
Mage_SalesRule_Model_Quote_Discount
为基础。如何创建自定义收集器:请参阅stackoverflow answer,或者您也可以选中this article。
bhmjp9jg3#
是的,这是我的主意。
您实施了一个新的销售规则条件,该条件提供50%折扣。
每个产品都调用salesrule。然后,您需要检查属性是否为swimming,是否设置了hobby。如果是,您可以从%-salesrule中复制其余的属性。
您可以在
Mage_SalesRule_Model_Validator::process()
中找到代码进行查看自实现条件的示例可在此处找到:https://github.com/magento-hackathon/DiscountForATweet/blob/master/app/code/community/Hackathon/DiscountForATweet/Model/Condition/Tweet.php