Setting up freight rates at your checkout, and booking the orders that come in.
The integration does two things. Buyers get freight rates at your Shopify checkout, and once the goods are ready you book the shipment from inside your Shopify admin.
Chapters 1 to 6 are the one-time setup. Chapter 7 is what you do for every order after that.
Shopify only calls us for rates if your plan allows third-party carrier-calculated shipping. Confirm this before anything else.
Installing the app is not the same as being set up. Connecting asks you to sign in to your FreightSimple account, so if you don't have one yet, create it on the FreightSimple dashboard first. The app's connect screen links to the sign-up page.
| Permission | What it's for |
|---|---|
read_orders |
See the orders to ship. This includes the buyer's name, email, phone, and shipping address, which the carrier needs for the bill of lading. |
read_products, read_inventory |
Read SKUs, weights, and dimension fields |
read_locations |
Read the addresses your orders ship from, so each of your warehouses can have its own pickup profile |
read_customers |
Read the names of your customer tags, so you pick them from a list. Tag names only, never your customers' records |
write_shipping |
Register FreightSimple as a rate provider at your checkout |
write_merchant_managed_fulfillment_orders, write_fulfillments |
Write the tracking number back onto the order |
This is the step that ties your Shopify store to your FreightSimple account.
admin.shopify.com. Then click
Connect again.
If the connection ever goes stale, usually after uninstalling and reinstalling, the app shows Reconnect FreightSimple with a Reconnect button. Your settings live with your FreightSimple account, not with the app, so reconnecting restores them.
To price freight we need a SKU, a weight, and dimensions for every product you ship this way. SKUs and weights come from Shopify. Dimensions live with us, because Shopify has no dimension field.
The quickest way to do all of it is the Store setup section in the app, which lists exactly what's missing and gives you the button that fixes each one.
12x10x8 or have three of their own, the field names, and
the unit those numbers are in. Every product then comes across with its
dimensions already set.
dimension field, or text like 12.5 cm),
we read that and ignore the picker. Millimetres, centimetres, metres,
inches, feet and yards are all understood.
Order matters on the first step, but it isn't a one-shot. Configure the mapping before the sync and the dimensions arrive with the products. Configure it later and you re-run the sync to fill them in. Anything you already typed by hand stays as it is.
The sizes can live on the variant or on the product; both work. When a product and one of its variants both carry a size, the variant's value wins, so a single-variant product can keep its sizes at the product level and a product with variants of different sizes can override per variant.
| Message | What to do |
|---|---|
| N products not synced to FreightSimple | Sync products |
| N products missing dimensions | Add dimensions, which opens Saved Commodities in FreightSimple. Enter length, width, and height. |
| N products missing a SKU | Review products, then add a SKU to each in Shopify |
| N products missing shipping weights | Review products, then set a weight on each in Shopify |
| Shipping origin has no postal code | Review locations, then set a full address under Settings → Locations |
Review products opens your own Shopify product list filtered to exactly the products being flagged, so you can fix them in one pass with Shopify's bulk editor.
Products are matched by SKU, capitalisation included:
ABC-1 and abc-1 are two different SKUs to us. A mismatch
isn't silent: Store setup reports the product as having no saved commodity yet.
Correct the spelling rather than pressing Sync products, which would add a second
record under the Shopify spelling.
Weight is read live from Shopify every time we quote, so a weight you correct in Shopify takes effect immediately with nothing to re-sync.
You only run that bulk sync once. Products you add or edit in Shopify afterwards sync themselves. New products still need their dimensions before they can be quoted.
A freight quote needs to know more than the box sizes: whether the delivery is a loading dock or a driveway, whether the driver needs a tail lift, how long you need before pickup. These start at sensible defaults and are yours to change at any time, in Apps → FreightSimple → Settings. A change applies to the next quote, not to orders already placed.
| Setting | What it decides |
|---|---|
| Rates at checkout | Whether we quote at all, and your handling time: the business days you need between an order arriving and the carrier collecting. It sets the pickup date we quote against, so a handling time that's too short buys you a carrier arriving before the freight is ready. A product that takes longer than the rest can carry its own handling time in a metafield, and a cart quotes the longest one it holds. |
| Who gets quoted | Also on the rates page. Leave the customer tags empty and we quote everyone. Tick some and only signed-in customers carrying one of them see our rates. A guest has no account, so no tags, so no rates. The carrier lists work the same way: an empty allow list quotes every carrier, and the block list always wins over it. |
| What your customers' delivery is like | The one that moves the price most. A delivery to a home or a shop needs a tail lift and an appointment; a warehouse with a dock needs neither. Set it to what most of your orders are, and use the next row for the rest. |
| Exceptions by customer tag | When one group of customers is different (wholesale buyers with docks among mostly residential orders, say), tag them in Shopify and the matching rule overrides the default for those buyers. |
| Where we pick up from | What your own dock is like. If a carrier needs a tail lift to load at your end, this is where that goes, and it belongs in the quote rather than on a later invoice. If you ship from more than one place, add each warehouse here and give it its own location type and pickup accessorials. Anything you don't add is quoted with the settings above, which is how a second dock quietly gets priced as the first one. Each warehouse also has a Quote freight from this warehouse switch, and turning it off is the third way to empty a checkout; see One bad item blocks the whole checkout in Chapter 4. |
| Checkout limits | How many pallets we'll quote for one order, and both how many rates the buyer gets to choose from and which ones. A cart over the pallet limit gets no shipping options at all, so raise it if your customers order in volume. The cheapest rate is always first and can't be changed. Shopify pre-selects whichever rate is at the top, and its App Store rules don't allow a more expensive one there. Leave the rest alone and the checkout just shows the next cheapest, which is what it always did. But the cheapest carriers are usually the slow ones, so you can name what comes after (fastest, middle of the range, most expensive) and each takes the best rate the ones above it didn't. Name more slots than the checkout has room for and it won't save: the ones past the limit could never appear, and nothing on screen would tell you which. |
| Product sizes | Where in your product data the dimensions live. Chapter 4 covers this; the setting is here if you need to change it later. |
| Pallet building | How we combine items onto pallets. Leave it alone unless we've talked about it with you. |
Shopify treats the phone number as optional at checkout. Freight carriers phone ahead to arrange delivery, so the carrier needs a number for every order.
An order arrives unbooked. When the goods are ready, you book it.
What's shipping is read-only: one line per handling unit with what's on it and the figures we quoted, such as 48 × 40 × 52 in, 640 lb each, class 125, not stackable. You can't edit it, because the buyer has already paid against those figures. Check it before you submit: if the pack is wrong, the carrier reweighs the freight on pickup and bills the difference to your account.
Pickup is the warehouse the freight actually leaves from: address, contact, your open hours, and whether there's a dock or a forklift. It's prefilled from the last order you booked. Freight doesn't always leave from the address on your Shopify account, so check it on the first booking.
Delivery is prefilled from the buyer's order, except the open and close hours, which Shopify has no field for. They're half-hour dropdowns set to 9:00 AM and 5:00 PM, so if that's right you can leave them.
The form checks itself before it submits and names what's missing, for example "Contact phone is required", with a count of what's left to fix. If it still fails after that, the form stays open and shows one general message without naming a field, because at that point the problem is at our end rather than in what you typed. The order isn't lost. It stays with us and our operations team picks it up.