Pallet shipping in WooCommerce: how to charge the right price
If you sell machines, furniture, building materials or anything else that leaves on a
pallet, your shipping price is probably wrong on a lot of orders. Sometimes too high, so
the customer leaves. Sometimes too low, so you pay the difference. The fix is to charge
for what the carrier actually charges you for: the number of pallets the order fills.
What a carrier really charges for
A pallet carrier does not price your order by its total weight. It prices the pallets: how many there are, what type they are and where they go.
Weight and height only matter as limits. Each pallet has a maximum load weight and a
maximum load height, and once the goods pass either one, you need another pallet.
So the real question behind every pallet order is: how many pallets does this cart
fill, and which pallet type is cheapest? Two orders with the same weight can need a
different number of pallets, and an order that looks heavy can still fit on a small one.
The common pallet types in Europe are the euro pallet (120 × 80 cm) and the half pallet
(80 × 60 cm). Your carrier sets the maximum height and weight for each, and they differ
between carriers and services, so use the figures from your own contract.
How most WooCommerce shops price it now
WooCommerce has no pallet logic of its own, so shops improvise. Each approach works until
the order doesn't fit its assumption:
Approach
Upside
Where it goes wrong
Flat rate per order
Simple
One small box pays the same as a full pallet
Weight-based table
Easy to set up
Weight says nothing about how much space the goods take
Per item
Predictable
Ten items that share one pallet are charged as ten
Shipping classes
Good for a few product types
Breaks down as soon as an order mixes products
By pallets actually needed
Charges what the carrier charges you
Needs dimensions and weight on every product
The weight table is the most common, and the example below shows why it fails in both
directions.
A worked example
Take a product that ships in a box of 60 × 40 × 50 cm, 25 kg. Say your
carrier allows a load height of 160 cm on both pallet types, so boxes stack three layers
high. On a euro pallet, four boxes fit per layer: twelve per pallet. On a half pallet, two
fit per layer: six per pallet.
Now compare a typical weight table (€95 for 100–250 kg, €140 for 250–500 kg) with the
carrier's pallet prices (€85 for a euro pallet, €55 for a half pallet). All prices are
illustrative.
Order
Weight table
Pallets needed
Carrier price
Result
6 boxes · 150 kg
€95
1 half pallet
€55
Overcharges by €40
13 boxes · 325 kg
€140
3 half pallets
€165
Undercharges by €25
Six boxes fit on one half pallet, so the real cost is €55, but the weight table asks €95.
A customer comparing shops sees a price €40 too high. Thirteen boxes need two euro pallets
(€170) or three half pallets (€165), so the cheapest real cost is €165, while the table asks
€140. You pay the €25 yourself, on every order like it.
A single box of 25 kg also shows why the parcel option needs its own check: many parcel
services cap a package at somewhere between 20 and 31.5 kg, so this product may not go as a
parcel at all. Lighter products often do, and then two or three parcels can be cheaper than
a pallet.
The accurate way: price the pallets the order needs
To charge correctly, the shop has to work out at checkout how the cart would actually be
loaded. That means:
Taking every product's dimensions and weight, times the quantity.
Stacking the boxes onto a pallet the way a warehouse would: turning them lengthwise or crosswise where that fits better, never tipping them over, and only putting a box on top of others that support it.
Starting a new pallet when the height or weight limit is reached.
Doing that for each pallet type you use and picking the cheapest.
Comparing with parcels, when every item is within your parcel carrier's limits.
The price at checkout is then simple and matches your invoice from the carrier: a base fee plus the number of pallets times the rate for the winning pallet type,
with a different rate per shipping zone.
What to set up first
Whatever tool you use, the result is only as good as the product data. Before you switch
pricing methods, go through this list:
Length, width, height and weight on every product and variation
Your pallet types with the sizes your carrier accepts: footprint, maximum load height, maximum weight
A price per pallet type for each shipping zone
Parcel limits, so small orders can go as parcels when that is cheaper
A shipping class and rate for products that fit no pallet at all
A decision on what happens if the calculation is unavailable: an approximate price, or no pallet option
Missing dimensions are the most common cause of strange prices. A product without them
gets packed as if it were tiny, which quietly lowers the price of every order it is in.
Check a few of your bulkiest products first.
How Teamdock handles it
Teamdock's Pallet Shipping plugin does the calculation
above at checkout. It sends only the cart's product lines (SKU, name, dimensions, weight and
quantity) to our packing service, never customer names, addresses or payment details, and
gets back the number of pallets and the cheapest option. Pallet sizes and parcel limits are
set once for the whole shop; each shipping zone only holds its prices.
If the packing service can't be reached, checkout keeps working: you choose whether the
shop falls back to an approximate pallet price or hides the pallet option for that order.
The same calculation runs when your team creates an order by hand in Teamdock, so a phone
order gets the same shipping price as a web order.
The plugin comes pre-installed on WooCommerce shops hosted by Teamdock. Running WooCommerce
on your own hosting? Get in touch and we'll tell you what it takes.
Stop guessing your pallet prices
See how pallet shipping works in a Teamdock shop, from checkout to the packing task in your
warehouse.