Magento:将产品最大数量限制为每个订单1个。数量2 = 2个订单

时间:2012-06-01 20:14:32

标签: php zend-framework magento magento-1.6

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

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

亲切的问候,Manu

4 个答案:

答案 0 :(得分:9)

是的,您可以在编辑产品时通过编辑广告资源标签上的值来限制购物车中产品的最大数量。见下面的截图。在您的情况下,您需要取消选中Use Config Settings并将值设置为1

Product page Inventory tab

答案 1 :(得分:2)

以上答案可用于限制单个产品在购物车中添加,而不是限制购物车中允许的最大数量限制。要更改此设置,请执行以下步骤。

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

enter image description here

答案 2 :(得分: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;
        }
    }
}

答案 3 :(得分: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;
    }
}