Account settings first, feed overrides only where needed
Shipping is configured in your Merchant Center account, per country, and that configuration applies to every product unless a product says otherwise. Set it up there first and use feed-level overrides sparingly.
The reason to prefer account settings is maintenance. One place to change, one place to check, and no risk of thousands of product rows drifting out of date. A store that puts shipping costs into every product row has created a data set that has to be updated whenever a carrier price changes.
Use the feed override where a product genuinely ships differently. Oversized items, items shipped directly from a supplier, hazardous goods with a surcharge, or products that are free to ship when nothing else is. For those, the shipping attribute in the feed replaces the account rule for that item.
A middle route that saves a lot of work is the shipping label attribute. It lets you tag groups of products in the feed, then build account-level rules that apply to a tag rather than to individual items. Heavy, bulky, free shipping, supplier dispatched: a handful of labels usually covers a whole catalogue and keeps the rates in one place.
Pick the model that matches how you actually charge
Choose the configuration that reproduces what a shopper will pay, because the whole purpose of the setting is accuracy. There are a few models and they suit different stores.
A flat rate per country is the simplest and it fits stores that charge one price regardless of basket. It is also the easiest to keep accurate.
A rate table works where cost varies with something measurable: order value, weight, item count, or destination region. This is the model most stores need, because it reflects how carriers actually charge and how most stores actually price.
Carrier-calculated rates estimate the cost from a carrier's own pricing, which suits stores that pass real carrier costs through to the customer.
Whichever you choose, build it from your actual checkout rules rather than from what you think they are. Go to your store's shipping configuration, write down what a customer is charged for a small order, a large order, and an order to a remote area, then reproduce those outcomes. The two systems should produce the same number for the same basket.
Avoid understating shipping to look cheaper. It produces a worse experience at checkout and the mismatch causes problems.
Free shipping thresholds and how to express them
A free shipping threshold is expressed as a rate table based on order value: a cost below the line and zero above it. This is one of the most common configurations and one of the most commonly wrong.
The detail that trips stores up is what the threshold is measured against. If your store applies free shipping on the order subtotal before tax, and your configuration measures it after tax, a band of orders will be quoted incorrectly. Check which basis your store uses and match it.
Regional variation matters too. Many stores offer free shipping to one region and charge for remote areas or other countries, and that needs separate rate tables per region rather than one national rule.
Where the threshold is close to your typical order value, get this right, because it affects a lot of orders. And be careful about promotional free shipping periods. A temporary offer needs to be reflected while it runs and removed afterwards, and stores frequently do the first without the second.
One broader point. Where the threshold sits is a commercial decision worth making from your own order data rather than copying, because it directly affects both average order value and margin on small orders.
Delivery times are part of the offer, not a detail
Set handling time and transit time as well as cost, because shoppers compare on when it arrives at least as much as on what it costs.
Handling time is how long between an order being placed and it leaving you. Be honest about this, including the days you do not dispatch, and set the cut-off time for same-day handling to reflect what actually happens rather than what you would like to happen.
Transit time is how long the carrier takes, and it can vary by destination region. Where your carrier is slower to remote areas, express that rather than quoting a single national figure.
Both together produce the delivery estimate a shopper sees, and an estimate that turns out to be wrong is one of the most reliable ways to generate a support ticket and a poor review.
Also configure the days you dispatch. A store that only ships on weekdays and has not said so will show estimates that assume weekend dispatch.
Then review the settings seasonally. Handling times lengthen during a peak, carriers slow down, and a store advertising its normal delivery estimate in the busiest week of the year is setting up disappointment across its whole customer base.
Keep it accurate, because shipping is checked
Shipping settings are not a form to complete once. They are part of the offer being shown to shoppers, and inaccuracy causes problems that look like other problems.
The checks to build into a routine. Compare the shipping quoted for a sample basket against what your checkout charges for the same basket, per country. Do it for a small order, an order just under a free shipping threshold, and one just over.
Check that every country you submit products for has shipping configured. Products for a country with no shipping setup are commonly held back, and this shows up as products that will not appear rather than as a shipping error.
Check after any carrier price change, any change to your store's shipping rules, and at the start of a peak season.
And keep your returns policy configured and published alongside it. Returns information is checked as part of the account review in many markets, and a missing or unclear policy causes account-level issues that affect everything rather than one product.
When something is wrong here, the symptom is often silence: products that never appear, with no obvious error attached to them.
Worked example, not a result
A shipping configuration for one store
- Countries configured
- 2
- Model
- Rate table by order value
- Under $75
- $6.95
- $75 and over
- Free
- Remote regions
- Separate table, $12.95
- Handling time
- 1 business day, cut-off 2pm
- Transit time
- 2 to 5 business days
- Oversized items
- Feed override, $39.00
Worked example, not a result