在Magento EE 1.13中的CMS页面上添加到购物车按钮

时间:2014-06-06 20:21:15

标签: magento magento-1.13

我正在尝试为Magento Enterprise Edition 1.13上运行的公司创建登录页面。我们在登录页面使用CMS页面,过去我们可以直接在CMS页面上创建自定义的“添加到购物车”按钮。实际上非常简单,我们将创建一个按钮并将按钮发送到此URL端点:

<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

然而,根据Magento自己的说法,这在Magento EE 1.13中不再有效。

我联系了我们的Magento支持并向我解释说语法已经改变,现在要求您将安全哈希放在URL中。这对我来说似乎是一个安全问题,所以我质疑它。然后我回应说,添加了安全漏洞,以防止开发人员不再使用它而不损害他们的网站。基本上他们不鼓励使用这个。他们说:

  

我的开发人员指出,通过直接URL将产品添加到购物车的功能并不是Magento中的预期功能,因此添加form_key值意味着阻止其进一步使用升级到1.13。


所以我的问题是,如果somoene想要在CMS页面上创建“添加到购物车”按钮,以便添加产品而无需将某人发送到产品页面(他们将不再在那里)在我们优化的目标网页上),我将如何进行此操作?

Magento 1.13中是否有办法将产品添加到购物车中,并带有可以放置在CMS页面内的自定义HTML中的自定义按钮?可以使用静态块或小部件来完成吗?我们真的依赖这个功能,现在正在质疑Magento EE每年18,000美元的价格,这个功能被剥夺了。请帮忙,谢谢!

3 个答案:

答案 0 :(得分:2)

您希望包含formkey块,然后使用JavaScript从生成的<input />标记中提取值,并将其添加到您的链接网址,AJAX等。

{{block type="core/template" name="formkey" template="core/formkey.phtml"}}

答案 1 :(得分:0)

这将在1.13中起作用:

 <button onclick="location.href ='{{config path="web/unsecure/base_url"}}/checkout/cart/add?product=1&qty=1'">Add To Cart</button>

答案 2 :(得分:-3)

有一种方法可以修改magento代码,以便在没有表单密钥的情况下将产品添加到购物车。

我会发布解决方案,但无论如何我想提醒您,删除表单密钥验证会对您的客户进行CSRF攻击!

你需要编辑app \ code \ core \ Mage \ Checkout \ controllers \ CartController.php

查找下一段代码:

public function addAction()
{
    if (!$this->_validateFormKey()) {
        $this->_goBack();
        return;
    }

评论此功能的前3行:

public function addAction()
{
    //if (!$this->_validateFormKey()) {
    //    $this->_goBack();
    //    return;
    //}

现在可以使用静态链接。