Magento で特定の製品を注文ごとに最大数量 1 つに制限することは、どうにかして可能ですか? つまり、ユーザーは一度に 1 つの製品しか注文できません。彼が製品を 2 回注文したい場合は、2 回目の注文を行う必要があります。これは、後の注文ワークフローにとって非常に重要です。
助けてくれてありがとう、ありがとう!
よろしく、マヌ
Magento で特定の製品を注文ごとに最大数量 1 つに制限することは、どうにかして可能ですか? つまり、ユーザーは一度に 1 つの製品しか注文できません。彼が製品を 2 回注文したい場合は、2 回目の注文を行う必要があります。これは、後の注文ワークフローにとって非常に重要です。
助けてくれてありがとう、ありがとう!
よろしく、マヌ
はい、商品を編集するときに [在庫] タブの値を編集することで、ショッピング カート内の商品の最大数量を制限できます。以下のスクリーンショットを参照してください。あなたの場合、チェックを外しUse Config Settings
て値を に設定します1
。
@ 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;
}
}
}
以下はあなたの問題を解決するはずです:
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;
}
}