Вопрос по php – Magento: ограничить максимальное количество товара до 1 на заказ. количество 2 = 2 заказа

3

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

Спасибо за вашу помощь, я ценю это!

С наилучшими пожеланиями, Ману

Ваш Ответ

4   ответа
2

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

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

0

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;
        }
    }
}
Это выдает ошибку для меня. Thomas Bennett
Какую ошибку ты получаешь? Renon Stewart
Почему-то не отображаются ошибки. Я настроил ini и параметры отчетов об ошибках в index.php, поэтому я пытаюсь выяснить, почему это просто белый экран. Thomas Bennett
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;
    }
}
9

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

ok, может быть, я не был достаточно конкретен. Я имел в виду 1 продукт можно заказать. Ваша конфигурация ограничивает определенный продукт, который будет заказан один раз. Manuel
Этот параметр означает, что вы можете купить 10000 одновременно. Один клиент может купить 10000 предметов за один заказ. Если он хочет, то 1000 предметов снова за следующий заказ. И так снова и снова. diNord
Да, я понимаю, но если у меня есть 2 продукта (A и B) с максимальным количеством 1, я все еще могу заказать 2 продукта: 1x продукт A и 1x продукт B. Однако покупатель должен иметь возможность заказать только ОДИН продукт. Таким образом, клиент может заказать продукт A или продукт B. Вы тоже знаете решение? Manuel
Я бы предложил изменитьMage_Checkout_Model_Cart::addProduct() запретить добавление товаров, если в корзине уже есть количество (см.getItemsQty()). Вы также должны знать оupdateItem() который можно использовать для изменения количества товаров в корзине. nachito

Похожие вопросы