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

あなたはとても近いです!$paramMagento が望むように構造化されていないため、主に変更する必要があるのはです。これでうまくいくはずです:

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

製品に必要なカスタム オプションには、カートに追加する際の致命的なエラーを回避するための値が必要になることに注意してください。$paramまた、 a としてキャストする必要はありませんVarien_Object。Magento は配列を正しく認識します。

于 2012-10-06T12:41:40.600 に答える