如果需要由商家配置、支持层级、按市场规则和进度条的版本,请使用奖励区块,无需编写代码。本方案适用于区块无法表达的规则。
代码片段
工作原理
reconcileGift 描述购物车应该处于的状态,然后最多做一次更改来达到该状态:
- 满足条件且赠品不在购物车中 →
addItem添加它。 - 不满足条件且赠品在购物车中 →
removeItem通过该行的key移除它。 - 其他情况 → 什么都不做。
cart_loaded(这样页面加载时已经满足条件的购物车也会获得赠品)和 cart_updated(这样它会对之后的每一次变更做出反应)上运行。由于 cart_loaded 会向较晚订阅者重放,无论你的脚本何时运行,这都能正常工作。
请注意,添加赠品会提高购物车总额,因此接近商品价格的门槛可能会来回震荡:添加 $0 的赠品是安全的,但带价格的赠品可能会单靠自己把购物车推过门槛。请让赠品保持免费,或与排除赠品后的总额进行比较。
灵活调整
context,它在购物车加载之前就可用:
行转换无法隐藏某行的数量控件——它仅有的 setter 是
setTitle、setVariantTitle、setHidden 和 setInternalProperties。如果顾客更改了赠品数量,请改为在 cart_updated 处理函数中进行纠正。