これがシナリオです。
初めての注文の場合、チェックアウトするには最低金額が $1000 以上である必要があります。
顧客が再注文を希望する場合、チェックアウトするには最低金額が 500 ドル以上である必要があります。
毎回、$1000以上の注文のみ可能
どうすればこれを修正できますか?
ありがとう
これがシナリオです。
初めての注文の場合、チェックアウトするには最低金額が $1000 以上である必要があります。
顧客が再注文を希望する場合、チェックアウトするには最低金額が 500 ドル以上である必要があります。
毎回、$1000以上の注文のみ可能
どうすればこれを修正できますか?
ありがとう
これを達成するために、あなたは書き直すことができます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;
}
....
また、最小発注額の設定方法を無効にすることもできます。
次に、独自のロジックを実装します。Magento の最大許容注文額を参照してください。
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;
}
}
}