我是Magento 2的新手。任何人都知道如何根据购物车中产品的属性禁用送货方式。我们想说我们只想为某些产品启用商店取货。 在单页结账时,这些是使用post / rest / en / V1 / guest-carts / SESSION_ID / estimate-shipping-methods更新的,但尝试了模块结帐和模块引用,但仍无法找到此代码的位置所以我可以扩展它。 如果以前有人通过这个会很有帮助。
由于
答案 0 :(得分:4)
可能不止一种方法可以实现这一目标,但我选择的方法是为 \ Magento \ Shipping \ Model \ Shipping 创建一个插件,特别是 collectRates()功能。我们的要求比你的要求更具体(在底部)。
基本逻辑流程是......
collectRates() (\ Magento \ Shipping \ Model \ Shipping中的未修改功能,收集所有送货方式的费率)
afterCollectRates() (插件)
根据您计算费率的方式,您可能还需要扩展各种运输方式,以便在某些产品放入购物车时可以完全绕过它们(可能不适用于您的使用案例,但适用于任何试图禁用UPS / FedEx /等的人)。率)
如上所述,我们的要求更广泛,我们还有一个beforeCollectRates()函数,它实际上创建了产品数组和其他一些逻辑(我们必须限制各种运输方法,添加特定产品的处理,并使用维度逻辑来创建列表装运箱发送到UPS / FedEx等实际的CollectRates()部分。)