Zen Cart Logo
Forums / Built-in Shipping and Payment Modules / Shipping by zones or states

Shipping by zones or states

Locked

Views: 1,137

Results 1 to 6 of 6
This thread is locked. New replies are disabled.
14 Jun 2010, 3:01 PM
#1
tawnos avatar

tawnos

New Zenner

Join Date:
Apr 2010
Posts:
44
Plugin Contributions:
0

Shipping by zones or states

How can I set the shipping so that for example a product ships at $0.5 per pound to Florida but $1.15 per pound to California? Is this possible or something similar to this?

15 Jun 2010, 4:10 PM
#2
tawnos avatar

tawnos

New Zenner

Join Date:
Apr 2010
Posts:
44
Plugin Contributions:
0

Re: Shipping by zones or states

Is there no way to do this?

15 Jun 2010, 4:15 PM
#3
schoolboy avatar

schoolboy

Totally Zenned

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

Re: Shipping by zones or states

Yes, it is possible to do this.

What shipping module are you currently using to calculate all your shipping?

15 Jun 2010, 4:59 PM
#4
tawnos avatar

tawnos

New Zenner

Join Date:
Apr 2010
Posts:
44
Plugin Contributions:
0

Re: Shipping by zones or states

Standard - perweightunit

15 Jun 2010, 10:36 PM
#5
schoolboy avatar

schoolboy

Totally Zenned

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

Re: Shipping by zones or states

The first thing you need to do is divide your delivery regions up into separate ZONES.

So... Forget about the shipping module you are currently using, and go about configuring your ZONES.

In your case, it looks like PRICE per LB is the defining factor, so your ZONES must be set up according to these variables.

The way I go about setting up shipping is to look FIRSTLY at the rates and configurations charged by my shipping company.

Most shipping companies calculate their rates on a combination of THREE MAIN FACTORS

  1. Consignment weight (or volumetric weight)
  2. Destination address
  3. Speed of delivery (overnight, 3 - 5 days, surface mail, etc...)

So you need to get detailed SCHEDULES from your shipping agent(s) that outline just how they charge their fees.

Once you know how they charge, you can set up your shipping.

DESTINATION is probably the primary factor, and your shipper will probably first indicate how they split up the country (or even the world) into various REGIONS (zones).

This information will help you configure your zones so that the match those of your shipper.

For example, your shipper may split up the USA into several regions - the states that are furthest away from their depot will probably cost more to deliver to. In any event, take their lead and split up your destinations into similar zones.

On a piece of paper, WRITE DOWN their regions, and the States that fall under each region.

Then, you can set about creating your OWN regions (zones).

You do this under: Admin >>> Locations/Taxes >>> Zone Definitions.

Click INSERT button to create a new zone, giving it a name that you can recognise (eg: Eastern Seaboard). Save it.

Then, click the DETAILS button, and (one by one) add the States that are relevant to that Zone. (These probably include Maine, Rhode Island, Massachusetts, New York, .... and so on).

When you have added all the relevant states (and remember... these will be the states listed by your SHIPPER for their similar zone), you save it...

Then you add the NEXT ZONE (insert button again) and repeat the process.

You do this until you have created all necessary zone definitions, and made sure that all US states are accounted for.

If you ship to other parts of the world, then you need to do the same for all countries you deliver to. Again, take the lead from your shipper's schedules.

When you are done, you will have a zones configuration that neatly matches that of your shipper.

The NEXT STAGE involves applying sufficient shipping modules to cater for your shipper's THIRD PARAMETER (see above - Speed of delivery). If you DO NOT have different delivery speeds, then this step is not necessary.

If you DO alllow your customers to choose from a variety of delivery speeds, then you will need to CLONE the shipping module you are using.

I would suggest you STOP using perweight, and look at installing the ZONETABLES module instead. It is far better at handling WEIGHT-BASED shipping that delivers to many ZONES.

http://www.zen-cart.com/index.php?main_page=product_contrib_info&cPath=40_51&products_id=695

Now... as I said... if you want to offer several speed options, you will need CLONES of zonetables module.

So if your shipper offers:

  1. Next Day
  2. Priority 2 days
  3. Standard 3 - 5 days

You will need TWO ADDITIONAL CLONES of zonetables module, giving you the original module and two "copies" of it = 3 in total.

To CLONE a module, see fairestcape's tutorial HERE

Now, you have sufficient MODULES to cater for all shipping options.

Then you configure each module (which includes changing their language-PHP files to describe what service they apply to), and set about inserting the rates for each weight paramater and ZONE to which such rates apply.

It is quite a lengthy process, but your shipping will be accurate, and will be based on what your shipper charges YOU to perform his service.

Many webshops don't configure shipping accurately and either lose customers because shipping is ridiculously high, or lose profits because the amount charged is lower than that charged by the shipper.

29 Jun 2010, 12:16 PM
#6
annnika avatar

annnika

New Zenner

Join Date:
Mar 2010
Location:
Royston, UK
Posts:
14
Plugin Contributions:
0

Re: Shipping by zones or states

Great posting, thanks for that info.

When zones shipping is enabled, but if no zones returned for a customer, no error message is displayed either. E.g. customer's delivery address is in GB zone, and if I am skipping it in my zones table, I want to tell the customer something. Currently only TEXT_ENTER_SHIPPING_INFORMATION variable is displayed, see my comment below:

./includes/templates/dolomite/templates/tpl_checkout_shipping_default.php

<h2 id="checkoutShippingHeadingMethod"><?php echo TABLE_HEADING_SHIPPING_METHOD; ?></h2> <?php if (sizeof($quotes) > 1 && sizeof($quotes[0]) > 1) { ?> <div id="checkoutShippingContentChoose" class="important"><?php echo TEXT_CHOOSE_SHIPPING_METHOD; ?></div> <?php } elseif ($free_shipping == false) { ?> <div id="checkoutShippingContentChoose" class="important"><?php echo TEXT_ENTER_SHIPPING_INFORMATION; ?></div> **<!-- HERE I WOULD LIKE TO CHECK IF ZONES ENABLED AND IF NO ZONES RETURNED, DISPLAY ERROR MESSAGE -->**

Thanks a million!
annika