将订单拆分为单独的订单,并使用ups和fedex和不同的原始地址分别计算运输


8

当客户来到我们的商店并检查多个项目时,我需要编写一个模块以根据多个因素计算运费。根据我的研究,我确定应该发生以下情况:

首先,我需要将购物车中的物品分为不同的订单进行运输计算。我希望订单按“供应商”属性值排序。“供应商”是我们添加到系统中的属性,适用于所有简单产品。如此说来,在购物车中有一件粉红色的衬衫,“供应商”值为“ 1”,一支铅笔的“供应商”值为“ 1”,而一件蓝色衬衫的“供应商”值为“ 2”。“供应商”值“ 1”的所有项目都必须是一个订单,而“供应商”值“ 2”的项目必须是不同的订单。我看到另一个问题回答了这个难题,但是又提出了另一个问题。

其次,我需要使用Magento的默认UPS和Fedex运送功能来计算运送,但其原始地址由“供应商”值号(存储在单独的数据库表中)确定。 任何建议欢迎!

我正在使用代码片段来使我从这里这里开始。

我可能会有几个问题,但第一个是上面粗体字的问题。

更新, 我认为最好是覆盖多个批次的magento核心模块来执行我想做的事情。请帮助我找到在何处以及放置什么以操纵多发货Magento功能,以根据“供应商”属性将订单商品分解为货件!我为此感到挣扎。


1
Magento的多船运输是本地完成的。也许您可以在不向客户显示的情况下利用多件运输功能?
philwinkle

主题外:您介意接受或回答您以前的未解决问题吗?我们正在努力提高Beta版的回答率。谢谢。
philwinkle

1
现在,我将研究多装运和未接受的答案。通常,我没有接受,因为我继续从事其他工作,并且会回到原来的状态。不过,我会看看是否错过了
CaitlinHavener

另一种选择是实现诸如Unirgy uDropship之类的东西,它还结合了您当前正在编写的供应商类型的功能。但它为供应商提供了一个运输门户,生成运输标签等。我不为Unirgy工作,也不被Unirgy认可。
philwinkle

1
我不想使用直接运送扩展程序。有许多原因使我无法做到。
CaitlinHavener

Answers:


3

这里需要考虑的一点是,您可能只需要对多装运模板(template/checkout/multishipping/)进行一些装饰性的前端更改,以使两个订单对于客户而言只是一个订单。的shipping.phtmloverview.phtml模板的两个命令,每一个报头(地址2 1,等)和其他拷贝分割,以显示它是两个数量级。

我可能会建议您在这些模板上稍加创新,而不是使用默认模板,以便将两个订单简单地拆分,以便将它们简单地显示为两个单独的订单项。

下一位将是根据供应商属性来处理不同的装运来源。这可以在Mage_Shipping_Model_Shipping中完成。您可以在右上角看到Magento从配置中获取货运原始地址,然后在该requestToShipment()方法中进一步往下,将原始地址元素分配给货运请求(我假设稍后将根据货运方法使用该地址)称为)。

至少这可能是一个前进的方向。仔细阅读您的问题和更新,我会觉得您使此事变得更加困难。始终记住,通常最好让Magento做它想做的事情,并且只修改一点点来处理您的特定情况。您所需的大部分内容已在核心中完成,因此,当可能有更简单的选择时,重写多装运组件似乎有点愚蠢。


然后,它将如何计算按供应商属性捆绑的每次装运的装运?
CaitlinHavener

运送计算不会更改,就像Mage_Shipping_Model_Shipping将运送请求中的原始地址替换为分配给该供应商的原始地址一样。然后,Magento将继续开展业务,并取消适用于该订单的所有运费。我可能会发现其中一个WebShopApps运送模块很有用,因为它允许您根据各种条件分配运送方法。-再说一遍,从理论上讲,这只是我以前从未做过的事情,因此可能有一些警告(总是存在)。-–
pspahn

我正在检查那些webshopapp扩展。我想我现在被……所迷惑的是类/方法告诉M​​age_Shipping_Model_Shipping类“嘿,这是订单,这些是其中的项目”。在哪里可以找到?
CaitlinHavener

1
看一下/app/code/core/Mage/Sales/Model/Quote.php-请记住,Magento并不像其他购物车那样线性。顺其自然,看看报价如何更改为订单(和贷方等)。在某些时候,您会找到想要更改的方法。再次,正如我之前说过的,简单地投资一个可以快速完成您所需要的质量的后端模块(以及同样重要的是支持)通常是有益的。有些细节不喜欢被更改。
pspahn

如果您想了解更多详细信息,请提供帮助!非常感谢您在这里提供的帮助。你救了我!这是我迄今为止最难的Magento项目!magento.stackexchange.com/questions/7635/...
CaitlinHavener
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.