作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试找到一种方法,允许将订单拆分为多个送货地址,但将向客户收取的费用作为一次性付款,而不是必须单独为每批 cargo 收费。有没有办法做到这一点?目前,客户被多次收费,对应于他们的“多个订单”,因为 magento 将订单分成许多较小的订单。这是信用卡公司方面的一个问题,因为他们对信用卡的这么多连续收费产生了怀疑。
有任何想法吗?
最佳答案
好吧,我无法提供完整的解决方案,因为老实说,该解决方案需要相当多的时间和测试,但我会提供全面的信息,让您朝着正确的方向前进。
基本上,预先 - 在默认的 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
周围的功能:
public function createOrders()
{
$orderIds = array();
$this->_validate();
$shippingAddresses = $this->getQuote()->getAllShippingAddresses();
$orders = array();
if ($this->getQuote()->hasVirtualItems()) {
$shippingAddresses[] = $this->getQuote()->getBillingAddress();
}
try {
foreach ($shippingAddresses as $address) {
$order = $this->_prepareOrder($address);
$orders[] = $order;
....
}
foreach ($orders as $order) {
$order->place();
$order->save();
...
}
....
Mage::dispatchEvent('checkout_submit_all_after', array('orders' => $orders, 'quote' => $this->getQuote()));
return $this;
} catch (Exception $e) {
Mage::dispatchEvent('checkout_multishipping_refund_all', array('orders' => $orders));
throw $e;
}
}
checkout_submit_all_after
由支付模块监控的事件(订单和报价信息被传递给所有可用/有效的支付模块,并且报价中设置的支付方式将决定接收调度事件的某个支付模块是否可以处理它)。
createOrders
例程将所有项目再次组合成一个订单,
->place()
它,然后传递给 dispatchEvent 以获得良好的度量。
关于magento - 运送到多个地址,但支付一笔费用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488019/
我是一名优秀的程序员,十分优秀!