我在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);?>