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
- Consignment weight (or volumetric weight)
- Destination address
- 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:
- Next Day
- Priority 2 days
- 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.