我正在尝试为我们的公司创建一个在Magento Enterprise Edition 1.13上运行的登录页面 . 我们在登录页面使用CMS页面,过去我们可以直接在CMS页面上创建自定义的“添加到购物车”按钮 . 实际上非常简单,我们将创建一个按钮并将按钮发送到此URL endpoints :
<button class="button btn-cart" title="Add to Cart" onclick="setLocation('/n/magento/checkout/cart/add/product/644/qty/1')" type="button"><span><span>Add to Cart</span></span></button>
它非常简单,让我们真正吸引访问者使用了很棒的目标网页,并且无需离开这个高度优化的页面即可将产品添加到购物车 .
您可以在此处阅读有关OLD方式的StackOverflow帖子:Placing "Add to cart" button on homepage in Magento
However, this no longer works in Magento EE 1.13 according to Magento themselves.
我联系了我们的Magento支持并向我解释说语法已经改变,现在要求您将安全哈希放在URL中 . 这对我来说似乎是一个安全问题,所以我质疑它 . 然后我回应说,添加了安全漏洞,以防止开发人员不再使用它而不损害他们的网站 . 基本上他们不鼓励使用这个 . 他们说:
我的开发人员指出,通过直接URL将产品添加到购物车的功能不是Magento中的预期功能,因此添加form_key值意味着防止其进一步用于升级到1.13 .
所以我的问题是,如果somoene想要在CMS页面上创建“添加到购物车”按钮,那么为了添加产品而无需将某人发送到产品页面(他们将不再使用我们的优化产品页面)登陆页面),我该怎么做呢?
Magento 1.13中是否有一种方法可以将产品添加到购物车中,并且可以将自定义按钮放置在CMS页面中的自定义HTML中?可以使用静态块或小部件来完成吗?我们真的依赖这个功能,现在正在质疑Magento EE每年18,000美元的价格,这个功能被剥夺了 . 请帮忙,谢谢!
3 回答
有一种方法可以修改magento代码,以允许在没有表单键的情况下将产品添加到购物车 .
我将发布解决方案,但无论如何,我想警告您,删除表单密钥验证将启用CSRF攻击您的客户!
您需要编辑app \ code \ core \ Mage \ Checkout \ controllers \ CartController.php
查找下一段代码:
评论此功能的前3行:
现在可以使用静态链接 .
您需要包含
formkey
块,然后使用JavaScript从生成的<input />
标记中提取值,并将其添加到链接URL,AJAX等 .这将在1.13中工作: