Skip to content

Shipping & Tax

Both live under Admin → Shop → Settings, on their own tabs.

Shipping

Flat rate

The simplest setup: one cost for every order, set under Shipping → Flat rate. It applies whenever no zone matches the customer's country.

Free shipping threshold

Shipping → Free shipping threshold makes shipping free once the cart subtotal reaches an amount. Set it to 0 to switch it off. Zones can carry their own threshold, which takes precedence for customers in that zone.

Local pickup

Enable it and Local pickup appears at checkout at no cost, alongside delivery.

Shipping zones

A zone is a group of countries with their own rates. For each zone you set:

FieldMeaning
NameShown to the customer as the shipping method label
CountriesWhich countries the zone covers
Base shipping costCharged when no band matches
Free shipping thresholdFree above this subtotal, for this zone only
Calculation typeFlat rate, quantity based, or weight based

The shipping tab in shop settings

The global flat rate and free-shipping threshold sit above the zones. Adding a zone opens the fields listed here; local pickup is further down the same tab.

Zones are matched on the customer's country, falling back to the parent country when the value includes a state (Bangladesh - Dhaka matches a zone listing Bangladesh).

Quantity-based rates

Choose Quantity Based (Per Item Range) and add bands:

Min QtyMax QtyCost
1360
410100
11(blank)150

Leave Max blank for "and above". A cart matching no band pays the zone's base cost.

Weight-based rates

Choose Weight Based (Per Weight Range) and the same bands are read in your weight unit instead. Weights come from Product Data → Shipping; a variation may carry its own and otherwise inherits the product's. A product with no weight counts as zero rather than blocking the order.

Min WeightMax WeightCost
0150
15120
5(blank)300

WARNING

A band with a missing or non-numeric cost is skipped rather than treated as free, and the zone's base cost applies instead. Fill every row you add.

Free shipping coupons

A free_shipping coupon zeroes every method rather than discounting the goods, so the saving lands on the shipping line. See Coupons.

Tax

Tax is off until Tax → Enable tax calculations and display is ticked. Nothing below has any effect while it is off — the rest of the tab stays hidden until then.

The tax tab in shop settings

With tax enabled, the tab reveals which address decides the rate, how prices are entered and displayed, and the Custom Tax Rates table.

Rates

Tax → Custom Tax Rates is a table:

FieldMeaning
CountryThe country the rate applies to, or * for everywhere
RatePercentage, e.g. 15
NameThe label on the cart line, e.g. VAT
Apply to shippingWhether shipping is taxed as well

Matching runs exact country → parent country → * wildcard, so a specific rate always beats the fallback.

Which country is charged

Tax → Calculation basis decides whose country is used:

BasisMeaning
shippingWhere the order is being delivered
billingThe customer's billing country
baseYour own shop country, regardless of the customer

Prices with or without tax

Two settings work together, and mixing them is what makes tax visible in the catalogue:

SettingMeaning
Price entryWhether the prices you type already contain tax
Catalogue displayWhether shoppers should see prices with tax

When the two differ, prices are converted on the way out — enter 1,000 without tax, display with tax, and a 15% rate shows 1,150. When they match, nothing is converted.

TIP

Per-product override: Product Data → General → Tax status can be set to None so a particular product is never taxed.

On the cart

Tax is calculated on the taxable items only, after coupons and promotions have been taken off in proportion, and shipping is added to the base when the rate says to tax it.

Released under the MIT License.