2012-09-12 85 views
1

我試圖添加多個簡單的產品同時使用下面的查詢字符串,但它只添加最後一個產品到購物車,而不是兩個:Magento - 如何以編程方式將多個項目添加到購物車?

有人可以讓我知道我是什麼做錯了嗎?

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 

任何幫助,非常感謝!

回答

5

請將產品加入購物車隨着查詢字符串

  • 購物車中添加簡單的產品,沒有屬性。
    http://yourserver.com/checkout/cart/add?product=PRODUCT_ID&qty=PRODUCT_QUANTITY
    此處PRODUCT_ID ='產品ID',PRODUCT_QUANTITY ='要購買的產品數量'。
  • 添加產品到購物車與單一custome選項。
    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 =「自定義屬性選項values'.Here添加更多選項`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沒有設置添加相關產品數量到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
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方法。

0

我發現了一個冒失的方式,我發現周圍的related_products查詢字符串字段的數量限制獲得的在其他的答案上面提到的。如果您只將相同產品的相同產品數值中的相同ID多個時間放入相同數量的產品,那麼就會達到相同的效果,就好像每個相關產品都有明確的數量字段一樣。因此,採取上述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_ID_1 3,和PRODUCT_ID_2 2的車PRODUCT_QUANTITY。

所以只要你很高興做了一些工作來多次生成相同的ID,這是一種享受。並且您的magento服務器上不需要更改自定義代碼。

相關問題