shopify购物车改变了事件 - javascript

时间:2014-05-06 13:43:47

标签: shopify

是否有shopify购物车更改时触发的事件。我可以每x秒刷新购物车,看看是否有变化,但基于事件的方法总是更好。

3 个答案:

答案 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
  }
}
};