Ecwid在php中管理客户购物车扩展选项

时间:2018-04-13 06:56:21

标签: javascript php jquery

我已经在Ecwid商店中为产品创建了类别,并使用ecwid api在我的网站中获取该类别产品,我将产品ID传递到下一个详细信息页面,并使用产品ID解析来自ecwid产品API的产品数据,如数量,价格和该特定产品的选项。
现在通过使用Ecwid addProduct扩展选项,我试图将产品数据传递给添加到购物车功能,它无法正常工作。

<script src="//app.ecwid.com/script.js?10998147" type="text/javascript" charset="UTF-8"></script>
<script>
var quant = $('#calquantity').val();
var product = {
  id: "<?php $product_id;?>",
  quantity: quant,
  callback: function(success, product, cart) {
  }
}
Ecwid.Cart.addProduct(productID, function(success, product, cart){
  console.log(success);
  console.log(product.name);
})

</script>

1 个答案:

答案 0 :(得分:0)

来自Ecwid团队的维塔利。

我尝试在本地使用您的代码,我在控制台中收到了此错误:

Uncaught TypeError: Cannot read property 'addProduct' of undefined
at (index):69

所以这意味着添加产品的功能尚不可用 - Ecwid尚未加载。

我的建议是首先订阅Ecwid.OnAPILoaded事件,以确保此函数先可用,然后执行它。 Documentation

其次,应该将正确的产品ID作为Ecwid.Cart.addProduct函数的第一个参数传递。 Documentation

所以生成的代码将是:

<script src="//app.ecwid.com/script.js?10998147" type="text/javascript" charset="UTF-8"></script>
<script>
var quant = $('#calquantity').val();
var productID = <?php echo 103496888;?>;
var product = {
  id: productID,
  quantity: quant,
  callback: function(success, product, cart) {
  }
}

Ecwid.OnAPILoaded.add(function(){
    Ecwid.Cart.addProduct(productID, function(success, product, cart){
        console.log(success);
        console.log(product.name);
    })
})

</script>

谢谢!如果您还有其他问题,请随时联系apps@ecwid.com