3

Magento で特定の製品を注文ごとに最大数量 1 つに制限することは、どうにかして可能ですか? つまり、ユーザーは一度に 1 つの製品しか注文できません。彼が製品を 2 回注文したい場合は、2 回目の注文を行う必要があります。これは、後の注文ワークフローにとって非常に重要です。

助けてくれてありがとう、ありがとう!

よろしく、マヌ

4

4 に答える 4

9

はい、商品を編集するときに [在庫] タブの値を編集することで、ショッピング カート内の商品の最大数量を制限できます。以下のスクリーンショットを参照してください。あなたの場合、チェックを外しUse Config Settingsて値を に設定します1

商品ページ 在庫タブ

于 2012-06-01T22:10:23.713 に答える
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 に答える