Page 1 of 1

Free checkout not working

Posted: Mon Apr 16, 2012 4:41 am
by glenmayo
I have Free Checkout enabled along with paypal and auth.net but it does not show up in checkout. Paypal and Auth shows up fine. I am using oc 1.5.2 Any suggestions?

Re: Free checkout not working

Posted: Mon Apr 16, 2012 10:25 pm
by Bisshy
I agree, I use opencart for B2B and have customers who want to pay on account. Lets hope someone has the answer...

Re: Free checkout not working

Posted: Fri Apr 20, 2012 3:13 am
by glenmayo
Never did figure out how to make it work but I renamed the COD module since I don't use it to Account and it shows up fine.

Re: Free checkout not working

Posted: Sun Oct 21, 2012 3:21 am
by daik01
Free checkout only works if the amount of the order is 0 or lower.

If you want to change this you can change catalog\model\payment\free_checkout.php

Change the line : if ($total <= 0) { in
if ($total > 0) {

then it works

Re: Free checkout not working

Posted: Thu Feb 07, 2013 1:26 am
by ocatfni
The problem on my side came from the fact that the order total was calculating at $0.000003 due to a coupon code.

The fix for this would be to compare $total to see if it is less than one penny.

Code: Select all

if($total < 0.01)

Re: Free checkout not working

Posted: Thu Jun 06, 2013 1:50 am
by ampwebdesign
I also found I needed to add this code to get the confirm order button to show up with a value of less than $0.01 and to still show on $0.00 if a voucher or coupon was used to bring the total to $0.00.
Version 1.5.1.3

to /public_html/catalog/model/total/total.php

Code: Select all

	 if ($total < 0.01) {
		$total = $total + 0.0001;
		}
and this code to /public_html/catalog/model/payment/authorizenet_sim.php

Code: Select all

if ($total >= 0.01) {	
		if ($this->config->get('authorizenet_sim_total') > $total) {
			$status = false;
		} elseif (!$this->config->get('authorizenet_sim_geo_zone_id')) {
			$status = true;
		} elseif ($query->num_rows) {
			$status = true;
		} else {
			$status = false;
		}	
	}  else {
		$status = false;
	}
and to keep this from showing at $0.01 in /public_html/catalog/model/payment/free_checkout.php

Code: Select all

	if ($total = 0) {
			$status = true;
		} else {
			
			if ($total < 0.01) {
				$status = true;
			} else {
				$status = false;
			}
		}