Orders (create, amend by upsert, cancel), despatch write-back with per-parcel tracking, available stock, product create, inbound receivings with cancellation, goods received confirmations, returns with prepaid labels, and webhooks.
Not offered by the v3 API: lot and expiry detail on stock, the supplier master, order holds and a carrier catalogue (Shipwire rate-shops instead).
Install LataSys 3PL Connector: Shipwire Adapter alongside the core app. The provider appears in the instance form's Provider list as soon as the module is installed - no configuration is needed to register it.
| Field | Value |
|---|---|
| Provider | Shipwire |
| Environment | Sandbox or Production - this switches the host |
| Base URL | left empty; defaults to api.beta.shipwire.com (sandbox) or api.shipwire.com (production) |
| API Key | the Shipwire API key |
The key is sent as Authorization: ShipwireKey <key>. Press Test
Connection - it reads a single stock row to prove the credentials and
environment line up.
Warehouses. Shipwire publishes no warehouse catalogue, so
Fetch Warehouses is unavailable. Take the warehouse id or region code
from your Shipwire dashboard (for example CHI) and put it in the
warehouse mapping's remote code - it scopes both stock queries and
inbound receivings.
Carriers and services. There is no carrier list to fetch. Map your Odoo delivery methods onto Shipwire service level codes, or set a Default Service Level on the Shipwire Options tab. Leaving both empty lets Shipwire pick the cheapest option that meets the order's needs.
Statuses. Press Load Missing Defaults: held, unprocessed, processed, submitted, completed, delivered, returned, cancelled.
| Field | Meaning |
|---|---|
| Default Service Level | Shipwire service level code sent when neither the requested-method mapping nor the carrier mapping resolves one. Leave empty for Shipwire's own rate shopping. |
The envelope can lie about success. Shipwire wraps every
reply as {status, message, resource, errors} and can return HTTP 200
while reporting a failure in the envelope's own status. The connector
validates the inner status as well as the HTTP one - without that, a
rejected order would be recorded as synced with no remote order behind
it.
Orders upsert on the order number. An amendment re-sends the order under the same reference rather than creating a duplicate. Shipwire refuses once the order has been picked; that refusal is surfaced verbatim and follows your remote-cancel policy.
Available, not on hand. Stock sync reports Shipwire's good
quantity less what is already committed (pending).
Returned is still despatched. A Shipwire order in returned status
did ship, so the outbound leg maps to Despatched; the goods coming back
are handled by the returns flow.
| Symptom | Cause and fix |
|---|---|
| 401 on every call | The key does not match the Environment. Sandbox and production keys are not interchangeable. |
| "Shipwire rejected the request (status 400)" | The envelope reported a validation failure - the message names the field. Common cause: a SKU that does not exist at Shipwire yet. |
| Stock returns nothing | The warehouse mapping's remote code is not a Shipwire warehouse id or region code. Check the dashboard. |
| Order cancel refused | Shipwire has already picked it. Contact Shipwire directly. |
| No lot numbers on stock | Expected - the v3 stock API carries no lot or expiry detail. |
Part of the LataSys 3PL Connector. Support: support@latasys.com | Help Center