Magento: limit product max quantity to 1 per order

2020-02-06 10:47发布

Is it anyhow possible to limit specific products in Magento to a max quantity of one per order? This means the user can only order one product at a time. If he wants to order the product twice he has to do a second order. This is very important for me for the later order workflow.

Thx for your help, I appreciate it!

Kind regards, Manu

4条回答
孤傲高冷的网名
2楼-- · 2020-02-06 11:02

Yes, you can limit the maximum quantity of a product in the shopping cart by editing the value on the Inventory tab when editing a product. See screenshot below. In your case, you'd want to uncheck Use Config Settings and set the value to 1.

Product page Inventory tab

查看更多
相关推荐>>
3楼-- · 2020-02-06 11:02

Take a look @ Magento Maximum Allowed Order Amount, you would have to create a custom module to add this feature.

Create an observer for 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>

In your observer

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;
        }
    }
}
查看更多
啃猪蹄的小仙女
4楼-- · 2020-02-06 11:07

Well above answer is useful to restrict a single product to add in cart not for Restricting Maximum Qty Allowed in Shopping Car. To change this setting fallow bellow steps.

First login into Magento admin then Go to System>>Configuration then use this configuration settings.

enter image description here

查看更多
倾城 Initia
5楼-- · 2020-02-06 11:10

The below should fix your issue:

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;
    }
}
查看更多
登录 后发表回答