首页 文章

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

提问于
浏览
0

我正在尝试为我们的公司创建一个在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 回答

  • 2

    有一种方法可以修改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;
        //}
    

    现在可以使用静态链接 .

  • -3

    您需要包含 formkey 块,然后使用JavaScript从生成的 <input /> 标记中提取值,并将其添加到链接URL,AJAX等 .

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

    这将在1.13中工作:

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

相关问题