Written by Giles Bennett
Having just put the finishing touches to one of the most complicated shipping spreadsheets that we've ever implemented into a client's Magento site, this post outlines a few of the pitfalls - and one of the necessities - to be aware of when putting shipping rules in place.
Premium Matrix Rates
For pretty much any shipping solution, the first place we turn to is the excellent Premium Matrix Rates by WebshopApps (£50.00, but worth every penny).
A step up from their free Matrix Rates shipping method, itself an enhancement of Magento's standard Table Rates shipping method, Premium Matrix Rates allows for the spreadsheet to return multiple lines with (in theory) no limit to the number of options returned for matching destinations.
It also allows deliveries to be calculated on combinations of one or more of weight, value of order and number of items in the order which gives incredible flexibility.
Particularly an issue with UK based couriers, it's important to be able to filter out destinations to which either (a) delivery is more expensive, (b) may take longer than usual, or (c) may not be available at all. For example, most couriers have a relatively standard list of postcodes which they call the Highlands and Islands. Destinations covered by those postcodes will generally attract a surcharge, and frequently won't have a next day service - if a service is possible at all.
As a vendor, you don't want to either (a) ship at a loss, (b) promise a customer a delivery speed which you can't provide or (c) promise to deliver somewhere you can't actually deliver to. By separating out those destinations using postcode filtering, you can either charge more for them to compensate for the higher cost, exclude those destinations from particular delivery methods, or use a different description for the delivery method ('2 day delivery' rather than 'Next day delivery', for example) which manages the customer's expectations accordingly.
Other problem areas
Shipping to the Channel Islands is frequently even more of a problem with Magento - whilst Guernsey and Jersey are available countries in the dropdown list, along with the United Kingdom, in our experience there seems to be a split between customers in those locations, with some choosing the United Kingdom as the destination country, and some choosing the more specific country in the dropdown. The problem is compounded by (a) the fact that the tax treatment is different for the Channel Islands - recipients don't pay UK VAT - and (b) shipping methods other than Royal Mail will almost certainly be considerably more expensive to the Channel Islands.
Since the Channel Islands and Isle of Man have UK postcodes, however, then they too can be filtered out. This does necessitate two lines for each Channel Islands rule, though - one where the customer chooses the United Kingdom as the country but provides a Channel Islands postcode, and one where the customer chooses Guernsey or Jersey as the country.
For no VAT to be charged when the customer chooses the United Kingdom as their country but then provides a Channel Islands postcode requires the correct setup of your VAT rules, which is a different matter altogether.
Magento's standard table rates will match on the first most appropriate shipping rate which it reaches which matches the address put in by the client. If you want to offer a choice of delivery rates, however (say 'next day', 'two day' and 'three day', or 'First class' and 'Second class'), then that's not much use.
Premium Matrix Rates will return as many results from the table as are applicable, in an order which you determine. This helps considerably in showing customers a range of choices ranked however you wish - speed, price, and so on.
This client had no theoretical maximum on the weight of an order that they could ship - each additional 30kg or part thereof would attract a further charge. Whereas other methods would need you to code each band (30 - 60kg, 60 - 90kg, etc.) up to your maximum, the algorithm feature in Premium Matrix Rate allowed us to simply set a base price for the shipment (say £5) and then a charge per 30kg or part thereof, reducing 20 or more lines in the spreadsheet down to 1.
When looking at shipping to Europe, in this instance, the 30 or so countries broke down into four different price bands. As we'd already (thanks to the algorithm feature) been able to simplify these into four single lines in the spreadsheet, we could then tell the system that each of those lines applied to multiple countries, again resulting in a significant reduction in labour against having to duplicate and maintain multiple lines.
The end result...?
A spreadsheet around 33 lines long, simply laid out, covering every shipping option to every country for every delivery that the client offered in one simple document. Easy to understand, and, more importantly, easy enough for the client to see how it worked and how to tweak it so that they could be self-reliant in the future. When imported and processed, it equated to some 1000 lines on a normal table rate spreadsheet.Got shipping headaches
If you've got any headaches in your shipping - areas that are causing you problems, areas where you think you're losing money - or you just want someone to see what can be done to take the hassle out of it, then feel free to get in touch!