3

是否可以将 Magento 中的特定产品限制为每个订单的最大数量?这意味着用户一次只能订购一种产品。如果他想订购两次产品,他必须进行第二次订购。这对我以后的订单工作流程非常重要。

谢谢你的帮助,我很感激!

亲切的问候,马努

4

4 回答 4

9

是的,您可以通过在编辑产品时编辑“库存”选项卡上的值来限制购物车中产品的最大数量。请参阅下面的屏幕截图。在您的情况下,您需要取消选中Use Config Settings并将值设置为1.

产品页面库存选项卡

于 2012-06-01T22:10:23.713 回答
2

上面的答案对于限制单个产品添加到购物车而不是限制购物车中允许的最大数量很有用。要更改此设置,请遵循以下步骤。

首先登录到 Magento 管理员,然后转到系统>>配置,然后使用此配置设置。

在此处输入图像描述

于 2013-04-02T09:56:18.500 回答
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;
        }
    }
}
于 2014-06-24T13:21:43.303 回答
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;
    }
}
于 2015-09-30T13:33:12.417 回答