> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exclusivo.one/llms.txt
> Use this file to discover all available pages before exploring further.

# Shipping

> Set your rates, cover the places you ship to, and buy labels from the order.

You can charge for shipping in two ways, and you can use both at once.

**Zone rates** are prices you set yourself. Australia $10, rest of world $25 —
that sort of thing. Nothing to connect, works immediately.

**Live carrier rates** ask real carriers what they'd charge for this parcel to
this address, and show the customer those options. You'll need an EasyPost
account and weights on your products.

If a carrier is having a bad day, live rates quietly fall back to your zone
rates, so checkout keeps working.

## Cover everywhere you actually ship

This is the one to get right before you open.

If a customer's address doesn't fall inside any zone you've set up, they can't
check out. That's the correct behaviour — you don't want to accept an order you
can't fulfil — but it means a half-finished zone setup looks, from the
customer's side, like your shop is broken.

<Warning>
  If you ship worldwide, you need a zone that says so. "Rest of world" isn't
  assumed.

  The coverage summary on the shipping page shows what you're actually covering.
  Check it against where you're willing to post things.
</Warning>

## Live carrier rates

Carrier rates run through EasyPost, and you connect **your own** carrier
accounts to it. That means your negotiated rates, not ours.

<Steps>
  <Step title="Connect your carriers">
    On the carrier panel. Your credentials live with EasyPost — we only store
    the account IDs.
  </Step>

  <Step title="Put weights on your products">
    In grams. Without a weight, a carrier can't price the parcel, so the product
    either quotes wrong or makes the whole cart unquotable.
  </Step>

  <Step title="Add your markup, if you want one">
    A percentage on top of the carrier's price. It's applied when the customer
    sees the rate and again when they're charged.
  </Step>
</Steps>

An EasyPost key that starts with `EZTK` is a test key. It'll quote rates
happily but can't buy a real label — the carrier panel tells you if you're on
one.

### You can't be undercharged by a tampered cart

Whatever the browser sends, the price is worked out again on our side before
anyone is charged. Zone prices come from your saved settings; carrier prices are
re-read from EasyPost. The number in the request is ignored.

## Shipping from more than one place

Add a location for each place you post from. Products can then be assigned to
one, and anything you don't assign ships from your default.

The **Ships from** picker only shows up on the product form once you have two or
more locations — with one, there's nothing to pick.

### When an order spans two warehouses

The cart splits the order by location, prices each part separately, then adds
them together.

* You'll only be offered a service if **every** part of the order can be sent that way.
* The delivery estimate is the **slowest** part, because the order isn't really complete until the last parcel lands.
* You buy a label per parcel, not per order.

<AccordionGroup>
  <Accordion title="What if I delete a location that products point at?">
    Those products fall back to your default location and stay sellable. They
    won't suddenly become unquotable, which would show up to a customer as "we
    don't ship to you".
  </Accordion>

  <Accordion title="Can I have two default locations?">
    No — exactly one, always. Two would make it a coin toss which one priced an
    order, and none would leave your unassigned products unsellable.
  </Accordion>

  <Accordion title="I set my shop up before locations existed">
    Your old origin address became your default location. Nothing was lost and
    there's nothing to migrate.
  </Accordion>
</AccordionGroup>

## Buying a label

Open the order, go to **Fulfilment**, buy the label. The tracking number is
written back onto the order, which is what your shipping email sends to the
customer.

The price you see is the raw carrier cost — what actually leaves your balance —
not the marked-up figure the customer paid.

## Before you open

<AccordionGroup>
  <Accordion title="Does a zone cover every country you'll post to?">
    Check the coverage summary rather than trusting your memory of what you set up.
  </Accordion>

  <Accordion title="Do all your physical products have weights?">
    Imported catalogues very often don't. Live rates need them.
  </Accordion>

  <Accordion title="Have you tried a test order to somewhere far away?">
    The furthest place you're willing to post to is the one most likely to have
    slipped out of your zones.
  </Accordion>

  <Accordion title="Is your EasyPost key a live one?">
    A key starting `EZTK` can quote but can't buy labels.
  </Accordion>
</AccordionGroup>
