我正在一家Shopify商店工作,想要在他们的产品上加刻,收费25美元。我已经设置了它,以便产品页上的复选框触发一个雕刻下拉列表,用户可以自定义雕刻(类型、样式、文本和符号),所有这些值都作为行项属性传递。该复选框还添加了一个额外的雕刻产品到购物车,成本25美元的帐户上的费用,并具有相同的行项目属性。我意识到,这两种产品具有相同的线条项目属性,是一个完美的方式来连接他们,以确保如果原来的产品从购物车中删除,链接雕刻产品也将被删除。但我无法为我的一生找到实现这一目标的方法。
我写了这个液体代码,如果它是手推车中唯一的项目的话,它可以有效地将雕刻产品从手推车上移除。
{% if cart.item_count == 1 %}
{% for item in cart.items %}
{% if item.title == 'Custom Engraving' %}
<script>
$.post('/cart/change.js', { quantity: 0, id: {{ item.id }} });
$("#cart_form").submit();
</script>
{% endif %}
{% endfor %}
{% elsif cart.item_count > 1 %}
Please help with the code that supposed to go in here
{% endif %}但是如果手推车里有两个刻有雕刻的珠宝产品呢?如果用户删除其中一个,他们将留下2美元25美元的雕刻产品和只有一个珠宝产品。我需要自动删除任何珠宝产品的相关雕刻产品,从手推车上移除。请帮帮我!
注意:一个用户似乎有一种方法来做到这一点,基于几个论坛的答案,我发现。他说:“在购物车本身,你需要做的唯一一件事就是确保如果产品本身被移除,你也要删除定制产品。没有大的。这是一个简单的模式,你也可以让它变得更好。例如,通过属性将一个产品组合成一个定制,确保两者”粘合“在一起。”这正是我所需要的!但不幸的是,他并没有分享他所说的简单模式。他似乎也在堆栈溢出(Chang the product price when custom checkbox is selected in Shopify)上回答了这个问题,而且也没有透露他所指的简单模式。
提前感谢!
发布于 2018-03-19 20:54:24
简短回答:
通过添加隐藏属性使自定义产品与众不同,使它们具有唯一性。
更长的答案:
当将产品添加到购物车时,生成一个唯一的值--使用当前日期/时间(通过Date.now())通常是一个不错的选择。当将产品添加到购物车时,请确保还添加了该属性(可能通过隐藏输入)。
确保额外属性的名称加上下划线-因此类似于'_uniqueID‘-Shopify的签出页面知道隐藏任何以下划线作为其第一个字符的行项属性。
最后,确保您的主题知道不要在购物车中显示突出显示的属性。我最喜欢的方法是在属性开始时添加下面一行--打印循环(通常写为'for in item.properties')
{% if p.first.first == '_' %}{% continue %}{% endif %}现在,您有一个唯一的ID字段作为一个只有您可以看到的行项属性,并且可以使用该字段来同步数量等等!
https://stackoverflow.com/questions/49340974
复制相似问题