通过URL查询字符串添加捆绑产品

时间:2016-04-30 09:22:28

标签: php magento magento-1.9

我们有一个Magento商店(v1.9.2),我希望能够通过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中选择两个项目,但它只选择一个。

有人可以帮忙吗,我不知道我是否遗漏了有关网址结构的内容,如果代码需要修改的话!

1 个答案:

答案 0 :(得分:1)

<强> TL; DR

您缺少一些 []

所以你要求的网址应该是:
YellowBox

这是get参数中数组的基本用法。

当您说bundle_option[174]=1531&bundle_option[174]=1532时,您实际上是说参数174的密钥bundle_option1531,那么您可以立即覆盖密钥174参数bundle_option的{​​{1}}是<{1}}。

您可以在任何基本的PHP脚本中尝试:
我们假设我们调用包含此代码的1532

some.php?bundle_option[174]=1531&bundle_option[174]=1532

它会回应:

<?php var_dump($_GET);

当你需要什么,以及Magento期望你拥有的复选框选项中,你可以选择多项选择时,是一个数组数组。

所以使用与上面完全相同的文件:
如果我们调用some.php:1: array (size=1) 'bundle_option' => array (size=1) 174 => string '1532' (length=4) ,那将为您提供一个数组数组:

some.php?bundle_option[174][]=1531&bundle_option[174][]=1532

如果你真的有一个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)
相关问题