在 Magento 中以编程方式将捆绑产品添加到购物车时,我似乎无法在产品选项数组中找到任何有关“bundle_option”字段的文档。所以我不能确定如何正确地做到这一点。
但这是我的尝试:
$json_obj = json_decode($json_string, true);
//define cart
$cart = Mage::getSingleton('checkout/cart');
$bundle = array();
$bundle_qty = array();
for ($i=0; $i<count($json_obj['basket']['products']); $i++) {
$product_id = int($json_obj['basket']['products'][$i]['id']);
#add individual products to cart
#$product = new Mage_Catalog_Model_Product();
#$product->load($product_id);
#$params = array('product'=>$product_id,'qty'=>1);
#if ($product->getName()) $cart->addProduct($product, $params);
#add products to bundle
$bundle[$i] = $product_id;
if (isset($bundle_qty[$product_id])) $bundle_qty[$product_id] += (int)1;
else $bundle_qty[$product_id] = (int)1;
}
#add to bundled product to cart
$product = new Mage_Catalog_Model_Product();
$product->load(833); #833 = test bundle
$cart->addProduct($product, array('product'=>833,
'qty'=>min(1,int($json_obj['basket']['quantity'])),
'bundle_option'=>$bundle,
'bundle_option_qty'=>$bundle_qty));
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
$message = $this->__('Notice: %s item(s) were successfully added to your shopping cart.', $i);
Mage::getSingleton('checkout/session')->addSuccess($message);
}
因此,注释掉的代码是单独添加可以正常工作的产品。现在我正在尝试将产品添加到“测试捆绑”产品中。
我现在在循环中做的是为“bundle_option”和“bundle_option_qty”字段编译数组。循环完成后,我将使用捆绑商品的选项数组将捆绑产品 (ID:833) 添加到购物车。
结果是没有任何东西添加到购物车中。我也对代码进行了一些尝试,但没有成功。
任何人都可以看到我哪里出错了,或者您是否可以将我指向产品选项参数的文档/教程,其中详细说明了 bundle_option 数组(索引是什么,值是什么),这也会有所帮助?