2

我在 Magento OPC 中的运输方式之后添加了一个步骤。

如果客户选择快递运输,我需要加倍并节省运费。如何做到这一点?

我尝试了什么:

1. $quote = $this->getQuote();
 $quote->setShippingAmount($price);
 $quote->setBaseShippingAmount($price);
 $quote->getShippingAddress()->collectShippingRates();
 $quote->getShippingAddress()->collectTotals();
 $quote->save();

这是行不通的。

2.$address = $this->getQuote()->getShippingAddress();
 $method   = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getShippingMethod();

 if ($method) {
    foreach ($address->getAllShippingRates() as $rate) {
         if ($rate->getCode()==$method) {
            $amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false);
            $method->setPrice('20');
            $method->setCost('20');
            $shippingDescription = $rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle();
            $address->setShippingDescription(trim($shippingDescription, ' -'));
            break;
            }
        }
    }
4

1 回答 1

1

正如你没有提到观察者。所以你需要创建一个观察者来处理这些事情

这是实现您目标的非常好的文档

只需抛出此链接并尝试了解他们在做什么。此外,如果您想更改费率,您也可以将其更改为您的自定义代码。

希望这对你有帮助。

于 2013-09-03T12:33:54.707 回答