2012-06-01 2 views
3

Можно ли ограничить конкретные товары в Magento до максимального количества одного заказа? Это означает, что пользователь может заказывать только один продукт за раз. Если он хочет заказать продукт дважды, он должен сделать второй заказ. Это очень важно для последующего рабочего процесса заказа.Magento: максимальное количество максимального продукта продукта до 1 за заказ. количество 2 = 2 заказа

Thx за вашу помощь, я ценю это!

С уважением, Мана

ответ

9

Да, вы можете ограничить максимальное количество продукта в корзине путем изменения значения на вкладкеInventory при редактировании продукта. См. Снимок экрана ниже. В вашем случае вы хотите снять отметку Use Config Settings и установить значение 1.

Product page Inventory tab

+1

ОК, может быть, я не был достаточно специфичен. Я имел в виду, что всего 1 продукт может быть ordert. Ваша конфигурация ограничивает только определенный продукт, который будет заказываться один раз. – Manuel

+0

Этот параметр означает, что вы можете купить 10000 за раз. Один клиент может купить 10000 штук за один заказ. Если он хочет, то 1000 пунктов снова за следующий заказ. И снова и снова. – diNord

+0

Да, я понимаю, но если у меня есть 2 продукта (A и B) с max qty 1, я все равно могу заказать 2 продукта: продукт 1x A и 1x продукт B. Однако клиент должен иметь возможность только одного ОДНОГО продукта. Таким образом, клиент может либо заказать продукт A, либо продукт B. Вы также знаете решение для этого? – Manuel

2

Ну выше ответ полезно ограничить одного продукта, чтобы добавить в корзину не Ограничение максимального Количество животных в торговом автомобиле. Чтобы изменить эту настройку, выполните следующие действия.

Первый вход в Magento admin затем Перейдите к Система >> Конфигурация затем используйте эти параметры конфигурации.

enter image description here

0

Посмотрите @Magento Maximum Allowed Order Amount, вам придется создать собственный модуль для добавления этой функции.

Создание наблюдателя для sales_quote_save_before

<config> 
    <frontend> 
     <events> 
      <sales_quote_save_before> 
       <observers> 
        <inchoo_maxorderamount_enforceSingleOrderLimit> 
         <class>inchoo_maxorderamount/observer</class> 
         <method>enforceSingleOrderLimit</method> 
        </inchoo_maxorderamount_enforceSingleOrderLimit> 
       </observers> 
      </sales_quote_save_before> 
     </events> 
    </frontend> 
</config> 

В вашем наблюдателе

class Inchoo_MaxOrderAmount_Model_Observer 
{ 
    private $_helper; 
    public function __construct() 
    { 
     $this->_helper = Mage::helper('inchoo_maxorderamount'); 
    } 
    /** 
    * No single order can be placed over the amount of X 
    */ 
    public function enforceSingleOrderLimit($observer) 
    { 
     if (!$this->_helper->isModuleEnabled()) { 
      return; 
     } 
     $quote = $observer->getEvent()->getQuote(); 
     if ($quote->getCart()->getItemsCount() == 1) { 

      Mage::getSingleton('checkout/session')->addError('limit only one product per order'); 
      Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart')); 
      Mage::app()->getResponse()->sendResponse(); 
      exit; 
     } 
    } 
} 
+0

Это вызывает у меня ошибку. –

+0

Какая ошибка вы получаете? –

+0

По какой-то причине он не отображает ошибки. Я установил ini и параметры отчетности об ошибках в index.php, поэтому я пытаюсь понять, почему теперь это просто белый экран. –

0

Ниже следует устранить проблему:

public function enforceSingleOrderLimit($observer){ 
    if (!$this->_helper->isModuleEnabled()) { 
     return; 
    } 
    $cart = Mage::getModel('checkout/cart')->getQuote(); 
    if ($cart->getItemsCount() > 1) { 

     Mage::getSingleton('checkout/session')->addError('limit only one product per order'); 
     Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart')); 
     Mage::app()->getResponse()->sendResponse(); 
     exit; 
    } 
} 
Смежные вопросы