解决magento 订单0元的情况

magento 有着强大的促销规则,再加上自己开发或者安装 积分插件等功能,总会出现用户结账后订单为 0元的情况,这个时候

第三方支付平台往往是不支持这个价格的。

(测试了 支付宝 和快钱 是这样的)

这个时候怎么解决?对于magento 当然有现成解决办法

(可是我是自己开发完才注意到的。。。。所以我的解决方法就放后面吧,可以当作进一步理解magento用的 ,其实对于有些用户就选择支付宝等支付方式的话,还是需要做我这种类似的开发的)

1.

在magento 后台 System -> Configuration -> Payment Methods  中有个支付方式是

Zero Subtotal Checkout (中文翻译的应该是 “无小计结账”)

启用这个支付方式,当订单为 0元的时候就会显示这个 支付方式 。

我这里设置 New Order Status 为 Processing 就表明用户订单为 0元的时候选择这个支付方式。

这会直接将订单状态置为 processing。 如果你选择了 new oreder status 是 processing 会同时出现选项

Automatically Invoice All Items 选择no 表明 不同时创建发票 。

2.

我的解决办法是在确认订单,跳转链接的时候判断 订单金额 是0元的直接 跳转到success 页面并且 做订单状态 创建发票和发邮件等操作。

例如支付宝

在支付宝插件的model中有 方法getOrderPlaceRedirectUrl() 这个决定了确认订单后跳转的链接。

 public function getOrderPlaceRedirectUrl()
    {
        return Mage::getUrl('alipay/payment/redirect');
    }

我是在 controller 的 redirectAction() 中做相应操作的

在合适位置加入如下代码:

$order = $this->getOrder();

        $orderGrandTotal = (int)$order->getGrandTotal();
        if($orderGrandTotal == 0){

            if($order->getStatus() == "pending"){
                $order->addStatusToHistory(
                    'processing',
                    Mage::helper('customer')->__('总计为 0 元的订单直接置为processing'));
            }
            try{
                $order->sendNewOrderEmail();
                if($this->saveInvoice($order)){
                    $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true);
                }
                $order->save();
            } catch(Exception $e){

            }
            $this->_redirectUrl(Mage::getUrl('checkout/onepage/success'));
            return;
        }

你可以将 第三方支付插件的redirectAction 中都加入这个判断来解决问题。

这时当用户选择 支付宝支付 但是 订单又是0元的时候 并不会跳转到支付宝也就不会提示价格参数 不合法。

当然 你也可以采用 订单价格为0元的时候

只显示 无小计结账的支付方式。

根据订单价格屏蔽其它支付方式 可以在

template/checkout/onepage/payment/methods.phtml 中修改。(这里的修改,用户是可以修改 post数据来更改的)

时间: 2025-01-08 17:27:29

解决magento 订单0元的情况的相关文章

Magento订单打印(pdf格式)

Magento自身包含有:打印发票单,打印装箱单,打印退款单.这些都是基于西方国家的习惯来布置的.公司有个需求就是打印订单的四联单,PDF格式的,要一周内完成.刚接到这个任务时,觉得头大,因为对于PHP如何生成PDF文件,以及Magento的打印系统,都还是一无所知.另外这次是中文打印,这和Magento内置的英文订单打印有区别. 接下来就是分析代码.对于第一个问题:PHP如何生成PDF文件,方法就是利用Zend_Pdf库来实现:对于Zend_Pdf中文乱码的问题,也通过可爱的Google找到了

新年福利—1分钱抢100M上网流量,0元参加iPhone5S土豪金抽奖

1.关注方倍工作室微信公众账号,回复“新年快乐”,弹出图文消息,点击进入“百度钱包”页面 2.向上翻页,翻到移动电信100M或者联通50M的抢流量页面,点击“立即享有”按钮 3.进入商品详细页面中,再点“立即享有”按钮 4.在登录百度账号页面中,注册一个新的账号然后登录,不能使用旧的百度账号 5.输入并保存要兑换流量的手机号,然后点击“确认订单”按钮 6.由于需要扣除1分钱,因此要求绑定一个银行卡号,输入后点击“确定”按钮 7.再填写该卡的姓名.身份证号.银行预留的手机号,以便做身份验证,然后点

