【发布时间】:2016-10-14 07:32:42
【问题描述】:
我是 Magento 2 的新手。任何人都知道根据购物车中产品的属性禁用运输方式的方法。假设我们只想为某些产品启用商店提货。 在单页结帐时,这些已更新为帖子 /rest/en/V1/guest-carts/SESSION_ID/estimate-shipping-methods 但尝试了模块结帐和模块报价,但仍然找不到此代码的位置,所以我可以扩展它。 如果有人以前经历过这个会很有帮助。
谢谢
【问题讨论】:
我是 Magento 2 的新手。任何人都知道根据购物车中产品的属性禁用运输方式的方法。假设我们只想为某些产品启用商店提货。 在单页结帐时,这些已更新为帖子 /rest/en/V1/guest-carts/SESSION_ID/estimate-shipping-methods 但尝试了模块结帐和模块报价,但仍然找不到此代码的位置,所以我可以扩展它。 如果有人以前经历过这个会很有帮助。
谢谢
【问题讨论】:
可能不止一种方法可以实现这一点,但我选择的方法是为 \Magento\Shipping\Model\Shipping 创建一个插件,特别是 collectRates() 功能。我们的要求比您的要求更具体(在底部)。
基本逻辑流程是……
collectRates() (\Magento\Shipping\Model\Shipping 中未修改的函数,收集所有运输方式的费率)
afterCollectRates() (插件)
根据您计算费率的方式,您可能还希望扩展各种运输方式,以便在某些产品在购物车中时完全绕过它们(可能不是针对您的用例,而是针对任何试图禁用 UPS/FedEx/等的人)。费率)
如前所述,我们的需求更广泛,我们还有一个 beforeCollectRates() 函数,它实际上创建了产品数组和一些其他逻辑(我们必须限制各种运输方式,为特定产品添加处理,并使用维度逻辑来创建列表实际 CollectRates() 部分发送到 UPS/FedEx 等的运输箱。)
【讨论】: