2016-04-30 65 views
2

我們有一個Magento商店(v1.9.2),我希望能夠通過帶有查詢字符串中的選項的url添加捆綁產品。通過URL查詢字符串添加捆綁產品

它幾乎可以工作......但問題是每個bundle選項都有幾個需要選擇的項目,但查詢字符串只會選擇其中的一個。的上前端的選項

實施例的屏幕截圖: URL的https://www.dropbox.com/s/80s1pjl7nfmum8t/Screen%20Shot%202016-04-30%20at%2010.20.02.png?dl=0

實施例:

/結帳/購物車/添加/產品/ 329 /數量/ 1/bundle_option [174] = 1531 & bundle_option [174] = 1532 & form_key = rGK59KHglVmkjdRg

這應該選擇在束選項174的兩個項目,但它僅選擇一個。

有人可以請幫忙,我不知道如果我錯過了一些關於URL結構,如果代碼需要修改!

回答

1

TL; DR

你缺少一些[]

所以,你的請求的URL應該是:
http://www.example.org/checkout/cart/add/product/329/qty/1/?bundle_option[174][]=1531&bundle_option[174][]=1532&form_key=rGK59KHglVmkjdRg


這是一個基本的使用數組獲取參數。

當你說bundle_option[174]=1531&bundle_option[174]=1532你實際上是在說,參數bundle_option的關鍵1741531那麼你重寫它馬上說參數bundle_option1532的關鍵174

你可以嘗試在任何基礎的PHP腳本:
比方說,我們稱之爲some.php?bundle_option[174]=1531&bundle_option[174]=1532包含此代碼

<?php var_dump($_GET); 

它會響應:

some.php:1: 
array (size=1) 
    'bundle_option' => 
    array (size=1) 
     174 => string '1532' (length=4) 

當你需要什麼,以及Magento的希望你有複選框選項,你可以選擇多項選擇,是一個數組數組。

所以與上面完全相同的文件:
如果我們調用some.php?bundle_option[174][]=1531&bundle_option[174][]=1532,會給你數組的數組:

some.php:1: 
array (size=1) 
    'bundle_option' => 
    array (size=1) 
     174 => 
     array (size=2) 
      0 => string '1531' (length=4) 
      1 => string '1532' (length=4) 

如果你確實有一個Magento的控制器來進行測試,你也可以在那裏使用動作並使用查詢查詢參數的結果

Zend_Debug::dump($this->getRequest()->getParams());