Shopify + AtoShip
Import orders from your Shopify store into atoship, buy discounted USPS / UPS / FedEx labels, and push tracking + fulfillment back — all via secure OAuth, no plugin to install.
How it works
Unlike WooCommerce, Shopify uses a native OAuth app model — there's no plugin to install. You connect your store from the atoship dashboard, authorize access on Shopify, and webhooks handle the rest in real time.
Connect via OAuth
Authorize atoship on your Shopify admin
Orders sync automatically
New orders arrive via webhooks + scheduled sync
Buy label, order fulfilled
Tracking + fulfillment pushed back to Shopify
Connecting your store
Step 1 — Start the connection
In your atoship dashboard, go to Channels → Add Channel → Shopify. Enter your store domain (e.g. my-store.myshopify.com or just my-store). Click Connect.

You can enter either the full *.myshopify.com domain or just the store name — atoship normalizes it automatically.
Step 2 — Authorize on Shopify
You'll be redirected to your Shopify admin. Review the permissions atoship needs (orders, products, fulfillment, inventory, shipping) and click Install app.
atoship requests read/write access for orders, products, fulfillments, inventory, and shipping. Your Shopify password is never stored — only a secure, revocable access token.
Step 3 — Verify the connection
After authorizing, you're redirected back to the atoship dashboard. Your store should appear under Channels → Shopify with status Active. Webhooks are registered automatically in the background — new orders will start flowing in immediately.
On the Shopify side, you'll see atoship listed under Apps in your store's admin sidebar. Orders will begin syncing immediately.
Buying labels from Shopify
Once connected, you can purchase shipping labels directly from your Shopify admin — no need to switch to the atoship dashboard. There are two entry points:
From the orders list (bulk)
Select one or more orders, click the … menu, and choose atoship - smart label under Apps. This takes you to atoship with those orders pre-selected — ready to compare rates and buy labels in batch.

From a single order
Open any order, click More actions, and select atoship - Smart Label. You'll be taken directly to atoship with the order details pre-filled — compare carrier rates and print a label in seconds.

Sync settings
Click on your connected store, then open the Settings tab. Here's what each option does:
Order Sync
- Auto Sync — Toggle automatic order imports on/off.
- Sync Frequency — How often to pull orders: 1, 2, 4, or 8 hours. Webhooks provide real-time updates between scheduled syncs.
- Sync Window — How far back to look for orders: 1 week, 2 weeks, or 1 month.
Order Status Filters
- Fulfillment Status — Which orders to import by fulfillment state. Default: unfulfilled and partially fulfilled.
- Payment Status — Which orders to import by payment state. Default: authorized, paid, and partially refunded.
- Exclude Countries — Skip orders shipping to specific countries.
- Exclude Tags — Skip orders with certain Shopify tags (e.g.
hold,do-not-ship).
Fulfillment & Tracking
- Update Order Status — When to mark the Shopify order as fulfilled: on label purchase, X hours after, daily at a set time, or never.
- Deactivate Tracking Email — Prevents Shopify from sending its default shipping confirmation email. Useful if you handle notifications yourself.
- Auto Sync Address — Automatically pushes address corrections from atoship back to Shopify.
Product Sync
- Enable Product Sync — Imports your Shopify product catalog (including variants, SKUs, and inventory levels) into atoship.
- Collections — Both custom and smart collections are synced automatically when product sync is enabled.
- Fallback Weight — Default weight for products without weight data (used for rate calculation).
- Fallback Dimensions — Default package dimensions for products without dimension data.
What gets synced
Shopify → atoship
- Order number, date, totals
- Billing & shipping addresses
- Line items with SKU, quantity, weight
- Order tags & notes
- Customer name & email
- Products, variants & inventory levels
- Custom & smart collections
- Financial & fulfillment status
atoship → Shopify
- Tracking number & carrier
- Tracking URL
- Fulfillment status updates
- Shipping confirmation (triggers Shopify email)
- Delivery & exception notifications
Fulfillment uses Shopify's modern FulfillmentOrder API. When a label is created in atoship, a fulfillment with tracking info is pushed to Shopify, which can automatically notify the customer.
Real-time webhooks
atoship automatically registers webhooks on your Shopify store during connection. These provide real-time updates between scheduled syncs — you don't need to configure anything manually.
orders/create— New order placedorders/updated— Order modifiedorders/fulfilled— Order fulfilled externallyorders/cancelled— Order cancelledproducts/create— New product addedproducts/update— Product changedproducts/delete— Product removedapp/uninstalled— App removed from storeAll webhooks are verified with HMAC-SHA256 signatures. If you uninstall the app from Shopify, the app/uninstalled webhook automatically cleans up the connection on the atoship side.
Disconnecting
You can disconnect from either side:
- From atoship: Go to Channels, find your Shopify store, and click Delete Store. Webhooks on the Shopify side are automatically deregistered.
- From Shopify: Go to your Shopify admin → Settings → Apps, find atoship, and click Uninstall. The
app/uninstalledwebhook notifies atoship to clean up the connection.
Disconnecting does not delete any orders, labels, or tracking data already in atoship. It only stops future syncing.
Troubleshooting
OAuth redirect fails or times out
Make sure you're entering the correct store domain. The OAuth state token expires after 10 minutes — if you waited too long on the consent screen, go back to Channels and try again.
Store shows "already connected"
Each Shopify store can only be connected to one atoship organization. If you previously connected this store under a different account, disconnect it there first, then reconnect from your current account.
Orders not syncing
Check your sync settings — orders are filtered by fulfillment status (default: unfulfilled + partial) and payment status (default: authorized + paid + partially refunded). Orders that don't match these filters won't be imported. You can also trigger a manual sync from the store settings page.
Tracking not appearing on Shopify orders
Check the "Update Order Status" setting. If set to "never", atoship won't push fulfillments back. Change it to "on label purchase" for immediate tracking updates. Also verify that the order has open fulfillment orders on the Shopify side.
Products not syncing
Product sync is a separate toggle — make sure it's enabled in your store settings. Products are matched by existing links, then SKU, then UPC. If no match is found, a new product is created with an auto-generated SKU.
Customers getting duplicate shipping emails
When atoship fulfills an order on Shopify, Shopify sends its standard shipping confirmation email. If you also send notifications from atoship, toggle on Deactivate Tracking Email in your store settings to suppress Shopify's email.
Requirements
- Any Shopify plan (Basic, Shopify, Advanced, or Plus)
- Store owner or staff account with app installation permissions
- No plugin or code changes required on your store