Zen Cart Logo
Forums / Built-in Shipping and Payment Modules / Free shipping in the US only

Free shipping in the US only

Locked

Views: 2,981

Results 1 to 20 of 23
This thread is locked. New replies are disabled.
23 Mar 2007, 2:40 PM
#1
camssee avatar

camssee

New Zenner

Join Date:
Jan 2007
Posts:
39
Plugin Contributions:
0

Free shipping in the US only

I am trying to figure out how to setup free shipping for us customers and just add $5 handleing fee for non us cusomers.

When I try to set this up I can only get it to ship to the us and it says we are not shipping to your area on all others.

I have read up on setting up zones, but don't think im doing something right?

23 Mar 2007, 5:37 PM
#2
schoolboy avatar

schoolboy

Totally Zenned

Join Date:
Jun 2005
Location:
Cumbria, UK
Posts:
10,327
Plugin Contributions:
0

Re: Free shipping in the US only

Zones is the right module to use.

Do you know what this means? - country ISO codes ...

You have to CONFIGURE zones to take care of every country you are shipping to.

In zone ONE, you'll just have US, and you configure pricing to be free.

In zone TWO you must put in the ISO codes (separated by a comma) of ALL the other countries you ship to, and if you are just applying a handling fee, set shipping values to same as US and apply the handling fee.

23 Mar 2007, 5:47 PM
#3
camssee avatar

camssee

New Zenner

Join Date:
Jan 2007
Posts:
39
Plugin Contributions:
0

Re: Free shipping in the US only

Ok so do I enable the free shipping module and choose a Shipping Zone there or no?

Then I would also setup Zone rates?

23 Mar 2007, 5:51 PM
#4
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: Free shipping in the US only

Actually it is a little easier now in v1.3.7 ...

Install Zones ...

Set to weight ...

Define Zone 1 as:
US
1000000:0.00

Define Zone 2 as:
00
100000:5.00

The 00 means all other zones not previously defined ... nifty eh? :cool:

23 Mar 2007, 5:54 PM
#5
camssee avatar

camssee

New Zenner

Join Date:
Jan 2007
Posts:
39
Plugin Contributions:
0

Re: Free shipping in the US only

Ok thats sounds easy enough but the problem is not all items are free shipping in the US. If I set it they way your saying it would allow everythign to be free shipping in the us.

23 Mar 2007, 5:57 PM
#6
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: Free shipping in the US only

What determins if a Product is free shipping or not?

23 Mar 2007, 6:00 PM
#7
camssee avatar

camssee

New Zenner

Join Date:
Jan 2007
Posts:
39
Plugin Contributions:
0

Re: Free shipping in the US only

Well I have 2 products that I want to be free shipping on the product setup page I checked Yes, Always Free Shipping on those 2 items.

I want to charge $5 extra if its outside the US for those and normal shipping items.

23 Mar 2007, 6:04 PM
#8
schoolboy avatar

schoolboy

Totally Zenned

Join Date:
Jun 2005
Location:
Cumbria, UK
Posts:
10,327
Plugin Contributions:
0

Re: Free shipping in the US only

Post deleted

23 Mar 2007, 8:02 PM
#9
gareth_h avatar

gareth_h

New Zenner

Join Date:
May 2006
Posts:
7
Plugin Contributions:
0

Re: Free shipping in the US only

I've just come across this post looking for an answer to the same question. It looks like you ought to be able to do this using the freeshipper module and specifying a zone. The zone there doesn't match the zone in the zones module though (doh!).

The zone in free shipper comes from the geo_zones table. I don't think I can be using this at the moment as mine just has one row ("Florida" - and i'm in the UK!). Then there's a zones_to_geo_zones table that links the geo_zones to the country zones (in the zones table).

So I should be able to create a geo_zone record for "UK", link it to zone "UK" and specify that in freeshipper. Shouldn't I? Or will I break something else.

23 Mar 2007, 8:15 PM
#10
gareth_h avatar

gareth_h

New Zenner

Join Date:
May 2006
Posts:
7
Plugin Contributions:
0

Re: Free shipping in the US only

.. and obviously I would need to find out how to set the geo_zone during checkout.

23 Mar 2007, 10:35 PM
#11
gareth_h avatar

gareth_h

New Zenner

Join Date:
May 2006
Posts:
7
Plugin Contributions:
0

Re: Free shipping in the US only

OK, I think I've got this working although it needed a code hack. Needs full testing but see what anyone thinks. This is to give free shipping in your home country for selected products, but to charge normal rates for overseas.

  1. I'm assuming you have a shipping module (in my case zones) already set up.

  2. Insert a record into the geo_zones table. I set geo_zone name to "UK", description to whatever you want. This was given a geo_zone_id of 2 in my case.

  3. For each state/county record for your home country in the zones table, create a record in zones_to_geo_zones mapping it to the geo_zone you created. Here's a query to do that, where geo_zone_id is 2 and country_id is 222 (replace with your own values):
    "insert into zones_to_geo_zones(zone_country_id,zone_id,geo_zone_id)
    select zone_country_id,
    zones.zone_id,
    2
    from zones
    where zone_country_id = 222"

  4. Enable the Freeshipper shipping module through the admin interface (modules->shipping). Set the Shipping Zone to the geo_zone you created ("UK" in my case)

  5. Set "Always Free Shipping" for your product(s) using admin. Note, if you are using zones you will still need a weight for overseas.

  6. This works for your home country, but not for overseas because although the freeshipper turns itself off your normal shipping method doesn't turn itself on. To do this you need to modify the php file (zones.php in my case). In the function zones() or equivalent add "global $order, $db;" at the top, and then modify the section starting "Disable only ..." as follows:
    // disable only when entire cart is free shipping
    if (zen_get_shipping_enabled($this->code)) {
    $this->enabled = ((MODULE_SHIPPING_ZONES_STATUS == 'True') ? true : false);
    } elseif ((int)MODULE_SHIPPING_FREESHIPPER_ZONE > 0) {
    // OVERRIDE IF FREESHIPPER IS NOT ENABLED FOR THIS ZONE
    $check_flag = false;
    $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FREESHIPPER_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
    while (!$check->EOF) {
    if ($check->fields['zone_id'] < 1) {
    $check_flag = true;
    break;
    } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
    $check_flag = true;
    break;
    }
    $check->MoveNext();
    }

    if ($check_flag == false) {
    $this->enabled = true;
    }
    }

