Plex and ShipStation integration
Plex runs manufacturing and finance for discrete manufacturers. ShipStation coordinates order fulfillment and shipping across multiple sales channels. Connecting them keeps your warehouse and your sales orders in sync. Sales orders from Plex are available in ShipStation so fulfillment teams see what to ship, inventory levels in Plex update when ShipStation processes orders, and shipment tracking flows back into Plex so production knows which orders shipped and when. ml-connector handles the different APIs and bridges the two platforms on a schedule you control.
What moves between them
Sales orders flow from Plex into ShipStation on a poll interval, mapped to ShipStation purchase orders or order records so the fulfillment team sees what inventory to reserve. Inventory levels in Plex update when ShipStation processes orders, reducing on-hand counts. When ShipStation generates a shipment, ml-connector polls ShipStation for shipment details and writes them back into Plex as fulfillment records or shipment notes so manufacturing can track what was shipped. The flow is primarily pull-based; ml-connector initiates both the Plex poll and the ShipStation lookups triggered by webhook notifications.
How ml-connector handles it
ml-connector stores Plex OAuth2 credentials and ShipStation API keys encrypted. For Plex, it obtains a bearer token from the OAuth2 endpoint and includes it in every API call. For ShipStation, it sends the API key in the V2 header or base64-encodes the key:secret pair for V1 Basic auth. Since ShipStation's webhooks deliver only resource pointers, ml-connector parses the resource_url and immediately fetches the actual order or shipment data in an authenticated request. All ShipStation datetime fields arrive in PST/PDT, so ml-connector converts them to UTC before writing to Plex. ml-connector polls Plex on a schedule (e.g., every 10 minutes) to catch sales order changes and inventory movements, and it respects ShipStation's rate limits (200 req/min for V2, 40 req/min for V1) by backing off on 429 responses. Because Plex enforces role-based permissions, the integration user must have read access to Sales_Order and Inventory entities in Plex. ShipStation order status is immutable once an order ships or cancels, so ml-connector treats those records as read-only and never attempts updates. Every record carries a unique reference and audit trail so duplicates can be detected and replayed if a call fails.
A real-world example
A mid-sized discrete manufacturer in automotive supplies uses Plex for production, inventory, and order management, and ShipStation to coordinate fulfillment across three fulfillment centers and multiple e-commerce marketplaces. Before the integration, the fulfillment team logged into both systems separately, manually checking Plex sales orders to see what inventory to pick, and then updating Plex shipment notes by hand after ShipStation generated labels. With Plex and ShipStation connected, sales orders from Plex appear automatically in ShipStation, fulfillment staff see correct on-hand inventory levels from Plex in real time, and when ShipStation ships an order, the shipment tracking flows back into Plex automatically so production and sales both know the delivery status without re-entry.
What you can do
- Push Plex sales orders and current inventory levels into ShipStation on a configurable poll interval so fulfillment teams see accurate stock and order details.
- Reduce Plex inventory automatically when ShipStation fulfills orders so on-hand counts stay in sync across both systems.
- Retrieve ShipStation shipment and tracking details via authenticated follow-up requests and write them into Plex as shipment records.
- Authenticate Plex with OAuth2 credentials and ShipStation with API keys, with encrypted credential storage and rate-limit backoff.
- Convert ShipStation timestamps from PST/PDT to UTC and detect duplicates using unique order references to ensure data consistency.
Questions
- How does the integration handle ShipStation's webhook pointer pattern?
- ShipStation webhooks deliver only a resource_url pointer and resource_type, not the full order or shipment data. ml-connector parses the resource_url immediately upon receiving a webhook and makes an authenticated GET request to fetch the actual record. This ensures the data is current and complete before writing to Plex.
- Which direction does data move between Plex and ShipStation?
- Sales orders and inventory flow from Plex into ShipStation so fulfillment teams see what to pick and ship. Shipment and tracking details flow from ShipStation back into Plex so manufacturing can see fulfillment status. Inventory levels in Plex are reduced when ShipStation processes orders.
- Why does the integration poll Plex if ShipStation sends webhooks?
- ShipStation webhooks cover new orders and shipment events, but order edits (like quantity or address changes) do not trigger a webhook, so polling Plex detects all sales order changes. ml-connector also polls Plex on a schedule to capture inventory movements and ensure no changes are missed between webhook notifications.
Related integrations
More Plex integrations
Other systems that connect to ShipStation
Connect Plex and ShipStation
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started