2013-06-28 3 views
0

У меня есть небольшой опыт в пурпуре. Все мои продукты имеют нестандартный размер в опции. Все продукты имеют разные размеры и разные цены.пурпурный одинаковый товар много раз различный размер один раз

Клиент добавляет один товар с количеством 5 в корзину. Таким образом, в корзину добавлено 5 продуктов такого размера. Когда клиент добавляет другой продукт разного размера, все товары в корзине меняются до такого размера.

Как я могу предотвратить такое поведение?

+0

(я имею в виду один продукт, 5 количество, различные пользовательские опции) если я выбрать один, что все являются эффект все 5 количество .И не такое поведение – kaykay

+0

, если ваш продукт отличается размер для покупки продукта, так что один за другим продукт добавьте в корзину с вашим размером. не сразу 5 продуктов на таком же размере. –

+0

В базе данных может быть много продуктов. – kaykay

ответ

0

Если вы не делаете это программно (это код написания), это невозможно.

Когда 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(); 
+0

спасибо Andy Jones.Its полезно для меня. – kaykay