OpenCart + AtoShip
Install the AtoShip extension on your OpenCart store, connect with an API key, and get automatic order sync, discounted carrier labels, and tracking writeback — all in one flow.
How it works
The integration uses a lightweight PHP extension that adds a REST API to your OpenCart store. AtoShip connects to that API using a Bearer token — no OAuth redirects, no complicated setup.
Customer places an order
New orders appear in your OpenCart store
Orders sync to AtoShip
Automatically imported with customer info, items, and weights
Buy label, tracking goes back
Tracking number and carrier written back to the order
Installation
Step 1 — Download the extension
Download atoship-for-opencart.zip from the sidebar button. This is a standard OpenCart 4.x extension package.
Step 2 — Install via the Extension Installer
In your OpenCart admin panel:
- Go to Extensions → Installer
- Click Upload and select the
.zipfile - Wait for the green success message
- Click the Install button next to the atoship extension
Step 3 — Enable the module
After installing, activate the module:
- Go to Extensions → Extensions, then select Modules from the type dropdown
- Find Atoship and click the green Install button (if not already installed)
- Click the blue Edit button
- Set Status to Enabled and click Save
- Copy the API Key shown on this settings page — you'll need it in the next step
Step 4 — Connect from AtoShip
In your AtoShip dashboard:
- Go to Channels → Add Channel → OpenCart
- Enter your store URL (e.g.
https://your-store.com) - Paste the API Key copied from Step 3
- Click Connect Store
AtoShip will validate the credentials, confirm the connection, and register a webhook endpoint on your store. Existing orders will begin syncing automatically.
Extension settings
All settings live under Extensions → Modules → Atoship → Edit.
API Key
Auto-generated on install. This is the Bearer token AtoShip uses to authenticate all API calls. Copy it during setup and paste it into the AtoShip connect dialog. Use Regenerateif you suspect the key has been compromised — note that regenerating will disconnect your current AtoShip connection and require you to reconnect.
HMAC Secret
Used to sign webhook payloads sent from your store to AtoShip (e.g. new order events, status changes). Auto-configured — no manual action needed.
Shipped Status / Delivered Status
Controls which OpenCart order status is set when AtoShip writes back a tracking number (Shipped) or when the carrier reports delivery (Delivered). Default: Shipped → status 3, Delivered → status 5 (Complete). Adjust these to match your OpenCart order status setup.
Webhook URL
Auto-set by AtoShip during the connect step. Shown read-only for reference. This is the endpoint on your AtoShip account that receives real-time order events from OpenCart.
What gets synced
OpenCart → AtoShip
- Order number, date, total
- Shipping & billing addresses
- Line items with SKU, quantity
- Product images
- Customer name & email
- Order status
AtoShip → OpenCart
- Tracking number & carrier name
- Carrier tracking URL
- Order history comment (Shipped / Delivered)
- Order status update (Shipped → Complete)
- Tracking widget on customer order page
Customer order tracking widget
Once a label is purchased in AtoShip, customers see a real-time AtoShip Shipping widget at the top of their order details page (/index.php?route=account/order.info).
Carrier & service
Carrier badge (FedEx, UPS, USPS, DHL), carrier name, and service level shown at a glance.
Progress stepper
4-step visual indicator: Preparing → Picked up → In Transit → Delivered. Updates automatically as tracking status changes.
Tracking number
Clickable tracking number linking directly to the carrier's tracking page.
Tracking timeline
Most recent 5 tracking events with timestamps — updated automatically by the AtoShip tracking cron.
The widget is injected via OpenCart's event system and requires no template modifications. It only shows for the order's customer (verified by session).
Troubleshooting
"Unauthorized" when connecting
Make sure the API Key is copied exactly from the extension settings page — no extra spaces. Also confirm the module Status is set to Enabled and saved.
Orders not syncing
Check the Store URL in AtoShip Channels → Edit. It must match the public URL of your OpenCart store exactly (including or excluding www). Trigger a manual sync from the Channels page to test.
Tracking not updating on OpenCart orders
Webhooks require your store to be publicly accessible. If your store is behind a firewall or on localhost, webhooks won't reach it. Use the Resend Tracking button on the AtoShip order detail page to manually push tracking data.
Extension not appearing after upload
OpenCart 4.x does not autoload extensions. After uploading the zip, you must click Install on the extension in the Installer list. If you don't see it, clear the cache under Dashboard → (gear icon) → Refresh.
Requirements
- OpenCart 4.0.x or higher
- PHP 8.0+
- cURL extension enabled
- Store accessible via public HTTPS URL
- Admin account with Extensions permission
v1.0.0 · OpenCart 4.0+ · PHP 8.0+