【问题标题】:Adding bundle products via URL query string通过 URL 查询字符串添加捆绑产品
【发布时间】:2016-05-03 09:56:06
【问题描述】:

我们有一个 Magento 商店 (v1.9.2),我希望能够通过带有查询字符串选项的 url 添加捆绑产品。

几乎可以工作了...但问题是每个捆绑选项都有几个需要选择的项目,但查询字符串只会选择其中一个。

前端选项的示例截图: https://www.dropbox.com/s/80s1pjl7nfmum8t/Screen%20Shot%202016-04-30%20at%2010.20.02.png?dl=0

网址示例:

/checkout/cart/add/product/329/qty/1/?bundle_option[174]=1531&bundle_option[174]=1532&form_key=rGK59KHglVmkjdRg

这应该选择捆绑选项 174 中的两个项目,但它只选择一个。

有人可以帮忙吗,我不知道我是否遗漏了有关 URL 结构的内容,或者代码是否需要修改!

【问题讨论】:

    标签: php magento magento-1.9


    【解决方案1】:

    TL;DR

    您缺少一些 []

    所以您请求的网址应该是:
    http://www.example.org/checkout/cart/add/product/329/qty/1/?bundle_option[174][]=1531&bundle_option[174][]=1532&form_key=rGK59KHglVmkjdRg


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

    当您说bundle_option[174]=1531&bundle_option[174]=1532 时,您实际上是在说参数bundle_option 的键1741531,然后您立即覆盖它,说参数bundle_option 的键174 是@987654328 @。

    您可以在任何基本的 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&amp;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() );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-15
      • 2023-04-02
      • 2012-02-09
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      相关资源
      最近更新 更多