3

我尝试使用自定义模块将产品添加到购物车。下面是我使用的代码

    $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 将产品名称、数量添加到购物车,但我无法在购物车中添加产品自定义选项。

请帮我解决这个问题。

谢谢,普拉卡什

4

1 回答 1

3

你这么近!您需要更改的主要内容是您的$param,因为它的结构不像 Magento 想要的那样。这应该可以解决问题:

$param = array(
    'product' => $product->getId(),
    'qty' => 2,
    'options' => array(
                        $option_id => $option_value,
                        $option_id2 => $option_value2,
                      ),
);

请注意,您的产品上任何必需的自定义选项都需要具有值,以避免在添加到购物车时出现致命错误。此外,无需转换$paramVarien_Object- Magento 可以很好地理解数组。

于 2012-10-06T12:41:40.600 回答