Magento - 如果订单总数小于n,则隐藏交割方式?

时间:2015-05-22 14:04:35

标签: php magento magento-1.8

我有两种交付方式,统一费率1和统一费率2.

如果订单总额低于$ 15.00,我想隐藏统一费率1.

如何在Magento中完成?

3 个答案:

答案 0 :(得分:1)

您可以在模板中执行此操作。您可以在app / design / frontend / base / default / template / checkout / onepage / shipping_method / available.phtml中添加条件

希望这会有所帮助。

问候,大卫

答案 1 :(得分:1)

Hacky,但这就是我做到的。

在以下文件中......

  • 模板/ msp_flatshipping5 / available.phtml
  • 模板/结帐/ multishipping / shipping.phtml
  • 模板/结帐/购物车/ shipping.phtml

...在foreach ($_shippingRateGroups as $code => $_rates):

之后插入此内容
$quote = Mage::getSingleton('checkout/session')->getQuote();
if($code == 'flatrate' && $quote->getSubtotal() >= 15) continue;

根据需要调整flatrate15

答案 2 :(得分:1)

创建一个模块并注册sales_quote_address_collect_totals_after事件的观察者:

public function hideFlatRate1($observer)
{
    $quoteAddress = $observer->getQuoteAddress();
    $quote = $quoteAddress->getQuote();
    $total = $quote->getGrandTotal();

    if ($total < 15){
        $store = Mage::app()->getStore($quote->getStoreId());
        $storeId = $store->getId();
        $store->setConfig('carriers/flat_rate1/active', 0);
    }

}

基本上,当在Mage_Sales_Model_Quote_Address的第1009行的collectTotals方法中调度sales_quote_address_collect_totals_after事件时,会通知此观察者。在一页结账时,当您提交送货地址时,会调用此方法以获取送货地址的运费。