Я пытаюсь добавить настраиваемый продукт в корзину, но пока он не выбрасывает никаких Исключений, тележка по-прежнему пуста.Magento добавляет настраиваемый продукт в корзину программно
Я использовал этот код раньше, без проблем, поэтому я не уверен, что это связано с версией Magento, которую я использую.
код я использую:
$post = $this->getRequest()->getPost();
$session = Mage::getSingleton('customer/session');
$attr = array_keys($post['sa']);
$cart = Mage::getSingleton('checkout/cart');
$cart->init();
foreach ($post['sa'][$attr[0]] as $optId){
try {
if (abs($post['qty'][$optId]) > 0){
$product = Mage::getModel('catalog/product')->load($post['product']);
$this->getRequest()->setParam('product',$post['product']);
$this->getRequest()->setParam('super_attribute',array(
$attr[0] => $optId
));
$options = array(
"product"=>$post['product'],
"super_attribute"=>array(
$attr[0] => $optId
),
"qty"=>$post['qty'][$optId]
);
$opts = new Varien_Object();
$opts->setData($options);
var_dump($opts);
$cart->addProduct($product, $opts);
$cart->save();
}
} catch (Exception $e){
var_dump($e);
}
}
$cart->save(); // save the cart
$cart->setCartWasUpdated(true);
$pdts = $cart->getAllVisibleItems();
var_dump($pdts);
die("??");
Так что я бы ожидать, чтобы получить тележку с 6 в нем (3 продукты, конфигурируемых + простой), но я получаю нулевой вместо этого - как вы можете видеть из ниже, который также показывает объект $ КЛЮЧ Я пытаюсь передать:
object(Varien_Object)[507]
protected '_data' =>
array (size=3)
'product' => string '86' (length=2)
'super_attribute' =>
array (size=1)
179 => string '20' (length=2)
'qty' => string '1' (length=1)
protected '_hasDataChanges' => boolean true
protected '_origData' => null
protected '_idFieldName' => null
protected '_isDeleted' => boolean false
protected '_oldFieldsMap' =>
array (size=0)
empty
protected '_syncFieldsMap' =>
array (size=0)
empty
object(Varien_Object)[663]
protected '_data' =>
array (size=3)
'product' => string '86' (length=2)
'super_attribute' =>
array (size=1)
179 => string '19' (length=2)
'qty' => string '2' (length=1)
protected '_hasDataChanges' => boolean true
protected '_origData' => null
protected '_idFieldName' => null
protected '_isDeleted' => boolean false
protected '_oldFieldsMap' =>
array (size=0)
empty
protected '_syncFieldsMap' =>
array (size=0)
empty
object(Varien_Object)[678]
protected '_data' =>
array (size=3)
'product' => string '86' (length=2)
'super_attribute' =>
array (size=1)
179 => string '17' (length=2)
'qty' => string '3' (length=1)
protected '_hasDataChanges' => boolean true
protected '_origData' => null
protected '_idFieldName' => null
protected '_isDeleted' => boolean false
protected '_oldFieldsMap' =>
array (size=0)
empty
protected '_syncFieldsMap' =>
array (size=0)
empty
null
??
Любая помощь будет apprciated!
Если я ошибаюсь (очень возможно), это будет работать только для добавления продукта с пользовательскими параметрами? Я пытаюсь добавить настраиваемый продукт с super_attributes. –
Хорошо. Ответ обновлен. Вы можете проверить это. –