【问题标题】:Minimum ReOrder Amount, how can I fix this?最低重新订购金额,我该如何解决?
【发布时间】:2013-06-14 13:43:27
【问题描述】:

这是场景。

对于第一次订购,最低金额需要超过 1000 美元才能结帐。

当客户想要重新订购时,最低金额需要超过 500 美元才能结帐。

每次只允许超过$1000的订单

我该如何解决这个问题?

谢谢

【问题讨论】:

  • 你需要一些代码才能做到这一点!

标签: magento


【解决方案1】:

为此,您可以重写Mage_Sales_Model_Quote

 /app/code/core/Mage/Sales/Model/Quote.php

public function validateMinimumAmount($multishipping = false)
{
    $storeId = $this->getStoreId();
    $minOrderActive = Mage::getStoreConfigFlag('sales/minimum_order/active', $storeId);
    $minOrderMulti  = Mage::getStoreConfigFlag('sales/minimum_order/multi_address', $storeId);
    $minAmount      = Mage::getStoreConfig('sales/minimum_order/amount', $storeId);

    if (!$minOrderActive) {
        return true;
    }

    if(previous order exist and $baseTotal > 500){
        return true;
    }

    ....

【讨论】:

  • 感谢您的回复,如何查看客户是否已购买?
【解决方案2】:

您也可以禁用How to set minimum purchase order amount

然后实现你自己的逻辑见Magento Maximum Allowed Order Amount

class Inchoo_MaxOrderAmount_Model_Observer
{
    private $_helper;

    public function __construct()
    {
    $this->_helper = Mage::helper('inchoo_maxorderamount');
    }

    public function enforceSingleOrderLimit($observer)
    {
        if (!$this->_helper->isModuleEnabled()) {
            return;
        }
        $quote = $observer->getEvent()->getQuote();

        /*
         check to see if order greater than minimum amount 
         or has a previous and current amount > 500
        */
        if ((float)$quote->getGrandTotal() < (float)$this->_helper->getSingleOrderMinAmount() || (has Previous Order && $quote->getGrandTotal() > 500)) {
            $formattedPrice = Mage::helper('core')->currency($this->_helper->getSingleOrderTopAmount(), true, false);
            Mage::getSingleton('checkout/session')->addError(
            $this->_helper->__($this->_helper->getSingleOrderTopAmountMsg(), $formattedPrice));
            Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
            Mage::app()->getResponse()->sendResponse();
            exit;
        }
    }
}

【讨论】:

    猜你喜欢
    • 2013-06-05
    • 2013-06-29
    • 2014-12-13
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2016-02-11
    • 2020-05-11
    相关资源
    最近更新 更多