我知道您可以在Shopify中添加以下多个产品:
/cart/add?id[]=VARIANT_ID1&id[]=VARIANT_ID2
我的问题是,您将如何调整要添加的每种产品的数量?
例如,我希望VARIANT_ID1
的数量为2,而VARIANT_ID2
的数量为1?
我尝试过:
/cart/add?id[]=VARIANT_ID1&quantity=2&id[]=VARIANT_ID2&quantity=1
但是它只是使所有事物的数量为1。
答案 0 :(得分:2)
您不能将数量用作每个变体的单独项目。
您有一些选择,但是它们都有一些缺点。
有关请求,请参考此文档:https://help.shopify.com/en/themes/development/getting-started/using-ajax-api
/cart/add.js
您可以创建多个AJAX请求,并将每个单独的项目添加为新的AJAX请求。
优点:
缺点:
/cart/update.js
您可以提出一个请求,并将不同的数量传递给每个变体。
专业人士
缺点
因此解决方案可能是获得cart.js
响应检查是否存在当前变体,然后在将数量添加到现有变体的同时创建update.js
。所以不是那么简单。
我想不出更简单的解决方案,但是最后您可能需要最少2个AJAX调用才能添加不同的数量。
答案 1 :(得分:1)
更简单的方法是使用 Shopify 永久链接。
购物车固定链接将您的客户直接带到结账屏幕的第一页,其中商品已预先加载到他们的购物车中。
这是购物车永久链接的样子:
http://your-store.myshopify.com/cart/70881412:1,70881382:1
其中 70881412 是产品变体的唯一 ID,1 是数量。
所以url的格式是:
http://yourstore.com/cart/#{variant_id}:#{quantity}(,...)
答案 2 :(得分:0)
我使用以下代码片段解决了这个问题:
// Creates ArrayList for totals
ArrayList <Double> totals = new ArrayList <Double>();
// While loop to read each row from file
while (inputFile.hasNext()) {
String currentLine = inputFile.nextLine();
String[] fields = currentLine.split("[,]");
quarter = Integer.parseInt(fields[0]);
region = fields[1];
if (fields.length == 4) { // If block to give indexes to field lengths of 4 and 5
typeIndex = 2;
dollarIndex = 3;
}
else {
typeIndex = 3;
dollarIndex = 4;
}
govtType = fields[typeIndex];
if (fields[1].equals("U.S. TOTAL")) {
break;
}
if (region.contains("Statewide") || govtType.contains("Federal Government") || govtType.contains("State Government")) { // if block to convert last index into double
dollar = Double.parseDouble(fields[dollarIndex]);
}
if (quarter == 1 && govtType.contains("Federal Government")) { // If block to get sum of last index of certain arrays
sum += dollar;
totals.add(sum);
System.out.println(totals);
}
} // While loop end