首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento Add to Cart and Redirect to Checkout (产品页面:在"Checkout“按钮上,"Add to Cart”重定向至cart)

Magento Add to Cart and Redirect to Checkout (产品页面:在"Checkout“按钮上,"Add to Cart”重定向至cart)
EN

Stack Overflow用户
提问于 2014-07-09 23:52:03
回答 2查看 14.7K关注 0票数 3

我的产品页面上有两个“添加到购物车”按钮。

第一个默认功能是"Add to Cart",它的功能应该是将产品添加到购物车,然后重定向到购物车。

第二个标签是" checkout“,我想让它将产品添加到购物车中,并重定向到结帐而不是购物车。(但仅当单击了Checkout按钮时)。

我已经看过了,似乎可以使用观察者?我不确定如何实现这一点,或者区分哪个按钮被点击,或者将Checkout按钮指向哪个url。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-10 09:04:07

创建cartController.php(app/code/core/checkout/controllers/)的函数addAction到myaddAction()的副本。

添加以下内容以结束view.phtml(app/design/frontend/your package/your template/template/catalog/product/view.phtml)

代码语言:javascript
复制
    <script type="text/javascript">
    //<![CDATA[
 productAddToCartForm.submit = function(button, url){

 replaceURL = url.replace("add/","myadd/");
            if(this.validator) {
                var nv = Validation.methods;
                delete Validation.methods['required-entry'];
                delete Validation.methods['validate-one-required'];
                delete Validation.methods['validate-one-required-by-name'];
                // Remove custom datetime validators
                for (var methodName in Validation.methods) {
                    if (methodName.match(/^validate-datetime-.*/i)) {
                        delete Validation.methods[methodName];
                    }
                }

                if (this.validator.validate()) {
                    if (url) {
                        this.form.action = replaceURL;
                    }
                    this.form.submit();
                }
                Object.extend(Validation.methods, nv);
            }
        }.bind(productAddToCartForm);
        //]]>
    </script>

将结帐按钮添加到addtocart.phhtml (app/design/frontend/your package/your template/template/catalog/product/view)

代码语言:javascript
复制
 <button type="button" title="<?php echo $buttonTitle ?>" class="button btn-cart" onclick="productAddToCartForm.submitmy(this)"><span><span><?php echo "Checkout"; ?></span></span></button>

正如我告诉您的那样,将addAction复制到mycartAction Change

代码语言:javascript
复制
$this->_goBack();

代码语言:javascript
复制
$this->_redirect('checkout/onepage');
        return; 

结束

代码语言:javascript
复制
 if (!$cart->getQuote()->getHasError()){
                    $message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
                    $this->_getSession()->addSuccess($message);
                }

添加

票数 3
EN

Stack Overflow用户

发布于 2014-07-10 17:38:15

我认为你可以使用jQuery来做这件事。

list.phtml中的“结帐”按钮

代码语言:javascript
复制
<button type="button" title="<?php echo $this->__('Check out') ?>" class="button btn-cart" onclick="setcheckoutLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>

并将此脚本添加到相同的list.phtml文件中

代码语言:javascript
复制
<script>
function setcheckoutLocation(location)
{
jQuery.ajax({
                    type:"GET",
                    url:location,
                    success:function(data){
                         window.location.href = "http://your-checkout-page-url";
                    }
                 });

}
</script>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24658322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档