我有一篇文章"wood"(文章编号1115).如果用户将42个木头放入购物车中,那么他应该免费获得一个斧头,但他必须自己将斧头放到他的购物车上,因为他也选择了一个。
他可以选择的轴有以下文章编号:
521537, 521538, 521517, 521518, 521527, 521528
我创建了这个规则作为条件(抱歉德语用户界面,我翻译了一些字符串)
这是行动(再次:我将其从德语翻译成英语):
Problem:
如果用户将42 wood放入购物车中,然后放入一把斧头,那么它就能正常工作,斧头是免费的!
但是如果顾客将另一个在商品编号列表中的斧头放入购物车,那么它也是免费的,但我想给客户只送一把斧头。
文档说明
The discount applies to each qualifying item in the cart.
如何更改它以使其仅适用于其中一个项目然后停止?
我希望能清楚地描述这个问题。
我做错了什么?
最新回答
- 2019-12-51 #
- 2019-12-52 #
如果你创建5个单独的 Cart Rules怎么办?
每个 SKUs<1>1(i.e. do not use "is one of" condition for SKU, use "equals" instead with specifying only 1 SKU)
,对于这些 Cart Rules中的每一个 选择
"Do not use further rules" => "Yes"?
它会起作用吗? - 2019-12-53 #
嘿,我们可以通过检查我们的购物车来做到这一点,例如:如果您有42个购物车和1个免费的斧头,现在如果客户去添加一个 新的斧子来到你的折扣规则所以在添加斧头时你可以检查你的购物车项目,如果你在规则中提到的斧头之一已经出现,你可以向顾客显示一个弹出窗口,你只能添加一个斧头 目前购物车。这种方法可能会奏效。 如果您觉得这个答案有用,请将其作为解决方案谢谢.
- 2019-12-54 #
请尝试使用 contains 而是 is one of 在行动部分
我希望这会对你有所帮助。
你遇到的问题与我最近做过的一样,你说的是准确的,magento将在订单项基础上应用该折扣,以及 最大数量是每个项目,例如:符合促销条件的2个订单项都将获得折扣。
如果我理解正确,你想要的是一个 per cart 最大限度使用,遗憾的是不支持magento开箱即用。
我不确定magento 1的过程,但是我们必须为magento 2开发一个内部解决方案.
在我们的案例中,我们必须完全覆盖
\Magento\SalesRule\Model\Quote\Discount::collect
使用Interceptor并实现自定义使用限制和逻辑来计算整个购物车的折扣。为避免冲突或更改现有逻辑以获得最大使用数量,我建议专门为此创建一个新字段
我发现将字段添加为
sales_rule
上的列更容易 修改现有表格的表格没有用完。我确信这对于magento 1来说并不是非常有用,但希望它可以让你朝着正确的方向前进.