更新自定义选项会再次保存所需的问题

问题描述

我具有一项功能,如果产品自定义选项设置为“ E-Card”,则我有一个代码将报价项属性设置为“虚拟”,这样,当进入结帐页面时,它将把我的购物车视为虚拟,仅询问帐单明细。现在,如果用户没有选择“电子卡”,而是选择了“礼品卡”,那么我将其标记为“非虚拟”。现在一切似乎都正常,直到我尝试选择“电子贺卡”,然后我才进入结帐页面,并且确实,我只看到了帐单详细信息,现在我决定返回结帐/购物车并修改了更改选项现在将其更改为“礼品卡”,这会将购物车更改为“非虚拟”,我希望当我访问结帐页面时,会看到运输详细信息表格,但令我惊讶的是,它仍然将其视为“虚拟”现在我返回到结帐/购物车并再次重新保存选项,然后返回到结帐页面,因为它向我提供了运送详细信息。

现在我的问题是为什么只需要更改两次或使Virtual属性生效就需要保存两次?

我仔细研究了代码,似乎在shipping.js中有这个

// 'Magento_Checkout/js/model/quote'
if (!quote.isVirtual()) {
    stepNavigator.registerStep(
       'shipping','',$t('Shipping'),this.visible,_.bind(this.navigate,this),10
    );
}

因此,当我检查'Magento_Checkout/js/model/quote'时,它具有以下代码

// quoteData = window.checkoutConfig.quoteData,isVirtual: function () {
   return !!Number(quoteData['is_virtual']);
},

因此quoteData从window.checkoutConfig.quoteData中检索其值。更新报价数据后如何更新此代码?这样当我访问结帐页面时,它将包含更新的is_virtual属性

我不确定是否要问正确的问题,但是主要思想是我想解决双重更新问题,我不得不保存两次以选择新的自定义选项值才能生效。我不确定在这里需要检查或修改哪些文件

非常感谢您对此提供的帮助

注意:我只想修改购物车项目is_virtual的属性

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)