使用 ajax 更新购物车商品计数时出现 window.checkout.quoteData 或商店代码未定义错误

Getting window.checkout.quoteData or store code are undefined error when cart item count updated using ajax

我创建了一个具有自由文本订购功能的自定义页面,并调用自定义 add to cart 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 Uncaught TypeError: 无法读取 属性 'storeCode' of undefined at url-builder.js:12

这里有什么遗漏吗?

我提到了 https://magento.stackexchange.com/questions/210517/error-javascript-define-magento2-window-checkout-quotedata-or-store-code-are-u,它没有任何可行的解决方案。

问题是 quoteData 存在于 window.checkoutConfig - 此数据只会在结帐页面上设置,您不会有很多必需的 js 模块加载到自定义页面上以正确设置此数据.

这可能是一本有用的读物​​:https://www.yireo.com/blog/2017-08-20-do-not-depend-on-window-checkoutconfig

我能够使用以下代码为我的场景实现这一点。它可能对某人有帮助

    require([
       'Magento_Customer/js/customer-data'
    ], function (customerData) {
        var sections = ['cart'];
        customerData.invalidate(sections);
        customerData.reload(sections, true);
    });