In the Shopify app, open the Shipping tab and find the Real shipping costs card. Until you add bills, your shipping cost is the average you typed, marked est.
Import a bill
- Choose Import a bill on the Real shipping costs card.
- Pick the bill type, or Find it for me, and choose the CSV file.
- Check file. Zyro shows a preview: the format it found, how many charges, how many match an order, how many don't yet, how many are already in Zyro, and the totals by kind. Nothing is saved yet.
- Bring in the charges. Every import is listed with Undo, and you get an Undo right after, too.
Each line becomes one charge: a label, an adjustment (weight, address or other; credits count as negative), a surcharge (fuel, residential, delivery area, peak and more), insurance, duty, import tax, brokerage and fees, or a return. The same line is never counted twice, even if you import the same bill again or two bills overlap.
Where to get each bill
- Shopify Shipping: in Shopify, Settings, Billing, open a bill and Export it. Label adjustments arrive on a later bill.
- UPS: the Billing Center CSV with its header row. The plain download has no header, so Zyro refuses it and says how to add one. It never guesses columns.
- FedEx: the FedEx Billing Online download.
- DHL Express: the MyBill CSV.
- Any other carrier or 3PL: Zyro's template, with the columns order, tracking_number, date, type, amount, currency, country, carrier and description. Zyro also reads other long CSVs that have an order or tracking column and an amount.
How lines match orders
Zyro matches each line by its tracking number first, using the tracking numbers on your Shopify orders. Then it tries the order name the bill quotes (such as #1054) or a Shopify order id. Lines that match no order yet are kept: Download them gives them as a CSV with the reason, Match again retries them, and Zyro retries them every day.
- Choose Connect a shipping tool and pick ShipStation, Shippo or EasyPost.
- Paste a key. ShipStation takes its API key (or the older key and secret), Shippo its token, EasyPost its API key. Zyro tests it with one read, then stores it encrypted. Only the last 4 characters show again.
- Done. Zyro reads your labels once a day, and Sync now reads them again (once every 10 minutes at most).
Connections are read-only: Zyro never buys, voids or changes a label. Disconnect keeps the costs already read. ShipStation's Free and Starter plans have no API access, so use a bill there. Connecting a shipping tool is on Growth and Scale.
What you see
- Real shipping costs (Shipping tab): what labels really cost, what shoppers paid for those orders, and the share of shipped orders with a real cost. Your real average next to the cost you typed, free-shipping orders' real cost, orders that cost more to ship than the shopper paid, and adjustments and surcharges per label, month by month.
- Customs bills vs duties collected (Customs tab): duty billed beyond what shoppers paid at checkout, plus every brokerage and clearance fee. Import tax billed shows on its own, next to the tax checkout charged, and is never added to the loss.
- Parcels that came back or got stuck (Customs tab): refused, returned to you, held at customs, held by the carrier, or failed, by destination, with what each cost.
- Profit: orders with a real cost count at that cost. The rest keep your typed cost, marked est.
What Zyro reads
Zyro reads only the columns it needs: order and tracking numbers, dates, amounts, the charge type and the 2-letter destination country. Names, streets, cities, postcodes, phone numbers and emails in a bill are skipped and never stored. Bills are your own costs, so they are never marked est.
If it doesn't work
- Rows skipped for currency. Lines in another currency than your store's are skipped, not converted.
- File too big. Up to 3 MB and 25,000 rows per file. Split a bigger bill.
- Held at customs not shown. No carrier has a customs status of its own. Zyro marks a parcel held at customs when it is held and the carrier's own words mention customs.
- A connector stopped. The card shows its last sync and error. Paste a fresh key.
Related articles
Still stuck? Email hello@zyro.world with your store address and the bill type you are importing.
Or ask us here