主页中产品的直接购买按钮:Magento


Direct Buy Now button for a product in home page: Magento

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

我已经尝试过这个,但没有任何效果:

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

这是我找到的解决方案:

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

将"立即购买"按钮添加到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);

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

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

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