Magento getAddToCartUrl()在所有模板中的工作方式都不一样

时间:2014-08-13 17:27:41

标签: php magento

我在<?php echo $this->getAddToCartUrl($_product) ?>/template/catalog/product/list.phtml中使用/template/catalog/product/widget/sale/sale_default_list.phtml来生成添加到购物车按钮。

不知何故,它们会产生不同的结果,使sale_default_list.phtml中的按钮无效。

sale_default_list.phtml中,网址如下: checkout/cart/add/uenc/aHR0cDovL25ldy5qdGVjaGRpZ2l0YWwuY29tLw,,/product/54/form_key/84lfaneD1yV07mj4/

list.phtml时: /checkout/cart/add/uenc/aHR0cDovL25ldy5qdGVjaGRpZ2l0YWwuY29tL2FwcGxlLWFjY2Vzc29yaWVzLmh0bWw,/product/54/form_key/84lfaneD1yV07mj4/

您可以在/uenc/真正不同之后看到令牌。我不确定发生了什么。

UPDATE * ----------- *

  • 抱歉,我没有列出相同的产品,经过编辑。
  • 路径中的错字,实际上是product/widget

1 个答案:

答案 0 :(得分:0)

首先,您要比较两种不同产品的网址。您应该为两者选择相同的产品(标识号为17和44)。这样可以更容易地发现URL之间的差异。

$这非常重要 - 虽然功能名称相同,但它们显然是不同的功能。

可能违反添加到购物车的一件事是不同的&#34; form_key&#34;值(Magento在v1.8中添加以最小化XSS攻击)。据我了解,这应该是会话中的相同密钥,Magento可能拒绝它,因为它不匹配。

/ template / catalog / productwidget / *不是默认功能。这可能是通过扩展添加的,也可能是您的自定义开发。检查并查看Block类(使用块名称启用模板路径提示)是什么,并查看是否可以找到该功能。然后比较函数,看看有什么不同。