我对magento有一点经验。我所有的产品都有自定义尺寸可供选择。所有产品都有不同的尺寸和不同的价格。
客户将一件数量为 5 的产品添加到购物车。所以 5 件这种尺寸的产品被添加到购物车中。当客户添加另一个尺寸不同的产品时,购物车中的所有产品都会更改为该尺寸。
我怎样才能防止这种行为?
我对magento有一点经验。我所有的产品都有自定义尺寸可供选择。所有产品都有不同的尺寸和不同的价格。
客户将一件数量为 5 的产品添加到购物车。所以 5 件这种尺寸的产品被添加到购物车中。当客户添加另一个尺寸不同的产品时,购物车中的所有产品都会更改为该尺寸。
我怎样才能防止这种行为?
除非您以编程方式执行此操作(即编写代码),否则无法执行此操作。
当 Magento 添加产品时,它首先查看报价/购物车以查看是否已经存在。如果有,它会拉出那个并增加数量。没有办法关闭它。
以编程方式,您非常手动地将商品添加到购物车。这是如何...
$cart = Mage::getSingleton("checkout/cart");
foreach ($products_to_add as $product_id => $custom_options) {
$product = Mage::getModel("catalog/product")->load($product_id);
$options = new Varien_Object(array("options" => $custom_options,
"qty" => 1));
// some products may result in multiple products getting added to cart
// I beleive this pulls them all and sets the custom options accordingly
$add_all = $product->getTypeInstance(true)
->prepareForCartAdvanced($options, $product, Mage_Catalog_Model_Product_Type_Abstract::PROCESS_MODE_FULL);
foreach ($add_all as $add_me) {
$item = Mage::getModel('sales/quote_item');
$item->setStoreId(Mage::app()->getStore()->getId());
$item->setOptions($add_me->getCustomOptions())
->setProduct($add_me);
$item->setQty(1);
$cart->getQuote()->addItem($item);
}
}
// when done adding all the items, finally call save on the cart
$cart->save();