Можно ли ограничить конкретные продукты в Magento максимальным количеством одного заказа? Это означает, что пользователь может заказывать только один продукт за раз. Если он хочет заказать продукт дважды, он должен сделать второй заказ. Это очень важно для последующего рабочего процесса заказа.
Thx за вашу помощь, я ценю это!
С уважением, Ману
Да, вы можете ограничить максимальное количество товара в корзине покупок, отредактировав значение на вкладке « Ресурсы » при редактировании продукта. См. Снимок экрана ниже. В вашем случае вы хотите снять флажок Use Config Settings
и установить значение 1
.
Ну а выше ответа полезно ограничить один продукт, который нужно добавить в корзину, а не для ограничения максимального количества, разрешенного в Shopping Car. Чтобы изменить эту настройку, выполните следующие действия.
Сначала войдите в Magento admin, затем перейдите в раздел Система >> Конфигурация, затем используйте эти параметры конфигурации.
Посмотрите @ Максимальное допустимое количество заказа Magento , вам нужно будет создать собственный модуль для добавления этой функции.
Создайте наблюдателя для 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; } } }
Ниже приведена ваша проблема:
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; } }