Shopify Liquid Ajax添加商品到购物车时找不到变体的问题
自定义产品构建器添加购物车报错:无法找到变体
我正在开发一个自定义产品构建器,但在将商品添加到购物车时遇到问题。代码会获取选中商品的product.id并放入请求payload/form对象中,控制台能正常打印所有ID,但fetch请求无法识别这些ID,返回如下错误:
{ "status": 404, "message": "Cart Error", "description": "Cannot find variant" }
添加到购物车的函数代码
document.getElementById('add-to-cart-button').addEventListener('click', async function(event) { event.preventDefault(); console.log("Add-to-cart button clicked."); let form = { items: [] }; let selectedOption = necklaceVariantDropdown.options[necklaceVariantDropdown.selectedIndex]; let selectedNecklaceVariantId = parseInt(selectedOption.getAttribute('data-id'), 10); if (!selectedNecklaceVariantId) { console.warn("No necklace variant selected."); return; } form.items.push({ id: selectedNecklaceVariantId, quantity: 1 }); console.log("Necklace variant added to cart items:", selectedNecklaceVariantId); let selectedCharms = necklacePreview.querySelectorAll('.charm-item.cloned'); console.log(`Found ${selectedCharms.length} selected charms.`); //Add each selected charm to the cart items array selectedCharms.forEach(charm => { let charmId = parseInt(charm.getAttribute('data-id'), 10); if (!charmId) { console.warn("Charm with no data-id found:", charm); return; } form.items.push({ id: charmId, quantity: 1 }); console.log(`Charm with ID ${charmId} added to cart items.`); }); if (form.items.length === 0) { console.warn("No items to add to the cart."); return; } console.log("All cart items ready to be added:", form.items); // Sending all items together await fetch(window.Shopify.routes.root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(form) }) .then(response => { if (!response.ok) { throw new Error(`Server responded with status: ${response.statusText}`); } return response.json(); }) .catch((error) => { console.error('Error:', error); }); });
控制台输出
Necklace variant added to cart items: 45484000182550 scripts.js?567:100 Found 3 selected charms. scripts.js?567:114 Charm with ID 8768164200726 added to cart items. scripts.js?567:114 Charm with ID 8483792650518 added to cart items. scripts.js?567:114 Charm with ID 8523530764566 added to cart items. scripts.js?567:122 All cart items ready to be added: (4) [{…}, {…}, {…}, {…}]
请求负载
[ { "id": 45484000182550, "quantity": 1 }, { "id": 8768164200726, "quantity": 1 }, { "id": 8483792650518, "quantity": 1 }, { "id": 8523530764566, "quantity": 1 } ]
内容的提问来源于stack exchange,提问作者LukeWalker101
相关产品推荐
相关产品推荐

