通过1.7中的查询字符串添加可配置的产品到购物车
-
16-10-2019 - |
题
注意:这是Stackoverflow的X-post,我将其放在那里,然后再记住这种子交换存在,因此对双重命中率表示歉意。
我的问题是围绕可配置产品的添加到卡方法,以及是否可以通过URL / Querystring配置产品。
Magento Wiki具有通过查询字符串的Magento <1.3将产品添加到购物车中的资源 这里
这是使用此示例引用一种方法:
http://www.your_domain.com/checkout/cart/add?product=68&qty=1&super_attribute[528]=55&super_attribute[525]=56
它还提到这是有效的1.3版。
我一直在1.7中使用此操作,并注意到1.7的主要区别是加密的钥匙 ->getAddUrl()
表单Action Attribtue的方法,因此现在的URL看起来更像
http://www.your_domain.com.au/checkout/cart/add/uenc/aHR0cDovL3d3dy5jdWx0dXJla2luZ3MuY29tLmF1L2FjY2Vzc29yaWVzL3NvbC1yZXB1YmxpYy90cmFja3Mtb24tZWFyLWJsYWNrLTM1OTg5Lmh0bWw_X19fU0lEPVU,/product/35900/
产品ID为35900。
如果我在浏览器中使用此URL,它将引导我进入产品页面,并说出一条消息,请指定产品的选项。
我一直在尝试将所需的属性选项值传递在URL中,以将产品添加到购物车中,但没有成功。 (为了节省空间,我将URL省略到并包括加密密钥)。
/product/35900/super_attribute/49265/4834
/product/35900/super_attribute/49265=4834
/product/35900/49265=4834
/product/35900/49265/4834
我的问题是:是否可以通过URL添加可配置的产品到Magento中的购物车,如果是,传递Super_Attribute ID和属性选项值的格式是什么?
解决方案
这对我的CE 1.7.0.2(带有示例数据)很适合我:
/checkout/cart/add/product/126?super_attribute[525]=100&super_attribute[272]=22
注意(这让我有些困惑):
呼叫之间有区别:
/checkout/cart/add/product/126?super_attribute[525]=100&super_attribute[272]=22
和
/checkout/cart/add/product/126?super_attribute[272]=22&super_attribute[525]=100
我的意思是super_attribute参数的顺序很重要。在调用上方的2个URL后,我最终获得了同一产品的2个卡车行,并具有相同的选项。一个看起来像这样:
尺寸 小的 颜色 绿色的
另一个是
颜色 绿色的 尺寸 小的
我想如果您通过URL将产品添加到购物车中,则应保留属性的顺序,如产品视图页面所示,以保持一致性。
其他提示
在最新的Magento版本中,我们还需要添加表单密钥。
https://{site-name}/checkout/cart/add/product/{product_id}/form_key/{form_key}?super_attribute[{attribute_id}]={attribute_value}&super_attribute[{attribute_id}]={attribute_value}