基于产品属性的Magento(麦进斗)过滤器配送方式

可能不止一种方式来做到这一点,但我选择的方法是创建一个插件\Magento\Shipping\Model\Shipping,特别是collectRates()函数。当然我们的要求比你(底部)更具体。

基本的逻辑流程...

collectRates() (在\Magento\Shipping\Model\Shipping未修改的功能,收集率对所有的运输方式)

afterCollectRates() (插件)

  • 此时所有运输方法被调用并存储在我们的价格$请求对象。
  • 您可以确定是通过在车中的产品$请求- > getAllItems()
    • 注:父/子产品是单独项目,并根据您的存储配置,一个或其他属性,你想看看可能没有自定义。
  • 你可以看到所有通过航运方式/房价$请求- >的getResult)( - > getAllRates()
  • 我没有找到一个核心函数删除的速度,我的解决方法是...
    • 在利率取消设置的所有数据删除
    • 毕竟利率被修改,使用foreach()循环将它们存储在一个tempArray(有一些逻辑不增加成本,如果== 0等)
    • 现在刷新和重置通过所有现有利率$请求- >的getResult() - >复位()
    • 最后,从您的加入率tempArray


这取决于你如何计算利率,您可能还需要延长的各种运输方式,所以你完全可以绕过它们是某些产品在购物车(可能不适合你的使用情况,但对于任何试图关闭UPS /联邦快递/等。率)


正如前面提到的,我们的要求是更广泛,我们也有它实际上创造了产品阵列和其他逻辑(我们不得不限制各种运输方式,增加处理特定产品,并使用三维逻辑来创建一个列表beforeCollectRates()函数航运箱发送给UPS /联邦快递等实际CollectRates()的一部分。)

转载于:https://www.cnblogs.com/magento-maijindou/p/5913499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值