WooCommerce + AtoShip
Pull orders from your WooCommerce store into atoship, buy discounted USPS / UPS / FedEx labels, and push tracking numbers back — all without leaving either dashboard.
How it works
The integration has two parts: a WordPress plugin that lives inside your WooCommerce store, and a connection from your atoship dashboard. Together they keep orders, tracking numbers, and order statuses in sync automatically.
New orders appear in WooCommerce
Customer places an order on your store
Orders sync to atoship
Auto-imported with customer info, items, weights
Buy label, tracking goes back
Tracking number + carrier written to WooCommerce order
Installation
Step 1 — Install the WordPress plugin
Download the atoship-for-woocommerce.zip file from the sidebar (or the button below), then go to your WordPress admin:
- Plugins → Add New → Upload Plugin
- Choose the .zip file and click Install Now
- Click Activate

After activation, the plugin shows up in your Plugins list with Deactivate and Delete actions.
Step 2 — Connect from atoship
In your atoship dashboard, go to Channels → Add Channel → WooCommerce. Enter your store URL and click Connect. You'll be redirected to your WooCommerce admin to approve API access — once approved, both sides connect automatically.

OAuth or API Keys — pick whichever works for your store. OAuth is recommended and handles everything automatically.
Step 3 — Verify the connection
After authorizing, go to WooCommerce → Settings → AtoShip in your WordPress admin. You should see the OAuth Status as "Connected" and your atoship account email.

Plugin settings
All settings live under WooCommerce → Settings → AtoShip tab. Here's what each section does:

Order Sync Settings
- Auto Sync Orders — When enabled, new orders matching your selected statuses are automatically sent to atoship.
- Sync Order Statuses — Pick which WooCommerce order statuses to import. Default: Processing and On Hold.
- Sync Completed Orders — Also imports orders that are already marked complete (useful for initial setup).
Tracking Settings
- Auto Complete Orders — Automatically marks WooCommerce orders as "Completed" when carrier tracking shows delivery.
- Send Tracking Email — Sends a "Your order has been shipped" email to the customer when a label is purchased in atoship. Includes carrier name, tracking number, and a "Track Your Package" button.
Webhook Configuration
Shows the webhook URL and secret for your store. These are auto-configured — you don't need to change them unless you're debugging. The webhook receives label events (created, voided) and tracking updates (shipped, delivered, exception) from atoship in real time.
Debug Log
Enable this to write detailed logs to WooCommerce → Status → Logs (source: atoship). Useful for troubleshooting sync or webhook issues. Keep it off in production — it's verbose.
What gets synced
WooCommerce → atoship
- Order number, date, total
- Billing & shipping addresses
- Line items with SKU, quantity, weight
- Order notes
- Customer name & email
atoship → WooCommerce
- Tracking number & carrier
- Tracking URL (clickable link)
- Label PDF link (for reprinting)
- Order status updates (→ Completed)
- Delivery & exception notifications
Tracking data is stored as order meta (_atoship_tracking_number, _atoship_carrier, etc.) so it works with most order tracking plugins.
Bulk label purchasing
The plugin adds an "AtoShip - Buy Labels" option to the WooCommerce orders bulk actions dropdown. Select multiple orders, choose the action, and you'll be taken directly to your atoship dashboard with those orders pre-filtered — ready to compare rates and buy labels in batch.
Live shipping rates at checkout
The plugin registers an AtoShip Shipping method in WooCommerce. When enabled (under WooCommerce → Settings → Shipping), customers see real-time USPS, UPS, and FedEx rates during checkout — the same discounted rates you get when buying labels in atoship.
For accurate rates, make sure your products have weight and dimensions set. The plugin shows a warning on the settings page if products are missing weight data.
Disconnecting
You can disconnect from either side:
- From atoship: Go to Channels, find your WooCommerce store, and delete it. The plugin on your WordPress side will be notified and clear its token automatically.
- From WordPress: Go to WooCommerce → Settings → AtoShip and click "Disconnect". Or use the red Delete link on the Plugins page — this disconnects, deactivates, and removes the plugin in one step.
Disconnecting does not delete any orders, tracking numbers, or order notes already in your store. It just stops the sync.
Troubleshooting
"AtoShip is not configured" notice
The plugin is activated but not connected to atoship yet. Follow the connection steps above — once OAuth completes, the notice goes away.
Orders not syncing
Check that "Auto Sync Orders" is enabled and your order statuses match. Orders in statuses you didn't select won't be imported. You can always trigger a manual sync from the atoship Channels page.
Tracking not showing on WooCommerce orders
Make sure the webhook URL is reachable from the internet. If your store is behind a firewall or on localhost, webhooks can't reach it. Check WooCommerce → Status → Logs for any webhook errors.
Products missing weight warning
The plugin checks product weights for accurate shipping rate calculation. Click the product links in the warning to set weights. Rates may be inaccurate until this is fixed.
Requirements
- WordPress 5.8+
- WooCommerce 6.0+
- PHP 7.4+
- REST API enabled (WooCommerce default)
- Pretty permalinks (not "Plain")
- HTTPS recommended, HTTP works via OAuth 1.0a
v1.0.0 · WooCommerce 6.0+ · PHP 7.4+