Everything you need to connect the LataSys 3PL Connector to James and James Fulfilment via the ControlPort Client API v2: prerequisites, connection setup, mappings, capabilities and provider-specific behaviour.
| Flow | Supported |
|---|---|
| Order push and despatch write-back | Yes |
| Order amendment and hold/release | Yes (state-gated by ControlPort) |
| Order cancellation | Yes (until the order is labelled) |
| Inventory sync (batch/lot level) | Yes |
| Product match and push | Yes |
| Supplier push | Yes (ControlPort expects a supplier on ASNs) |
| ASNs / GRNs | Yes (goods-in polled; detail arrives on the ASN callback) |
| Returns (registration and discovery) | Yes (no label from the API - see below) |
| Warehouse list fetch | Yes |
| Carrier/services list fetch | Yes (per warehouse) |
| Proof of delivery | No - not offered by this provider's API |
| Webhook registration | No API - see Callbacks below |
Install the LataSys 3PL Connector: James and James (ControlPort) Adapter module. The provider then appears in the provider list when creating a 3PL instance, along with its provider card (API operations reference) under Configuration - Providers.
Authentication is a bearer token: every request carries
Authorization: Bearer <encoded token>. On the instance's Connection
tab:
https://api.controlport.co.uk for every
environment (ControlPort has no separate sandbox host); override
only if James and James gave you a different host.preferred_carrier_id. Note ControlPort may ignore the
preference if that carrier has no suitable service for an order.despatched triggers the despatch write-back.postage_speed, a carrier id becomes
its preferred_carrier_id. Unmapped values fall back to a keyword
heuristic, then to ControlPort's default (Standard).| Field | What it does |
|---|---|
| Channel Account ID | The approved E-Commerce Channel Account (ControlPort Settings - Channels) orders are pushed to. Required - order pushes fail with a clear error until it is set |
| Tracked Delivery | Request a postage method with carrier tracking events on every order |
| Signature on Delivery | Request a postage method requiring a signature at the point of delivery on every order |
| Send Callback URLs | Attach this instance's webhook URL as the callback_url on every order and ASN, so despatch/return/goods-in events push back instantly |
ControlPort has no webhook-registration API. Two complementary routes:
Either way, inbound events trigger a targeted re-check of the referenced record; scheduled polling remains the safety net.
00000000 placeholder when unset), a
customs description (the product name, trimmed to 40 characters)
and an alpha-3 country of origin (converted from the product's
origin country, falling back to the company country).returned; quantities
are taken from the despatched parcels, as the REST API does not
expose per-line received-return figures - the Order Return callback
carries the authoritative event.booked_in marks the delivery complete and
books the announced quantities; the received/discrepancy breakdown
(stockable vs unstockable) only travels on the ASN Update callback.| Symptom | Likely cause |
|---|---|
| "credentials missing" on every flow | Encoded bearer token not pasted into the API Key field |
| Connection test fails with 401 | Token not encoded per ControlPort's recipe - re-check Settings - API Authentication in their portal |
| Order push fails with "Channel Account ID" | Set the approved channel's numeric id on the ControlPort Options tab |
| Order push lists missing SKUs | Push the products to ControlPort first (Product Sync / Push Products) |
| Order rejected as out of stock | ControlPort rejects lines that are out of stock unless pre-orders are allowed on the channel |
| ASN push fails about warehouse mapping | Map the Odoo warehouse to its numeric ControlPort warehouse id |
| Lots missing from stock sync | Switch on the instance's lot tracking option - batch numbers are resolved via the Batch API only when it is on |
See also: James and James (ControlPort) adapter - process maps for the end-to-end flow diagrams.
James and James, James and James Fulfilment and ControlPort are trademarks of their respective owner; the names are used solely to identify the service this module interoperates with.