当使用 ajax 更新购物车商品数量时,获取 window.checkout.quoteData 或商店代码是未定义错误
2021-11-24
3091
我已经创建了一个具有自由文本排序功能的自定义页面,并调用自定义
添加到购物车 API
将商品添加到购物车。
添加商品后,我需要使用更新的数量来更新购物车商品数量。我尝试使用
require([
'jquery',
'Magento_Checkout/js/action/get-totals'
], function ($, getTotalsAction) {
'use strict';
var deferred = $.Deferred();
getTotalsAction([], deferred);
});
但它抛出了错误: 未捕获的类型错误:无法读取 quote.js:34 处未定义的属性“quoteData”
并且
url-builder.js:12 未捕获的类型错误:无法读取 url-builder.js:12 处未定义的属性“storeCode”
这里缺少什么吗?
我参考了 https://magento.stackexchange.com/questions/210517/error-javascript-define-magento2-window-checkout-quotedata-or-store-code-are-u ,但没有任何有效的方法解决方案。
2个回答
问题是 quoteData 位于 window.checkoutConfig 中 - 此数据只会在结帐页面上设置,您不会在自定义页面上加载许多必需的 js 模块来正确设置此数据。
这可能是有用的阅读: https://www.yireo.com/blog/2017-08-20-do-not-depend-on-window-checkoutconfig
Andrew
2021-11-25
我能够使用以下代码在我的场景中实现这一点。它可能会帮助某些人
require([
'Magento_Customer/js/customer-data'
], function (customerData) {
var sections = ['cart'];
customerData.invalidate(sections);
customerData.reload(sections, true);
});
stefun
2021-11-25