2017-06-05 181 views
0

我在Shopify主题中使用Timber使用木材和Shopify,我如何更新购物车预览?

我有一个POST请求/cart/add在自定义页面上。该物品已正确添加到购物车中,但在我的回拨中,我需要更新购物车预览(ajax-cart-template.liquid)。

我看到一个函数已经存在ajax-cart.js这样做,其中Handlebars模板呈现在私人函数buildCart()

我可以复制buildCart()函数中的代码,并将其放入我的回调函数中,但这显然是多余的。我能以某种方式在该范围之外拨打buildCart()吗?

回答

1

随着一点点的定制,这应该是可行的。

首先,通过增加build: buildCart使​​一个公共方法:

module = { 
    init: init, 
    load: loadCart, 
    build: buildCart 
}; 

我写这篇文章我意识到loadCart从未公开使用。哎呀。我想我的想法是,如果有人想重建购物车,他们会打电话给这个ajaxCart.loadCart(),它会得到数据并建立它。

既然你已经有了购物车,你可以改为ajaxCart.build(cart_object),你很好。

+1

这工作。我刚刚意识到我实际上需要'cartUpdateCallback()'函数而不是'buildCart()',因为该函数同时调用'buildCart()'和'updateCountPrice()',它会更新购物车模板以及购物车。只需将'cartUpdateCallback()'添加到'module'对象,就可以在我的自定义页面上使用它。谢谢! –