Shipping is where a lot of small shops quietly lose money. Charge a flat rate and you subsidise every heavy or awkward order. Charge too much and people abandon the basket. Use a courier’s live rates and you are at the mercy of an API and a set of account rates that may not reflect what you actually pay.
All In One Shipping is CubeCart’s answer to the middle ground: rules you define, calculated from the things that actually drive your costs, with no external service involved.
It calculates a shipping price from three possible dimensions, used alone or together:
On top of that it supports shipping zones, so the rates that apply depend on where the customer is, right down to postcode level.
For most shops this covers everything a courier integration would, without the dependency, and it lets you charge what shipping actually costs you rather than what a carrier’s published rate card says.
Zones are defined by country or by postcode, and the postcode matching is more capable than people expect.

Specific zones sit above the catch-all. The four UK zones match on postcode prefix, the international ones on country, and Rest of World picks up everything left over.
Click for full sized image
You list postcodes one per line or comma separated, and you can use:
90210-90214. Numeric postcode countries only.M4G*.9021_.For UK postcodes it is smarter still. Entering one or two letters matches that postcode area exactly, so B matches Birmingham without also catching Bristol or Belfast. Entering letters followed by numbers matches a district, so KA27 catches the Isle of Arran and nothing else.
That solves the single most common UK shipping problem properly. A Scottish Highlands and Islands surcharge zone is just:
IV
HS
KA27, KA28
KW
Anyone who has tried to express that with a flat rate, or explained to a customer in Lerwick why their delivery costs what it does, will appreciate how much easier this is than the alternatives.
Under Advanced Settings you choose which components make up the price, and they add together:

One zone, eight rates: weight bands per service, a next-day option, and a subtotal rule giving free delivery over £75.
Click for full sized image
Most shops want a flat rate plus, perhaps, a per-item element. Starting with everything switched on makes the results hard to reason about, so add components one at a time and check the figures.
Two further settings matter:
Packaging weight is added to the order weight before rates are looked up. If you are on weight bands, this is the difference between quoting for a 990g order and paying for a 1.1kg parcel.
Fuel surcharge applies a percentage on top, which is how couriers actually bill and saves you rebuilding every rate band when it changes.
This catches people out, so decide it deliberately. The setting offers:

The multiple-zone setting, with the debug dropdown directly beneath it.
Click for full sized image
Use all matching zones. The customer is offered rates from every zone they match, excluding Rest of World. Good when zones represent genuinely different services.
Use first matching zone only. The customer gets the first match. This is what you want when you have specific postcode zones plus a catch-all country zone. Put the Highlands zone before the Rest of UK zone and Highlands customers get the surcharge rate rather than being offered both.
If you build postcode zones and a country fallback, “first matching zone only” is almost certainly the setting you want.
Then test with real basket combinations: a light single item, a heavy order, an order just over your free shipping threshold, and an address in each zone.
There is a debugging option with normal and verbose levels, and it respects the IP address restrictions in your store settings, so you can turn it on against a live shop and only you will see the output.
Use it when a rate is not what you expect. It shows which zone matched and how the figure was arrived at, which turns “why is this order £4.50” from guesswork into a two minute check. Turn it off afterwards.
The module will calculate whatever you tell it to, so the value comes from the numbers you put in.
Work out what you actually pay. Take a month of real orders and compare what you charged with what the courier billed, including surcharges and fuel. Most shops find they are losing on heavy orders and overcharging on light ones.
Include your packaging and time. Boxes, tape and labels are a real cost.
Set your free shipping threshold deliberately. Above your average order value, so it pulls orders up rather than giving away margin on orders people were placing anyway.
Show the cost early. Since April 2025 the DMCC Act requires the total price including unavoidable charges to be shown up front, and the CMA has already fined businesses over drip pricing. If delivery genuinely varies by destination you can still charge it separately, but be transparent about it well before the final step.
For most CubeCart shops, yes. Live courier rates are worth it if you ship high volumes on negotiated rates and the integration exists for your carrier. For everyone else, rules you control are more predictable, have nothing to break, and let you charge what shipping costs you rather than what a rate card says.
If you sell physical goods of varying size, it is also worth looking at CubeCart’s box packing feature alongside this, which works out the parcels an order actually needs rather than assuming one.
If you run a CubeCart store hosted with us and want a hand working out sensible rate bands from your real courier invoices, get in touch.