Connecting Shopify via Webhook
The fastest way to connect Shopify to 3PLGuys. Point a Shopify webhook directly at our API — no code required. Orders automatically create Pick & Pack shipments.
Looking for more control?
If you need custom SKU mapping, inventory sync, or fulfillment callbacks to Shopify, see Connecting Shopify Programmatically instead.
How It Works
- Customer places an order in Shopify
- Shopify sends a webhook to
POST /v0/shopify/orders - 3PLGuys matches SKUs and creates a Pick & Pack shipment
- Warehouse fulfills the order
Prerequisites
- Matching SKUs: Your Shopify product SKUs must exactly match your 3PLGuys inventory SKUs
- API Key: Generate one from your 3PLGuys dashboard with
shipmentsandinventoryscopes
Setup
1. Generate an API Key
Go to Account Settings → API Keys in your 3PLGuys dashboard. Create a key with shipments and inventory scopes.
Save your key
The key is shown only once. Copy it immediately.
2. Verify SKUs Match
Your Shopify variant SKUs must exactly match your 3PLGuys product SKUs. Check for typos, extra spaces, or case differences.
3. Create the Webhook in Shopify
In your Shopify admin:
- Go to Settings → Notifications → Webhooks
- Click Create webhook
- Configure:
| Field | Value |
|---|---|
| Event | Order creation |
| Format | JSON |
| URL | https://api.3plguys.com/v0/shopify/orders |
- Add a custom header:
Authorization: Bearer YOUR_API_KEY_HERE
- Save the webhook
Testing
Use the sandbox environment first:
| Environment | URL |
|---|---|
| Sandbox | https://sandbox.3plguys.com/v0/shopify/orders |
| Production | https://api.3plguys.com/v0/shopify/orders |
Create a test order in Shopify and verify a shipment appears in your 3PLGuys dashboard.
Response Codes
| Response | Meaning |
|---|---|
200 with shipmentId | Order processed, shipment created |
200 with duplicate: true | Order already processed (idempotent) |
401 | Invalid API key |
422 with unknown_skus | SKU not found in 3PLGuys inventory |
422 with no_warehouse | No warehouse configured |
Limitations
- No fulfillment callback: Shopify orders remain "Unfulfilled" until manually updated.
- No inventory sync: Stock levels don't sync between Shopify and 3PLGuys.
- No cancellation handling: If an order is cancelled in Shopify, manually cancel the shipment in 3PLGuys.
For these features, use the programmatic integration instead.
Troubleshooting
| Issue | Solution |
|---|---|
| Orders not appearing | Check webhook URL and Authorization header |
| Unknown SKUs error | Ensure Shopify SKUs exactly match 3PLGuys SKUs |
| 401 errors | Verify API key is correct and has required scopes |
Next Steps
- Connecting Shopify Programmatically — Full control with custom code
- Pick & Pack API — Endpoint reference
- Shopify Integration — Full API documentation