【问题标题】:magento save shipping amount in quotemagento 在报价中保存运费
【发布时间】:2013-09-03 12:01:42
【问题描述】:

我在 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;
            }
        }
    }

【问题讨论】:

    标签: php magento shipping quote


    【解决方案1】:

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

    这里有很好的文档来实现你的目标

    this link 并尝试了解他们在做什么。另外,如果您想更改费率,也可以将其更改为您的自定义代码。

    希望这对你有帮助。

    【讨论】:

    • 我创建了一个观察者账户。指示。但是我要在结帐步骤更新运费,所以我需要一些更新报价的代码!我在观察者中创建了 saveQuoteBefore() 方法,并在 XML 中正确定义了它,但我不知道在其中写什么可以节省运费,知道吗?
    • 如果你想使用一个现成的免费扩展,就扔这个rapidcommerce.eu/blog/2012/04/…,你一定会解决你的问题,
    • 我的回答对你有用吗?请接受并投票。如果有人有同样的问题,这对未来的目的会有好处。
    • 如我所说,我想节省运费,而上面的链接没有这样做。它们很棒,但对我没有帮助。我已经创建了扩展和观察者,只是想知道如何在观察者中保存新的运费。
    • 以上扩展链接做同样的事情。它在报价默认添加选定的运输方法。
    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多