2016-04-30 11 views
2

私たちはMagentoストア(v1.9.2)を持っており、URLを介してバンドル商品をクエリ文字列のオプションとともに追加できるようにしたいと考えています。URLクエリ文字列でバンドル商品を追加する

これはほとんど問題なく動作していますが、問題は各バンドルオプションに選択が必要な項目がいくつかありますが、クエリ文字列ではそのうちの1つだけが選択されることです。フロントエンドのオプションの

例のスクリーンショット: https://www.dropbox.com/s/80s1pjl7nfmum8t/Screen%20Shot%202016-04-30%20at%2010.20.02.png?dl=0

URLの例:?

/チェックアウト/カート/追加/製品/ 329 /数量/ 1/bundle_option [174] = 1531 & bundle_option [174] = 1532 & form_key = rGK59KHglVmkjdRg

これは、バンドルオプション174に2つの項目を選択する必要がありますが、それだけで一つを選択します。

誰かが助けてもらえますか?コードが変更する必要がある場合、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のキー1741532であると言ってすぐにそれを上書きパラメータbundle_optionのキー1741531であることを言っているbundle_option[174]=1531&bundle_option[174]=1532言います。

あなたは、任意の基本的なPHPスクリプトでそれを試すことができます:
は のは、我々はそれがエコーされます。このコード

<?php var_dump($_GET); 

含むsome.php?bundle_option[174]=1531&bundle_option[174]=1532を呼び出しましょう:

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

何が必要か、そしてどのようなMagentoの複数の選択肢を持つことができるチェックボックスのオプションを持つことを期待して、配列の配列です。

ので、上記のようにまったく同じファイルで:

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のコントローラを持っている場合、あなたはまた、次のことができます。私たちはsome.php?bundle_option[174][]=1531&bundle_option[174][]=1532を呼び出す場合
は、それはあなたの配列の配列を与えますアクションを使用して、クエリパラメータの結果を参照してください。

Zend_Debug::dump($this->getRequest()->getParams()); 
関連する問題