shopify - Shopify 购物车应删除所有捆绑产品,如果一个产品形式的捆绑被删除
问题描述
我在 shopify 中制作了自定义捆绑包,而不使用任何应用程序。当我单击添加到购物车时,所有这些 buld 产品都被移到购物车,但在购物车上没有任何特定的 if 或数据包在所有这些产品中通用,如果其中一个是,我可以用来从购物车中删除所有产品删除。我正在使用此脚本将产品添加到购物车中
$('.add_to_cart_btn').on('click',function(e){
e.preventDefault();
var prod_id = $(this).data('id');
var counter_sec = 0;
var open_crt = false;
var total = $('.variant_outer').length;
$('.variant_outer.grinding').each(function(index){
var qty = $(this).find('.qtybox').find('input').val();
if(qty >= 1){
open_crt = true
return false;
}
});
setTimeout(function(){
if(open_crt){
var value = $('input[name="commercial"]:checked').val();
if(value == 'yes'){
value = 'For Commercial Use'
}else{
value = '';
}
if(value != ''){
var data_value = {id:prod_id,quantity:1,properties:{"Commercial":value}};
}else{
var data_value = {id:prod_id,quantity:1};
}
$.ajax({
type:"POST",
url:'/cart/add.js',
dataType:'json',
data:data_value,
async:false,
success:function(cart){
if(value == 'yes'){
$.post('/cart/update.js',{attributes:{"customAttributes":"For Commercial Use"}},function()
{},'json')
}
}
});
$('.variant_outer').each(function(index){
var qty = $(this).find('.qtybox').find('input').val();
if(qty >= 1){
var ids = $(this).find('.qtybox').data('id');
$.ajax({
type:"POST",
url:'/cart/add.js',
dataType:'json',
data:{id:ids,quantity:qty},
async:false,
success:function(cart){
}
})
}
if(index == total - 1){
cartDrawer();
}
})
}else{
$.fancybox.open({
src:"#grinding_popup"
})
}
},1500);
});
解决方案
进行捆绑的最简单方法是利用产品线项目属性。使用这些,您可以将捆绑在一起。在购物车更新代码中使用它。如果捆绑包中的某个产品被移除,您可以在订单项属性中查找捆绑包中其他产品的连接胶水。也删除它们。它非常简单,并确保您的捆绑具有一定的意义。
推荐阅读
- python - 有没有办法将 JSON 对象中的键值设置为 python 中该对象的键?
- java - 为什么____不能为空
- java - JavaFX:在 GridPane 上单击更新 ImageView
- design-patterns - 使用设计模式改进许多返回枚举的 if
- python - 使用 matplotlib 3D 在左右轴上绘图
- opencv - 在 Mac M1 上从 Tensorflow 运行对象检测 API 时出错
- vba - 由 VBA Shell 命令打开的 Windows 资源管理器不在顶部
- android - 在动态布局中使用线性布局的元素
- istio - 使用 opa for abac 检查用户声明是否符合定义的策略
- flutter - 如何使 DataTable 在桌面上水平滚动?