Skip to content
Shipping 7 min read · September 2026

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:

ApproachUpsideWhere it goes wrong
Flat rate per orderSimpleOne small box pays the same as a full pallet
Weight-based tableEasy to set upWeight says nothing about how much space the goods take
Per itemPredictableTen items that share one pallet are charged as ten
Shipping classesGood for a few product typesBreaks down as soon as an order mixes products
By pallets actually neededCharges what the carrier charges youNeeds 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.

OrderWeight tablePallets neededCarrier priceResult
6 boxes · 150 kg€951 half pallet€55Overcharges by €40
13 boxes · 325 kg€1403 half pallets€165Undercharges 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:

  1. Taking every product's dimensions and weight, times the quantity.
  2. 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.
  3. Starting a new pallet when the height or weight limit is reached.
  4. Doing that for each pallet type you use and picking the cheapest.
  5. 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.

First 14 days free · Cancel any time