Javascript Shopify-购买免费产品
当指定集合中的产品也存在时,代码段允许将免费产品应用于购物车。如果从指定集合中删除了其他产品,则免费产品将从购物车中删除 问题:用户可以添加多个可能不是来自指定集合的项目,然后可以删除指定集合产品,免费产品将保留在购物车中。i、 e.用户可以添加产品以使用免费项目填充购物车,然后添加另一个项目,该项目可能为$5,而该项目可能为$50或更多。作为回报,用户只需花5美元购买免费产品 下面的代码片段可以工作,但我希望它更健壮。目前,它的工作原理是用购买时提供的免费礼物取代“产品手柄”。仅当购物车中存在免费产品和指定集合“集合句柄”中的产品时,它才会填充免费产品。如果从集合中删除产品,则免费项目也将从购物车中删除 问题是:有能力添加多个项目,并删除原始产品,其中包括免费项目和结帐 搜索从项目中删除免费产品的解决方案,除非购物车中存在指定集合中的产品Javascript Shopify-购买免费产品,javascript,shopify,liquid,Javascript,Shopify,Liquid,当指定集合中的产品也存在时,代码段允许将免费产品应用于购物车。如果从指定集合中删除了其他产品,则免费产品将从购物车中删除 问题:用户可以添加多个可能不是来自指定集合的项目,然后可以删除指定集合产品,免费产品将保留在购物车中。i、 e.用户可以添加产品以使用免费项目填充购物车,然后添加另一个项目,该项目可能为$5,而该项目可能为$50或更多。作为回报,用户只需花5美元购买免费产品 下面的代码片段可以工作,但我希望它更健壮。目前,它的工作原理是用购买时提供的免费礼物取代“产品手柄”。仅当购物车中存在
{% assign product = all_products['PRODUCT-HANDLE'] %}
{% unless cart.item_count == 0 or product.empty? or product.variants.first.available == false %}
{% assign variant_id = product.variants.first.id %}
{% assign found = false %}
{% unless cart.item_count < 1 %}
{% for line_item in cart.items %}
{% for collection in line_item.product.collections %}
{% if collection.handle == 'COLLECTION_HANDLE' %}
{% assign found = true %}
{% break %}
{% endif %}
{% endfor %}
{% endfor %}
<script>
(function($) {
var cartItems = {{ cart.items | json }},
qtyInTheCart = 0,
cartUpdates = {};
for (var i=0; i<cartItems.length; i++) {
if ( cartItems[i].id === {{ variant_id }} ) {
qtyInTheCart = cartItems[i].quantity;
break;
}
}
if ( ( cartItems.length === 1 ) && ( qtyInTheCart > 0 ) ) {
cartUpdates = { {{ variant_id }}: 0 }
}
else if ( ( cartItems.length >= 1 ) && ( qtyInTheCart !== 1 ) && {{found}} == true ) {
cartUpdates = { {{ variant_id }}: 1 }
}
else {
return;
}
var params = {
type: 'POST',
url: '/cart/update.js',
data: { updates: cartUpdates },
dataType: 'json',
success: function(stuff) {
window.location.href = '/cart';
}
};
$.ajax(params);
})(jQuery);
</script>
{% endunless %}
{% endunless %}
{%assign product=all_products['product-HANDLE']%}
{%除非cart.item_count==0或product.empty?或product.variants.first.available==false%}
{%assign variant_id=product.variants.first.id%}
{%assign found=false%}
{%除非cart.item_计数<1%}
{cart.items%}中的第_行项目为%
{u item.product.collections%}行中的集合为%
{%if collection.handle=='collection\u handle%}
{%assign found=true%}
{%break%}
{%endif%}
{%endfor%}
{%endfor%}
(函数($){
var cartimes={cart.items | json},
qtyInTheCart=0,
cartUpdates={};
对于(var i=0;i 0)){
cartUpdates={{{variant_id}}:0}
}
else如果((cartItems.length>=1)&&&(qtyInTheCart!==1)&&{found}}==true){
cartUpdates={{{variant_id}}:1}
}
否则{
返回;
}
变量参数={
键入:“POST”,
url:“/cart/update.js”,
数据:{updates:cartUpdates},
数据类型:“json”,
成功:函数(stuff){
window.location.href='/cart';
}
};
$.ajax(params);
})(jQuery);
{%end除非%}
{%end除非%}
我希望结果是,如果将产品A添加到购物车中,则购物车将填充免费提供的产品B。如果随后删除了产品A或产品A不在购物车中,则即使存在其他产品,产品B也将从购物车中删除。尝试将Shopify折扣自动折扣功能与脚本一起使用,并获得一个您免费提供的产品的价值。以下是如何创建自动折扣:
现在,只要满足规则,产品在购物车中将是免费的,如果不满足规则,产品将恢复到其原始价格。以极简主义的方式,如果购物车的总价格低于某个值,比如低于$50购物车价值,并且免费产品被删除,我希望从购物车中删除免费产品。因此,我尝试使用{%除非cart.total_price<5000%}替换数量过滤器,但没有成功。任何帮助都将不胜感激。A)任何类似的内容都很容易被黑客攻击,因此请注意B)在结帐按钮上添加一个单击侦听器,并检查购物车是否正常C)请注意Shopify Plus没有这些胡说八道,但这样做的成本更高use@DavidLazar您是否建议将带有特定产品的免费商品添加到购物车中?不幸的是,Shopify Plus目前不在预算之内,希望在将来。事实上,这是一个很好的主意!我总是忽略了一些简单的过程。非常感谢。