Я пытаюсь добавить несколько настраиваемых продуктов одновременно в корзину в Magento.
Код, который я использовал для этого:
$postData = Mage::app()->getRequest()->getPost();
$superAttributes = $postData['super_attribute'];
$cart = Mage::getSingleton('checkout/cart');
$cart->init();
if(isset($postData['bundleconfigurable']) && !empty($postData['bundleconfigurable'])){
foreach($postData['bundleconfigurable'] as $optionId => $qtyArray){
foreach($qtyArray as $valueId => $qty){
if($qty < 1){
continue;
}
// Add items to cart
$itemSuperAttributes = $superAttributes;
$itemSuperAttributes[$optionId] = $valueId;
$product = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($postData['product']);
$params = array(
'product' => $postData['product'],
'super_attribute' => $itemSuperAttributes,
'qty' => $qty
);
$product = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($postData['product']);
$cart->addProduct($product, $params);
}
}
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
Я считаю, что код должен быть правильным.
Пример вывода $ params:
Array ([product] => 2287 [super_attribute] => Array ([179] => 1203 [154] => 626) [qty] => 1)
При перенаправлении на страницу корзины все добавляется красиво (супер атрибуты просто в порядке), но цена продукта неправильная. Я проверил числа в $ params (179 => 1203 и т. Д.), И они совпадают с выбранными параметрами.
Пожалуйста, найдите скриншот ниже конфигурации и корзины покупок.
Конфигурация:
Выбранные варианты:
Результат в корзине:
Итак, как вы можете видеть, варианты просто прекрасны, но цена указана в другой комбинации (IDS 2255 — 2259).
Есть идеи, как решить эту проблему?
Спасибо!
Задача ещё не решена.
Других решений пока нет …