问题描述
我具有一项功能,如果产品自定义选项设置为“ 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
属性?
我不确定是否要问正确的问题,但是主要思想是我想解决双重更新问题,我不得不保存两次以选择新的自定义选项值才能生效。我不确定在这里需要检查或修改哪些文件。
非常感谢您对此提供的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)