嗯,我不能提供完整的解决方案,因为老实说,解决方案将需要相当多的时间和测试,但我会提供全面的信息,可以你到正确的方向,而不是。 基本上,预先--在默认的Magento中没有这样做的选项。 因此,我们将重写一个名为Mage_Checkout_Model_Type_Multishipping的特定模型,如果你想知道重写模型的正确方法,请阅读this post by Inchoo。 但是如果你很懒,想找一个快速重写的方法,那么请把整个文件app/code/core/Mage/Checkout/Model/Type/Multishipping.php复制到app/code/local/Mage/Checkout/Model/Type/Multishipping.php 一旦你完成了以上两个步骤中的任何一个,你就可以继续把我们需要的东西重写到这个类中,看看line 498周围的函数:
2条答案
按热度按时间afdcj2ne1#
嗯,我不能提供完整的解决方案,因为老实说,解决方案将需要相当多的时间和测试,但我会提供全面的信息,可以你到正确的方向,而不是。
基本上,预先--在默认的Magento中没有这样做的选项。
因此,我们将重写一个名为
Mage_Checkout_Model_Type_Multishipping
的特定模型,如果你想知道重写模型的正确方法,请阅读this post by Inchoo。但是如果你很懒,想找一个快速重写的方法,那么请把整个文件
app/code/core/Mage/Checkout/Model/Type/Multishipping.php
复制到app/code/local/Mage/Checkout/Model/Type/Multishipping.php
一旦你完成了以上两个步骤中的任何一个,你就可以继续把我们需要的东西重写到这个类中,看看
line 498
周围的函数:因此,我们可以清楚地看到,它尝试为每个地址创建订单,然后(最重要的部分)触发由支付模块监控的
checkout_submit_all_after
事件(订单和报价信息将传递给所有可用/活动的支付模块,报价中设置的支付方法将确定接收已分派事件的特定支付模块是否可以处理该事件)。考虑到这一点,您现在可以有几个选择:
1.)如果您可以只接受一个订单,那么尝试重新编写
createOrders
例程,将所有项目再次组合到一个订单中,->place()
它,然后传递到dispatchEvent中以进行良好的度量。2.)如果你需要多个订单,那么--这就是它变得复杂的地方,因为你可以做以下任何一种的可能性很小:
所以,是的,你们在这里几乎要求很多,所以我能做的就是阐明你可以首先造成严重破坏的地方。我想自己做,但这超出了我的工资等级。
一些附加提示:
祝你好运!
fbcarpbf2#
确保已启用此选项:
如果我没记错的话,当客户点击一个页面结帐按钮,船舶到多个地址选项不会显示给他。但如果他点击主结帐按钮,它会。