我尝试使用自定义模块将产品添加到购物车。以下是我使用的代码
$product_id = $this->getRequest()->getParam('product');
$product = Mage::getModel('catalog/product')->load($product_id);
$param = array( 'product' => $product->getId(), 'qty' => 2,'options["'.$option_id.'"]' => $option_type_id );
$cart = Mage::getModel('checkout/cart')->init();
$cart->addProduct($product, new Varien_Object($param));
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
$cart->save();
我可以使用产品ID将产品名称,数量添加到购物车,但我无法在购物车中添加产品自定义选项。
请帮我解决一下。
谢谢, 普拉卡什
答案 0 :(得分:3)
你真是太近了!您需要更改的主要内容是$param
,因为它的结构不像Magento所希望的那样。这应该可以解决问题:
$param = array(
'product' => $product->getId(),
'qty' => 2,
'options' => array(
$option_id => $option_value,
$option_id2 => $option_value2,
),
);
请注意,产品上的所有必需自定义选项都需要具有值,以避免在添加到购物车时出现致命错误。此外,无需将$param
转换为Varien_Object
- Magento理解阵列就好了。