注意:这是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}
许可以下: CC-BY-SA归因
scroll top