逻辑漏洞之0元购物是如何实现的

可以看到这里传输了一个参数为 1这个1就代表一个.一件商品.我们将其修改为   -1 可以看到金额为负数,就是这么个原理.简单粗暴. 为什么说0元支付?如果我们将1改为 0,那么就是0件商品,也是0元钱,但是我们就有一个问题.我们该怎么去支付这个订单?

从价值的角度,讲述0元中标故事

最近看到一个“新鲜”的故事——2016年3月江苏省东台市“经信委”进行了“工业云”的软件项目招标,规则是“最低价中标”.有3家南京公司,1家上海公司竞争.开标的结果,是3家南京公司集中“纠结”于150万左右,而上海公司的报价是0元. 招标方.评标委员会.以及4家投标方,随即展开了关于“中标规则”的大讨论.最终的结果——O元报价的中标. 据说评标专家的观点就是——政府采购的目的——节省财政资金. 进行需求分析后,我们可以得知政府采购的目的到底是什么?——不是节省资金——也不是所谓的“工业云”——而

“千人0元洁牙”惠动全城,以庆长治爱牙日4.21成立!!!

祝:"长治4.21爱牙日"正式成立长兴×××品牌战略升级全新引进TCS"五星级服务"体系服务上党人民特举办2018首届"千人0元洁牙"健康保健~惠动全城为什么要洗牙?口腔护理在欧美国家已广受重视,在中国却刚刚起步,尽早关注口腔护理,对于身体健康大有益处.洁牙作为口腔护理的重要一环,有三大好处不容忽视:1.保持口腔健康有规律地定期洁牙,既能去除附着在牙齿上的牙垢.菌斑等,保持口腔清洁.口气清新,又可使牙齿表面更加干净光滑.洁白靓丽,让每个人都可以从

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)例如Query: select cast(round(2 / 3, 4)*100 as string)+---------------------------------------+| cast(round(2 / 3, 4) * 100 as string) |+---------------------------------------+| 66.670000000000002 |+-------

解决安装VC6.0后出现MSDEV.EXE错误解决方法

问题:安装VC6.0后,在打开项目或添加文件时,出现如下错误: 可能导致原因:由于Ms安装软件的兼容性问题,导致VC6.0安装不完全, 解决方法:--网上打sp6补丁的方法貌似不可用,所以可以采用另一种方法 1.在下面的网站下载FileTool.exe http://support.microsoft.com/kb/241396/en-us      2.FileTool.exe是个自解压文件,执行它,解压到某个目录下 3.解压后的文件是一个VC工程,在VC6中编译它 4. 在dsw文件上右键“

cf活动道具0元购

刘二婶看见村长的那副笑脸,听村长说话的语气,不由得心里一格登,村长家里也只有三口人,买了那么多盐,还说“省得没了”.刘二婶心里暗想,盐要紧缺了, 盐要涨价了.村长咋不言一声呢?啊,准是上边叫保密咧!刘二婶发慌了,饭也没心吃了,回到家里,淘宝刷枪软件掂着个竹篮子,匆匆就向村上百货店里跑去. 盐7角钱一袋儿.一斤重的包装,刘二婶买了20袋儿.一路上,不少人问她,买恁多盐做啥?刘二婶也是嘿嘿一笑,重复着村长的话说:“留着吃呗,省得没了.” 啊!盐要紧缺了,盐要涨价了!刘二婶的娘家侄,可是县上的官呀!保

“0”元上云的正确开启姿势 Get

日前,易云"注册4 重礼"优惠促销活动火热开启,新老用户均可享多重优惠.其中最受瞩目的活动就是"第一重礼"--"0"元上云活动,让您不花一分钱就可以体验易云公有云产品及服务. 但是有小伙伴反映不知如何实现"0"元上云,So,今天小编就手把手教您如何不花一分钱,体验易云高品质公有云平台. 首先要在活动期间(5月22日-6月30日)注册易云账号,通过审核注册成功后,会收到系统赠送的300 元充值金额. 想用这免费得来的300元体验