Free Order Payment Method

Contrib type: 
Module
Status: 
Complete and working
Compatibility: 
Ubercart 1.0 RC

This module works in conjunction with the payment checkout pane using the order total preview to present a "Free order" payment method to customers when their order total drops to $0.00 or less. By default, this method will be hidden, and server side verification of an order total will be used to prevent customers from gaming the system.

So, while I have not tested it with either system in the contrib directory, when a discount or coupon gets added to an order that would make the order free, the module will display and select the free payment method. The others will be hidden, and you should be able to continue on through checkout like normal.

Some folks have expressed a desire to remove the payment pane altogether when an order is free, but I don't believe this is the best way to go. If you think it must be done, feel free to tweak uc_free_order.js to hide the entire pane instead of just the other payment methods.

Simply upload and enable this module to be up and running. There is a single permission available so you can test the way the payment method displays on your site. It includes a link that lets you add or remove a $2,000 test discount to the order so you can make sure it works properly. Of course, it will stop you if you try to check out inappropriately. Eye-wink

Post your bug reports in the related thread.

Many thanks to Warner Bros. Records for sponsoring the core improvements that made a module like this necessary.

* This module requires Bzr revision 1023/RC 2 or higher, as it includes a Javascript fix that this module depends on. Remember to refresh your checkout page to clear your browser's cache of the old uc_payment.js!

Related threads: 
AttachmentSize
uc_free_order.tar8.5 KB

Some issues

Hi,

I've been wanting a module similar to this, so thanks for posting this to Ubercart! I have tested the module and have some issues. It seem to be working pretty well except for a few points:

1) If completing the order, the order status stays on Pending and not Completed with the result that the user cannot download any files. Can it go directly to completed instead of pending, as no financial transactions are done?

2) Remove billing address. It's quite annoying and does not make sense for a 0 dollar purchase.

3) Remove or change "thank you for shopping" after completing an $0 dollar purchase. Again, somewhat strange when it's a free product.

Thanks again for an otherwise great module!

Dan

Re: Some issues

Hey Dan, thanks for the feedback. In answer to your queries, point 1 is actually just an issue where you would use a custom workflow configuration. You can set it up on checkout to see if the order total is <= $0 then update the order status. Point 2 could make a good additional option for the module, but it won't make sense for everyone. Perhaps better conditional display of checkout panes can work its way into Uber 2.0. And for point 3, I imagine you can add some conditional text to the checkout completion messages to get them to display properly.

Glad you found the module useful!

Can I easily add this as an option to a product?

I mean, that I would have two options (buttons) for a ordering at each product.

1. Normal Order + quantity
2. Oder 1 free sample

Is it easy to reconfigurate your module for this purpose?

At the moment i´m thinking about using ubercart for my shop, which will be redesigned soon. And this would be something I would really need (or better the guys, that will do the job for me).

Re: Can I easily add this as an option to a product?

You could use an attribute to possibly do this that would deduct the price of the product for the free sample option. The free order module will pick up on the $0 order total and make that payment method available.