Unfulfilled in. Fulfilled out.
We read what your Shopify store already knows: what is unfulfilled, which location it ships from, what the buyer picked at checkout. You buy the USPS or UPS label. The fulfillment is written back with tracking, and your store emails the customer as it always has.
Free account. Pay per label. USPS and UPS.
The mechanic
Unfulfilled in, Fulfilled out
A Shopify order carries no single fulfillment switch. When it is placed, your store builds a fulfillment order for every location holding the stock, and the order's status is read off those.
So we write against the fulfillment order, never the order itself. Ship two of three line items and the third stays Unfulfilled, on its own location, until you buy its label.
In and out
Three moves. One of them is yours.
-
01
The order arrives
The orders/create webhook reaches us within minutes of checkout, carrying the buyer, the address, the line items, the order tags, the shipping method picked at checkout and the location the fulfillment order is assigned to. A sync every 10 to 15 minutes sits behind it, so a lost delivery cannot strand an order.
-
02
You buy the label
Weight is summed from the line items, so a two item order is not quoted as one. USPS and UPS come back together, with your shipping rules and service mappings applied and the pick still yours to change. Buy the one order, or batch the day's orders in The Workbench and print one merged PDF.
-
03
The fulfillment is written
We call fulfillmentCreate against the fulfillment order, carrying the tracking number, the carrier and the line items in that box, with notifyCustomer set so your store sends its own shipping confirmation. A write-back that fails retries for up to 7 days.
At label time
Rates on Shopify orders
Both carriers are priced on the order in front of you: its summed weight, its buyer address, and the ship-from address of the location the fulfillment order was assigned to. Change that location and the zone changes, so the rates do too.
Rate shopping sits where the label is bought, never at checkout. What your customers are quoted and charged stays yours to set.
Scopes in plain terms
What we read, what we write
An app that can change your store is worth being specific about. This is the whole surface, not a summary.
| In your store | We read | We write |
|---|---|---|
| Orders and line items | Yes, by webhook and by sync | Nothing |
| Fulfillment orders | Yes, with the assigned location | The fulfillment, with tracking and carrier |
| Customer notification | Nothing | notifyCustomer, so your store sends its own email |
| Locations | Yes, to match a warehouse | Nothing |
| Products and variants | Yes, on demand | Barcodes and variant details, when you ask |
| Inventory levels | Yes, on demand | Adjust or set, when you ask |
| Order tags | Yes, rules branch on them | Nothing |
| The shipping method the buyer chose | Yes, service mappings read it | Nothing |
| Discounts | Nothing | A post-purchase discount code, only if you turn on branded delivery updates |
| Themes and storefront | Nothing | Nothing |
| Checkout rates (CarrierService) | Nothing | Nothing |
| Prices | Nothing | Nothing |
Barcodes, variants and inventory move only when you ask, from a screen that shows the change first. Your themes, your storefront and checkout rate calculation are scopes we never request at all.
Scope
What the connection does today
The connection is complete and in use by early-access stores. Here is what it carries, and what it leaves out for now.
Works today
- Orders on the created, updated and cancelled webhooks, with a 10 to 15 minute sync behind them
- Fulfillment write-back with tracking and carrier, against the fulfillment order
- Partial fulfillment, so a split shipment closes only its own line items
- Products, variants and inventory, read on demand and written when you ask
- Locations and order tags, feeding warehouse matching and shipping rules
- Cancellation detection, with an alert if an order is cancelled after you bought its label
Not included yet
- Order revenue, fees and profit. Store orders carry no money figures here
- History import. The connection starts the day you connect and works forward
- Installing from our Shopify App Store listing, when our listing is published. Today the install starts inside the app
Pricing
What a label costs here
Label prices sit below USPS commercial pricing, and you see the full price on the order before you buy.
Your store's order money stays in your store. We put no revenue, fee or profit figure on a Shopify order.
- Label
- Pay per label. The rate you see is the rate you pay.
- Account
- Free. No minimum, and no monthly fee to buy a label.
- Pro
- $14.99 a month or $99.99 a year, billable through Shopify. The Workbench is part of Pro.
Locations and rules
One store, two locations
A Shopify order carries the location its fulfillment order was assigned to, so warehouse matching ships it from that address rather than from one default.
Portland, OR 97209 Assigned on the fulfillment order. Labels print from this address.
- #10422 items, wholesale
- #10441 item, fragile
Reno, NV 89502 Second address, different zones, so the rates change too.
- #10431 item, gift note
- #10513 items
1412 NW Marshall St eBay carries no ship-from location, so these fall back to your default.
- 27-13042-881201 item
- 27-13045-119023 items
Rules read your store's own fields
You already encode these decisions in tags and checkout options. Rules read them rather than ask you to build the logic twice.
- Whenthe order carries the tag wholesale Thena shipping rule picks the service you set for wholesale orders
- Whenthe buyer picked Express at checkout Thena service mapping turns that into the USPS or UPS service you nominated
- Whenthe fulfillment order is assigned to Portland Thenwarehouse matching ships from that address, not from your default
Shopify shipping questions, answered
- Can I add tracking numbers to Shopify orders in bulk?
Not with Shopify's own bulk action. Selecting orders and choosing Mark as fulfilled moves them to Fulfilled with no tracking field, and Shopify tells you to add tracking numbers manually afterwards.
- How do I mark a Shopify order fulfilled with tracking?
Open the order, click Mark as fulfilled, and put the number in the Tracking number field.
- What is a fulfillment order in Shopify?
A fulfillment order is Shopify's record of what has to be fulfilled, by which location, for one order.
- How do I ship part of a Shopify order in two boxes?
Fulfill the order twice. On the first pass, enter the item quantities you are shipping now, add that box's tracking number, and confirm: the order becomes Partially fulfilled and the rest stays in the Unfulfilled section.
- Why is my Shopify order assigned to the wrong location?
Shopify assigns each order to a location at checkout using your order routing rules and the inventory available at each location, not the address you print from.
- Which email does my Shopify customer get when I add tracking?
Add the tracking number while marking the order fulfilled and the customer gets the shipping confirmation, which Shopify sends when an order is fulfilled.
- Can I buy shipping labels for Shopify outside Shopify Shipping?
Yes. Shopify's fulfillment screen asks for a tracking number from your shipping provider and lets you pick the carrier yourself, so the label can come from anywhere.
- How do I fulfill a Shopify order without emailing the customer?
Uncheck Send a notification to the customer on the fulfillment screen before you confirm.
- What do on hold, in progress and scheduled mean on a Shopify order?
They are fulfillment statuses meaning the work is not finished.
- Why is my Shopify tracking link not clickable?
Shopify builds the link from the carrier attached to the fulfillment, so a number saved with no carrier, or with the wrong one, has nothing to link to.
- What permissions does a shipping app need on Shopify?
A shipping app needs to read orders, act on the fulfillment orders assigned to your own locations, and read your locations.
- How do I ship Shopify orders from more than one location?
Shopify assigns each order to a location using your order routing configuration and available inventory, then creates one fulfillment order per assigned location.
- How do I print packing slips for Shopify orders?
Shopify prints packing slips from the admin, and its help pages say you can print them for your orders individually or in bulk.
- How do I change a tracking number on a fulfilled Shopify order?
Open the order, go to the Fulfilled section, choose Add tracking, correct the number and carrier, and save.
- How do I ship all my unfulfilled Shopify orders in one place?
The Unfulfilled tab on the Orders page is the list, and Shopify's own bulk action can mark that selection fulfilled.
Questions merchants ask
The connection is an app install over OAuth, started from inside the I'd Ship That app and claimed by the account you are signed in to. That is what ties the store to your labels. When our Shopify App Store listing is published, the install starts there instead.
We create the fulfillment with notifyCustomer set, so your store sends its own shipping confirmation carrying the tracking number we wrote. If you turn on branded delivery updates, we send those from your business name, and every one carries an unsubscribe link.
Yes. We read your locations and the location assigned to each fulfillment order, and that feeds warehouse matching. The label prints from the assigned address. Ship part of an order and only those line items are fulfilled.
Approval for protected customer data is a separate Shopify review of the install. Until that approval is in place, the sync stops with a clear error rather than importing orders with blank addresses.
No. We register no carrier service, so we never price anything at checkout. What your customers are quoted and charged is yours to set. Our rate shopping happens later, where the label is bought.
Disconnecting revokes at Shopify. The token stops working, webhooks stop arriving, and we can read and write nothing further. Orders already pulled in stay for your records. Recipient fields are nulled once the order is closed or cancelled and 90 days past the order date. The customer redact webhook is handled too.
Join the Shopify early access
One email when your store can connect. You can ship by hand in the meantime.
Also connectseBay Available nowWooCommerce Early access
Shopify is a trademark of Shopify Inc. I'd Ship That is not affiliated with or endorsed by Shopify. USPS® is a trademark of the United States Postal Service. UPS® is a trademark of United Parcel Service of America, Inc. Order data in the renders above is sample data.
Shopify links on this page are affiliate links: if you open a Shopify account through one, we may earn a commission at no extra cost to you.