我想要的是:
- 我在脚本编辑器中创建了一个脚本,使您在购物车中的第一个订单项免费。我希望这个脚本为每个客户执行一次。
我的问题:
- 通过使用脚本编辑器应用程序限制每个客户执行一次脚本的语法是什么?
业务用例:
- 如果不将此功能添加到我的脚本中,客户可以在结账时免费获得 1 件商品……但随后他们可以再次开始购物并使用新购物车结账,并再次免费获得第一件商品……这意味着他们可以获得 10 件免费商品来自 10 个不同的结帐。
感谢您的时间和想法!
附言脚本在 Ruby 中。此外,设置折扣代码不适用于我的用例。
更新
谢谢你的回复。我将在本周尝试这些建议的更新,并将很快发布我的结果。
更新 2
因此,除了一个细节之外,以下建议和标记的答案都是正确的。即使下面描述的语法是正确的,脚本编辑器仍然会遇到某种类型的错误。另一个https://stackoverflow.com/a/69290251/3392005 建议使用'&'。
所以我最终做了这样的事情:
customer = Input.cart.customer
if customer&.tags&.include?("gift_received")
...
end
这对我有用。再次感谢您的所有回答!
回答1
任何类型的解决方案都只能在需要帐户时才有效,否则您将无法跟踪订单历史记录。
有两种可能的解决方案
- 您创建一个流程,在客户收到礼物时为其分配标签。您检查标签:
Input.cart.customer.tags.include?('gift_received')
并且不应用折扣。 - 如果您的情况只是“第一次订购的礼物”,您只需检查
Input.cart.customer.orders_count > 0
即可。
回答2
嗯。您始终可以为客户分配一个小标签。例如,如果他们收到了这个免费物品,请在他们的第一个订单上给他们一个标签。现在,如果他们再骗你九次,检查那个标签。如果他们有它,请从结帐中删除该项目。问题解决了。繁荣。
回答3
我在脚本编辑器中创建了一个脚本,可以让您在购物车中的第一个订单项免费。我希望每个客户执行一次此脚本。
最好的方法是使用标签标记客户。您可以使用 Shopify 流向包含免费礼品的订单添加标签,以将客户标记为已收到免费礼品的客户。这将比检查 Input.cart.customer.orders_count > 0
更好,因为它可以让您在订单和客户面板中获得更多可见性。
@Fabio Filippi 提到的方法是最好的,但它需要得到保护:
您创建一个流程,在客户收到礼物时为其分配标签。您检查标签:Input.cart.customer.tags.include?('gift_received') 并且不应用折扣。
业务用例:
如果不将此功能添加到我的脚本中,客户可以在结账时免费获得 1 件商品……但随后他们可以再次开始购物并使用新购物车结账,而第一件商品又是免费的……这意味着他们可以获得来自 10 个不同结帐的 10 个免费项目。没有什么可以阻止用户创建新帐户,因此您需要考虑一些验证逻辑,在验证客户后分配 gift_received 标签。
如果您想避免欺诈,我会考虑同时使用两者(请注意,在这种情况下,我们正在检查客户过去是否已经购买过东西)Input.cart.customer.orders_count > 1
和 Input.cart.customer.tags.include?('gift_received')
或 Input.cart.customer.tags.include?('gift_received')
和 Input.cart.customer.total_spent > Money.new(cents: 1000)
。这样你就可以有“有资格获得礼物”的逻辑。有很多方法可以接近它。