I am new to Abantecart, but so far have been very happy with the ability to configure many aspects of the system. I am comfortable developing in php/mysql, although do not have much spare time.
I want to configure my cart to provide a range of shipping options based on weight and location. I understand how locations are built from zones (it is a little tricky to build a location that is the whole world minus all states in Australia, for example, but I think I can hack the mysql database in the back end with csv output/input to save lots of time adding all of the zones manually).
Essentially I want to configure shipping options for each order like this:
- Free shipping for all orders in a particular location (which will use Shipping type 0).
- Shipping type 1 (e.g. Registered Post), with different weight based costs for different locations.
- Shipping type 2 (e.g. Express Post), with different weight based costs for different locations (a different set of locations than Shipping type 1).
- Shipping type 3 (e.g. DHL), with different weight based costs for different locations (again - a different set of locations again than types 1 and 2).
- etc (possibly)
Depending on location and weight a customer would be offered whatever range of shipping options are available.
I can imagine setting up the locations for each shipping type. The slightly tricky part is how to do the next bit. From my limited understanding of the way extensions work I could do this in a few ways:
Option A - I could clone the weight based shipping extension for each shipping type (by copying and editing flies on the server), and give each a slightly different name. Then in each extension I would hack the code to ensure they behaved how I wanted. I think I would have to alter some of the language definitions as well.
Option B - I could hack the usps or royal mail extension. Which I think do pretty much the same thing as I want, but are limited to the very specific shipping types and costs offered by each country's postal service.
Option C- I could create a new extension which does all of what I want, and is configurable in the front end. Lots of work...
I think A would is the easy path. Thoughts?