【问题标题】:Direct Buy Now button for a product in home page: Magento主页中产品的直接购买按钮:Magento
【发布时间】:2019-07-02 13:03:03
【问题描述】:

我在 Magento 商店有一个产品需要一个“立即购买”按钮才能将产品直接带入结帐页面而不将其添加到购物车。

我试过了,但没有任何效果:

<button onclick="location.href ='{{config path="web/unsecure/base_url"}}/checkout/cart/add?product=1&qty=1′">Buy It Now</button>

【问题讨论】:

  • 从 Magento 1.8 开始,您还需要传递 form_key 变量。最好的方法是使用您的逻辑构建一个模块,并设置指向该模块的链接。
  • 我正在使用“Magento ver. 1.9.2.2”

标签: php magento


【解决方案1】:

这是我找到的解决方案:

在产品视图页面上添加“立即购买”按钮

将立即购买按钮添加到 addtoCart.phtml

 <button type="button" title="Buy Now" class="button btn-buy" onclick="productBuyNowForm.submit(this)"><?php echo $this->__('Buy Now'); ?> </button>

在按钮 onlick 事件中,使用自定义 VarienForm,productBuyNowForm.submit(this),它将提交此表单并重定向到结帐单页。

在 view.phtml 中添加以下 JavaScript 代码

var productBuyNowForm = new VarienForm('product_addtocart_form');
productBuyNowForm.submit = function (button, url) {

if(!document.getElementsByName("return_url")){
   var element = document.getElementById("product_addtocart_form");
   var child=document.getElementById("return_url");
   element.removeChild(child);
 } 

if (this.validator.validate()) {
    var form = this.form;
    var oldUrl = form.action;
    if (url) {
        form.action = url;
    }

    var inputreturn= document.createElement("input");
    inputreturn.type = "hidden";
    inputreturn.name = "return_url";
    inputreturn.value = "<?php echo Mage::getUrl('checkout/onepage')?>";
          document.getElementById('product_addtocart_form').appendChild(inputreturn);


    // Append a line break 
    var e = null;
    try {
        this.form.submit();
    } catch (e) {
    }
    this.form.action = oldUrl;
    if (e) {
        throw e;
    }

    if (button && button != 'undefined') {
        button.disabled = true;
    }
  }
}.bind(productBuyNowForm);

【讨论】:

  • 我试过了,它奏效了。当点击立即购买按钮时,商品进入购物篮并被定向到购物车或结帐页面(可以通过&lt;?php echo Mage::getUrl('checkout/cart')?&gt; 设置),但添加到购物车按钮也被定向到购物车。我希望“添加到购物车”按钮保持其功能(将产品重定向到购物车后的后端设置我选择了否),其中项目已添加到购物车但仍在同一页面上
【解决方案2】:

从 Magento 1.8 开始,无法再通过外部推荐人将产品添加到购物车。所有添加到购物车的操作都取决于不同会话的用户表单键。

如果可以编辑模板文件,可以使用php:

<?php echo $this->helper('checkout/cart')->getAddUrl($_product);?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 2014-03-13
    • 2016-06-20
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多