Migrating a spend threshold percentage script
The cleanest script in the whole library, and the one worth doing first on camera: one threshold, one percentage, one money literal, nothing ambiguous anywhere in the file.
可重建It compared the cart subtotal to a threshold and took a percentage off once it was reached.
把它粘贴到 Scripts 救援,看看会重建成什么
- 用本页任意 Script 旁边的按钮复制 Ruby 代码。
- 在 Shopify 后台打开 Stackable,依次进入工具、Scripts 救援。
- 粘贴进去,读一读工具说它会创建什么,再和本页的设置逐项对照。
Scripts 救援属于 Pro 套餐。在您填写旧 Script 的折扣金额、且两个数字精确到最小货币单位完全一致之前,不会发布任何内容。
Script 本体
可重建危险配对 D2。这个文件和它的搭档看起来几乎一样,行为却不同,在判断您手上是哪一个之前,请把两份都读一遍。
THRESHOLD = Money.new(cents: 10000)
if Input.cart.subtotal_price >= THRESHOLD
Input.cart.line_items.each do |line_item|
line_item.change_line_price(line_item.line_price * (1.0 - (15 / 100.0)), message: "Spend $100, save 15%")
end
end
Output.cart = Input.cart识别为 Spend threshold discount,重建为 spend_goal 类型的优惠。下面是优惠实际保存时使用的配置键,您可以逐项核对自己的重建结果。
| 设置项 | 值 | 配置键 |
|---|---|---|
| Offer type | spend_goal | type |
| Counting | per_cart | counting |
| Recurrence | once | recurrence |
| Tier 1 | min spend $100.00 -> 15% off | tiers[0] |
| Target scope | all | target.scope |
| Method | automatic | discountMethod |
| Allocation | standard | stacking.allocation |
| Combines with other discounts | no | stacking |
- Confirm which products this applies to. We could not read product targeting from the script.
基于我们的公开演示店铺 Meridian Goods 搭建,因此这里的每个价格都可以复现,而不必凭信任接受。下方的折扣金额,是结账时运行的同一个引擎针对这个购物车算出的结果。
| 商品 | 数量 | 单价 |
|---|---|---|
| Felt Laptop Sleeve | 2 | $38.00 |
| Impact Phone Case | 1 | $24.00 |
| 小计 | $100.00 | |
| 折扣 | -$15.00 | |
| 总额 | $85.00 | |
未登录,或以没有标签的客户身份登录。
发布之前,工具会询问您原来的 Script 对一个现有购物车做了什么。把它设为 4 件 Walnut Desk Organizer,单价 $26.00,答案就是固定的。
折扣金额为 $15.60。顾客实际支付的总额为 $88.40。
比对精确到您所用货币的最小单位。差一分钱,发布就仍然被拦住,这正是这一步的意义。
- drop to 1 of the same product, under what the rule needs
| 商品 | 数量 | 单价 |
|---|---|---|
| Felt Laptop Sleeve | 1 | $38.00 |
| 小计 | $38.00 | |
| 总额 | $38.00 | |
未登录,或以没有标签的客户身份登录。
两个看起来一样的文件
下面每一对都是同一种 Script 写法的两个版本。它们只差一两行,效果却不同,所以在判断自己手上是哪一个之前,请把两个都读一遍。
危险配对 D2
Spend threshold percentage (D2)
可重建重建为 spend_goal 优惠。
在它自己的购物车中的折扣:$15.00
line_item.change_line_price(line_item.line_price * (1.0 - (15 / 100.0)), message: "Spend $100, save 15%")Spend threshold fixed amount (D2)
可重建重建为 spend_goal 优惠。
在它自己的购物车中的折扣:$15.00
REWARD = Money.new(cents: 1500)
remaining = REWARD
break if remaining <= Money.zero
share = [line_item.line_price, remaining].min
line_item.change_line_price(line_item.line_price - share, message: "Spend $100, get $15 off")
remaining = remaining - share常见问题
- Will Stackable rebuild this script?
- Yes. Every spelling on this page is rebuilt today as a spend_goal offer, and the cart above is the one that proves it.
- What cart proves it works?
- 2 x Felt Laptop Sleeve at $38.00 plus 1 x Impact Phone Case at $24.00. The engine takes $15.00 off, and checkout charges $85.00.
- What will I have to check before publishing?
- Confirm which products this applies to. We could not read product targeting from the script.
相关的 Script 类型
A flat sum off the order once the cart crosses a value.
A threshold read from what was left after a code had already come off.