That's it. Easy isn't it :thumbsup:

13 Apr 2007, 4:31 PM
#12
vetofunk avatar

vetofunk

New Zenner

Join Date:
Apr 2007
Posts:
18
Plugin Contributions:
0

Re: Free shipping in the US only

Is there any easy way to add a shipping rate to all countries, except the US? I have free shipping in the US setup and $15.00 to the UK and Canada. I want to have the $15.00 added to all other countries. Any way to just have it set to $15.00 for all other countries, or do i have to manually add in all the country codes?

14 Apr 2007, 3:03 AM
#13
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: Free shipping in the US only

What Shipping Module(s) have you installed?

14 Apr 2007, 2:17 PM
#14
vetofunk avatar

vetofunk

New Zenner

Join Date:
Apr 2007
Posts:
18
Plugin Contributions:
0

Re: Free shipping in the US only

I had a programmer/friend do it for me. I am not sure. Currently I have it set up as free shipping for the US, $15.00 for the UK and Canada. I would like to either remove all other countries or add them to the $15.00 field...but there are like 239 countries...any easy way to add them all?

14 Apr 2007, 3:04 PM
#15
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: Free shipping in the US only

Without knowing what you are using or how it is figuring out the other shipping it makes it difficult to give you a solution for all the other countries ...

If you were using Zone Rates zones you could just use the settings:

Zone 1 Countries <==== United States
US

Zone 1 Shipping Table
100000:0

Zone 1 Handling Fee
0

Zone 2 Countries <==== Canada
CA

Zone 2 Shipping Table
100000:15.00

Zone 2 Handling Fee
0

Zone 3 Countries <=== the world except United States and Canada
00

Zone 3 Shipping Table
1000000:15.50

Zone 3 Handling Fee
0

17 Apr 2007, 8:16 PM
#16
vetofunk avatar

vetofunk

New Zenner

Join Date:
Apr 2007
Posts:
18
Plugin Contributions:
0

Re: Free shipping in the US only

I have it pretty much as you show it. So if I wanted to add the rest of the world (excluding that I already set up zones for the US, UK and CA) I would add 00 to the field?

18 Apr 2007, 5:57 AM
#17
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: Free shipping in the US only

The 00 is used as the only setting in defining a zone so that the rest of the world is thrown into it ...

17 Aug 2007, 5:51 PM
#18
dhcernese avatar

dhcernese

Zen Follower

Join Date:
Mar 2007
Location:
Pepperell, Massachusetts
Posts:
232
Plugin Contributions:
0

Re: Free shipping in the US only

I just tried this, using the "Zone Rates" set up as such:

Zone Based Rates
Enable Zones Method
True

Calculation Method
Item

Tax Class
--none--

Tax Basis
Shipping

Sort Order
500

Skip Countries, use a comma separated list of the two character ISO country codes

Zone 1 Countries
US

Zone 1 Shipping Table
100000:0

Zone 1 Handling Fee
0

Zone 2 Countries
CA

Zone 2 Shipping Table
100000:10

Zone 2 Handling Fee
0

Zone 3 Countries
00

Zone 3 Shipping Table
100000:20

Zone 3 Handling Fee
0

This is what I got when I tried to order something as a test:

Shipping Information:

[IMG]http://www.sacredfiremag.com/shop/includes/templates/template_default/buttons/english/button_change_address.gif[/IMG]
Dan Cernese
P.O. Box 1521
Pepperell, MA 01463
United States
Your order will be shipped to the address at the left or you may change the shipping address by clicking the Change Address button.

Not Available At This Time

Sorry, we are not shipping to your region at this time.
Please contact us for alternate arrangements.

Huh??:huh:

17 Aug 2007, 6:56 PM
#19
dhcernese avatar

dhcernese

Zen Follower

Join Date:
Mar 2007
Location:
Pepperell, Massachusetts
Posts:
232
Plugin Contributions:
0

Re: Free shipping in the US only

I reazlied this was because I had no weight, shipping set to freeshipping for zero weight and freeshipping turned off. After resolving that (no free shipping for zero weight and turn on freeshipper just in case),

I get this:

Shipping Method:

This is currently the only shipping method available to use on this order.
Zone Rates No shipping available to the selected country

How can that be !? You can see it's set above, obviously it's turned on and using the correct shipping module now.

17 Aug 2007, 7:22 PM
#20
dhcernese avatar

dhcernese

Zen Follower

Join Date:
Mar 2007
Location:
Pepperell, Massachusetts
Posts:
232
Plugin Contributions:
0

Re: Free shipping in the US only

Ah! This is the problem:

Calculation Method
Item

..I thought that was the number of items, but apparently that's not what it means. When I change it to price or weight, it works. What does "item" mean?