2

我正在尝试使用如下查询字符串同时将多个简单产品添加到购物车,但是它只将最后一个产品添加到购物车而不是两者:

有人可以让我知道我做错了什么吗?

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

非常感谢任何帮助!

4

3 回答 3

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 = '自定义属性选项 ids',OPTION_VALUE_1 & OPTION_VALUE_2 = '自定义属性选项值'。这里在 `super_attribute` 数组中添加更多选项
  • 使用仅 1 个数量的邮件产品添加额外产品。
    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没有设置将相关产品数量添加到购物车中。所以如果您想添加此代码而不是打开app/code/core/Mage/Checkout/controllers/CartController.phpfind 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
于 2014-04-24T17:27:43.447 回答
3

如果您不想更改任何代码,可以尝试通过在请求中添加相关产品参数来利用相关产品功能。所以你的网址看起来像这样:

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方法。

于 2012-09-12T17:19:54.833 回答
1

我发现了一种厚颜无耻的方法,可以绕过上述其他答案中提到的相关产品查询字符串字段的数量限制。如果您只是将 SAME ID MULTIPLE TIMES 放在related_products 的值中,与您需要的数量一样多,那么这将达到与每个相关产品都有一个明确的数量字段相同的效果。因此,采用上面 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 服务器上不需要更改自定义代码。

于 2016-10-02T08:45:12.303 回答