我正在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件雕刻珠宝产品怎么办?如果用户移除其中一个,他们将留下2个25美元的雕刻产品和只有一个jewlery产品。我需要自动删除从购物车中取出的任何珠宝产品的相关雕刻产品。请帮忙!
注意:根据我找到的几个论坛答案,用户似乎有办法做到这一点。这个(https://ecommerce.shopify.com/c/ecommerce-design/t/conditional-logic-for-variants-based-on-line-item-properties-264417)他说&#34;在购物车本身中,您唯一需要做的就是确保如果产品本身被移除,您还可以删除定制产品。没什么大不了的。这是一个简单的模式,你也可以把它搞砸了。例如,通过属性对具有定制的产品进行分组,确保两者都是“胶合”和#34;一起&#34。这正是我需要的!但不幸的是,他并没有分享他所说的简单模式。他似乎也在堆栈溢出时回答了它(Chang the product price when custom checkbox is selected in Shopify)并且再次没有揭示他所引用的简单模式。
提前致谢!
答案 0 :(得分:0)
简答:
通过添加隐藏属性使定制产品与众不同。
更长的答案:
将产品添加到购物车时,生成唯一值 - 使用当前日期/时间(通过Date.now())通常是一个不错的选择。将产品添加到购物车时,请确保同时添加此属性(可能通过隐藏输入)。
确保额外属性的名称前面带有下划线 - 所以类似'_uniqueID' - Shopify的结帐页面知道隐藏任何以下划线作为其第一个字符的行项目属性
最后,确保您的主题知道不在购物车中显示下划线属性。我最喜欢的方法是在属性打印循环的开头添加以下行(通常写为'for item in item.properties')
{% if p.first.first == '_' %}{% continue %}{% endif %}
现在您有一个唯一的ID字段作为行项目属性,只有您可以看到,并且可以使用该字段来同步数量等.Huzzah!