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 = 'カスタム属性オプション ID',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.

デフォルトのマジェントには、関連する製品の数量をカートに追加するための設定がありませapp/code/core/Mage/Checkout/controllers/CartController.phppublic 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

コードを変更したくない場合は、リクエストにrelated_productパラメータを追加して、関連製品の機能を利用してみてください。したがって、URL は次のようになります。

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

他の回答で上記の related_products クエリ文字列フィールドの数量制限を回避するための生意気な方法を見つけました。related_products の値に必要な数だけ同じ ID を複数回入力すると、関連する各製品に明示的な数量フィールドがある場合と同じ効果が得られます。したがって、上記のhimansuの回答を採用して、それを適応させると、次のようになります

これにより、PRODUCT_ID の PRODUCT_QUANTITY、PRODUCT_ID_1 の 3、および PRODUCT_ID_2 の 2 がカートに追加されます。

したがって、同じ ID を複数回生成するために少し作業を行って満足している限り、これはうまくいきます。また、magento サーバーでカスタム コードを変更する必要はありません。

于 2016-10-02T08:45:12.303 に答える