我正在尝试使用如下的查询字符串同时将多个简单产品添加到购物车,但是它只将最后一个产品添加到购物车而不是两者:
有人能让我知道我做错了吗?
http://www.domain.co.uk/checkout/cart/add?product=9916&qty=4&product=15749&qty=4
我也试过这个:
http://www.domain.co.uk/checkout/cart/add?product[]=9916&qty[]=4&product[]=15749&qty[]=4
非常感谢任何帮助!
答案 0 :(得分:6)
使用查询字符串将产品添加到购物车
http://yourserver.com/checkout/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY
此处PRODUCT_ID ='产品ID',PRODUCT_QUANTITY ='要购买的产品数量'。http://yourserver.com/checkout/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY&super_attribute[OPTION_ID]=OPTION_VALUE
此处OPTION_ID ='自定义属性选项ID',OPTION_VALUE ='自定义属性选项值'。http://yourserver.com/checkout/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY&super_attribute[OPTION_ID_1]=OPTION_VALUE_1&super_attribute[OPTION_ID_2]=OPTION_VALUE_2
OPTION_ID_1& OPTION_ID_1 ='自定义属性选项ID',OPTION_VALUE_1& OPTION_VALUE_2 ='自定义属性选项值'。在“super_attribute”数组中添加更多选项http://yourserver.com/checkout/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY&related_product=PRODUCT_ID_1,PRODUCT_ID_2
此处PRODUCT_ID_1和PRODUCT_ID_2是其他产品ID。使用`,`分隔符通过id添加更多产品。示例: - & related_product = 1,2,3,4。默认magento没有设置将相关产品数量添加到cart.so如果您要添加此代码而不是打开app/code/core/Mage/Checkout/controllers/CartController.php
查找public function addAction()
。
if (!empty($related)) {
$cart->addProductsByIds(explode(',', $related));
}
替换为
$rel_qty = $this->getRequest()->getParam('related_qty');
if (!empty($related)) {
$relatedproducts = explode(',', $related);
$relatedqtys = explode(',',$rel_qty);
$i = 0;
foreach($relatedproducts as $relatedproduct)
{
$cart->addProduct($relatedproduct, array('qty'=>$relatedqtys[$i]));
$i++;
}
}
现在使用查询字符串添加数量相关的产品。
http://yourserver.com/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY&related_product=PRODUCT_ID_1,PRODUCT_ID_2&related_qty=PRODUCT_ID_1_QUANTITY,PRODUCT_ID_2_QUANTITY
答案 1 :(得分:3)
如果您不想更改任何代码,可以尝试通过在请求中添加 related_product 参数来利用相关的产品功能。所以你的网址将如下所示:
http://www.domain.co.uk/checkout/cart/add?product=9916&qty=4&related_product=15749
如果您想添加更多产品,请使用逗号分隔符列出它们:related_product=1,2,3
唯一的缺点是您实际上无法指定相关产品的数量。
要了解它的工作原理 - Mage_Checkout_Model_Cart::addProductsByIds(array_of_ids)
如果后续产品的数量是强制性的,您需要创建自己的控制器,或覆盖Mage_Checkout_CartController::addAction
方法。
答案 2 :(得分:1)
我发现了一种厚颜无耻的方式,我发现在其他答案中解决了上面提到的related_products查询字符串字段的数量限制。如果您只将相同产品的值中的SAME ID MULTIPLE TIMES放入您需要的数量的次数,则可以获得与每个相关产品都有明确的qty字段相同的效果。因此,采取himansu的答案并进行调整我们得到:
http://yourserver.com/checkout/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY&related_product=PRODUCT_ID_1,PRODUCT_ID_1,PRODUCT_ID_1,PRODUCT_ID_2,PRODUCT_ID_2
这将添加到PRODUCT_ID的购物车PRODUCT_QUANTITY,PRODUCT_ID_1的3个和PRODUCT_ID_2的2个。
因此,只要你很乐意做一些工作来多次生成相同的ID,这就是一种享受。并且您的magento服务器上不需要更改自定义代码。