質問

私は一度に1バンドル製品を購入する顧客を制限することを検討しています。

バンドル製品の「ショッピングカートで許可される最大数量」を設定する方法はありますか?

私は個々の製品を制限することなくこれをやりたいので、顧客はそれらの多くを別々に購入することができます。

これが可能であれば、どのように私はこれを実装するのですか?

役に立ちましたか?

解決

コア機能「最大数量」は在庫アイテムに関連付けられているため、バンドルでは機能しません(独自の在庫がありません)。

あなたは自分でそれを開発する必要があります。

単純な製品の場合、チェックは次のように行われます Mage_CatalogInventory_Model_Stock_Item::checkQuoteItemQty():

if ($this->getMaxSaleQty() && $qty > $this->getMaxSaleQty()) {
    $result->setHasError(true)
        ->setMessage(
            Mage::helper('cataloginventory')->__('The maximum quantity allowed for purchase is %s.', $this->getMaxSaleQty() * 1)
        )
        ->setErrorCode('qty_max')
        ->setQuoteMessage(Mage::helper('cataloginventory')->__('Some of the products cannot be ordered in requested quantity.'))
        ->setQuoteMessageIndex('qty');
    return $result;
}

それは呼ばれています Mage_CatalogInventory_Model_Observer::checkQuoteItemQty() そして、これは私がバンドルのための私自身の追加の制限を追加する場所です。リライトまたは同じイベントの追加オブザーバ(sales_quote_item_qty_set_after):

  • アイテムがバンドルされているかどうかを確認する
  • もしそうなら、bundle qtyが>1であるかどうかを確認し、この場合は元のオブザーバーと同じようにerrorをquoteに追加します。
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top