是否有shopify购物车更改时触发的事件。我可以每x秒刷新购物车,看看是否有变化,但基于事件的方法总是更好。
答案 0 :(得分:1)
没有一站式'购物'(他是)这样做的方式,但可以做到。
在Shopify项目中,可以通过常规HTML表单POST添加到购物车“/ cart / add”或通过Ajax,因此从广义上讲,您需要同时考虑这两项。此外,当使用Ajax主题时,开发人员可以使用the Shopify Ajax API或直接进行Ajax POST。
在第一种情况下,您可以做的是在页面加载时向表单添加提交处理程序,这样您就可以在添加项目之前选择POST事件。
在通过Javascript包装器API使用Ajax的第二种情况下,您可以定义Shopify在购物车更改时将调用的函数。例如。假设你定义了这个函数:
Shopify.onCartUpdate = function(cart) {
alert('There are now ' + cart.item_count + ' items in the cart.');
};
将项目添加到购物车后,Ajax API将调用它。您可以查看the API sandbox以了解它。
最后是直接使用Ajax的情况。与this SO question相同的场景以及他们使用XMLHTTPRequest原型方法的接受答案看起来对我来说非常好。如果您乐意使用jQuery,那么使用ajaxComplete会使它更简单。
答案 1 :(得分:0)
没有。购物车更改时没有本地事件广播。作为一只鸟,你可以自由地将自己的听众连接到自己的事件中。由于您可以控制进入购物车的内容,因此您可以控制更改时发生的情况。 API很不错,Prototype,Moo和jQuery中有很多免费代码可以满足大多数开发人员的需求。
答案 2 :(得分:0)
我假设您想知道客户的购物车何时更换,这在技术上有两个基础:
当创建购物车时,会为其分配一个ID,并且它的过期时间设置在名为" cart"的cookie中。此令牌也在webhook post回调中作为id和cart_token在carts_update和checkout事件中传递。
因此,要检查创建新购物车的时间,您可以执行以下操作:
shopifyCart = function() {//call this on page load
var cartCookie = getCookie('cart');//Get shopify cart cookie
if( cartCookie !== undefined && cartCookie !== '' )
{
if( cartCookie !== getCookie('key') )//reference key
{
setCookie('key', cartCookie);//set cookie for next time comparison
//Do your action on the event
}
}
};