Shipwire adapter - setup and reference

Shipwire adapter - setup and reference

What this adapter provides

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).

Prerequisites

  • The 3PL Connector core app, installed and licensed.
  • A Shipwire API key: Account Profile > Users and Roles > add an API user > generate a key.
  • Separate keys for sandbox and production - they are different systems and the credentials are not interchangeable.
  • Your Shipwire warehouse ids or region codes from the dashboard.

Installation

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.

Connection setup

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.

Mappings

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.

Shipwire Options tab

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.

Provider-specific behaviour

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.

Troubleshooting

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