Can I offer free shipping for orders over a certain amount?

Category: 
User
Topic: 
Features

Sure! Ubercart has a very flexible shipping quotes system that allows you to create all sorts of shipping options for your customers.

Offering free shipping for orders over a given dollar amount is a two step process. The first step is to set up the shipping method (or methods) you want to use for orders less than or equal to your cutoff amount. The second is to set up a Flat Rate shipping method to charge $0 for orders over your cutoff.

At admin/store/settings/quotes/methods you can enable the shipping method(s) you want to use. By default, there are no Flat Rate methods shown. Go to admin/store/settings/quotes/methods/flatrate and select "Add a new shipping method" to create a Flat Rate method called something like "Free Shipping for orders over $xxx" - the exact name doesn't matter, just use something meaningful to your customers. Set both the "Base Price" and the "Default product shipping rate" to zero and press "Submit". (If you want to also charge a flat rate for orders under your cutoff, you should now select "Add a new shipping method" again to create a second flat rate with the appropriate dollar amounts.)

Now that your shipping methods are set up, you'll have to configure Workflow-ng display each quote to the user only under certain conditions: Namely, when the order total is above or below your cutoff value.

On the admin/build/workflow-ng page, you will see a list of Active Workflow-ng configurations for each shipping method you've enabled. Click on the name of the shipping method, then click on "Add a condition". You will be presented with a select box of available conditions - select "Check the order total" and press the "Add" button. Fill in the "Order total value" textfield with your cutoff amount and select the appropriate radio button - either "Total is less than or equal to specified value" or "Total is greater than specified value". Pressing the "Submit" button will apply these changes to the quote method. Return to admin/build/workflow-ng and follow these same steps for all your active shipping methods.

When your customer checks out, the shipping options that appear will now depend on the order total. If you did everything right there should only be one option, "Free Shipping", shown if the order total is greater than your cutoff!

loplop's picture
Offline
Joined: 02/16/2009
Juice: 11
Not Working

Hello,

I did it exactly that. But, it sometimes works and sometimes it's no shipping costs calculated at all. In this case, not even "free shipping" is shown on the review-page.

What I found out is: It happens in case I'm not logged in, have enough items in my cart to get free shipping, continue to the review-page("free shipping" is shown, so perfect). Then I go back and drop something from the cart -> review-page: Now, nothing is shown, an no shipping is calculated, when I order.

Sometimes it also happened when I was logged out and had not enough items for free shipping and went directly to the review-page and: not shipping-anything was shown.

This happened also to a customer of mine, so it's a serious bug for me.

My Website is here: http://www.getvinyl.de

Please help.

BTW: Thanks for Ubercart.

loplop's picture
Offline
Joined: 02/16/2009
Juice: 11
Re: Not Working

I couldn't find the problem but disabling the "taxes"-module solved it.

ferrangil's picture
Offline
Joined: 02/27/2009
Juice: 62
How to do it in Ubercart 2.x??

There's no workflow-ng in Ubercart 2 (Drupal 6), so I installed the rules module which is the updated version.
But I can't find where to add a workflow to set free shipping if the total ammount is more than 500€ or if there's one of the products that get free shipping.

Any help will be appreciated!

Ryan's picture
Offline
Joined: 08/07/2007
Juice: 15422
Re: How to do it in Ubercart 2.x??

Check out the first child page of this: What's new in Ubercart 2.x?

ferrangil's picture
Offline
Joined: 02/27/2009
Juice: 62
Conditional Actions module

Great! Using "Conditional Actions" I could do that!
Thanks

georgiebon's picture
Offline
Joined: 07/31/2009
Juice: 12
Could You Explain Further

Could you write a step by step on how you set up conditional actions to offer free shipping.
Thanks

rosswog's picture
Offline
Joined: 09/24/2008
Juice: 66
Re: Could You Explain Further

I just got this to work.

Basically, you need to set up 2 Flat rate shipping types. Each of those shipping types gets a "predicate" on the Conditional Actions page. Set up the predicates so that one has a condition of what qualifies for free shipping (or any other special shipping) and set up the other to have the opposite conditions. Then on the checkout page, the correct shipping type shows up.

doublejosh's picture
Offline
Joined: 09/26/2009
Juice: 55
Yeah but...

How can I inform the user that they qualify for the Free Shipping method before they are in the checkout page?

dman@drupal.org's picture
Offline
Joined: 11/13/2009
Juice: 16
CA doesn't seem to be firing fully for shipping quotes

My situation is similar, but opposite
[when "Getting shipping quote via (flatrate) standard nationwide" ]
- [if "number of items is greater than three"]
- - ["add $2 to the quote" (custom PHP)]

It looked like CA would be perfect, but no actions I add to the [when "Getting shipping quote via (flatrate) standard nationwide" ] is triggering, not even a condition-less "message to user"

I traced the code and started putting in debug logs, but it feels the quote calculation is a stand-alone action that's just not pulling any triggers.

So the intuative way didn't work.

I also tried the work-around from rosswog 10/19/2009
- create both an $8.00 and a $10.00 'flat rate'
- added a condition to the $8 to run if 3 or less
- added a condition to the $10 to run if more than 3

And after some fiddling that works!

Those default CAs provided by flatrate are a little confusing, because they don't contain any action - 'the get quote' uc_flatrate_ca_predicate() at the end of the process ... although they seem to just work anyway. But yes, putting conditions on them does work.
I tried weightquote as well, but tracing that showed the same thing.

Is uc_flatrate just not 100% integrated with the CA way of doing things?
uc_quote_request_quote() ->
_uc_quote_assemble_quotes() ->
... looks like it's calling ca_load_trigger_predicates('get_quote_from_
to find out IF to run, but does not follow up with the THEN do this. It ignores the user input and just does its own thing.
I'm thinking it needs to execute the #actions there.
And that uc_quote_action_get_quote() should be one of the actions - not inlined code.
...
.. yes, I patched that in and it's nicer.

Maybe I'll put an issue into d.o for this.

devdoneright's picture
Offline
Joined: 06/30/2010
Juice: 10
Flat rate and discount alternative module

Hi all.

I'm running flat rate and discount alternative. I've set a site up to apply a free delivery on orders over (or equal to) £75, which works great. However, if someone claims a discount which takes a total from above £75 to below it, the system still gives free delivery.

Any way to stop this happening? Any help would be much appreciated.

Many thanks.

James