James and James (ControlPort) adapter - process maps

James and James (ControlPort) adapter - process maps

How every flow in the LataSys 3PL Connector runs when the James and James (ControlPort) adapter is installed. Transport: REST/JSON Client API v2 over HTTPS. Auth: Authorization: Bearer <encoded token> (API key generated in ControlPort Settings, encoded per their recipe). Warehouses, products, carriers, batches, orders and ASNs are keyed by ControlPort's integer ids.

Shared behaviour for every flow below:

  • Triggers - the scheduler (per-instance cadences on the Synchronisation tab), the Run-an-Operation wizard, per-record buttons, or the inbound webhook.
  • Logging - every run writes a Sync Log entry: full request and response (URL, headers with credentials redacted, body), every Odoo action taken, and every record touched. Errors are retryable from the log entry.
  • Watermarks - each flow stamps its last-run time on the instance; the scheduler only fires when the cadence has elapsed.
  • License - flows pause if the licensing service reports the installation suspended for non-payment.

1. Connection test

Trigger Test Connection button (instance form)
Calls Warehouse List (also surfaces the warehouse ids to map)
Outcome Draft instance moves to Connected; failure logged with the full HTTP exchange

2. Order push

Process diagram

Trigger Cron (order cadence), wizard, auto-send on confirmation
Direction Odoo -> ControlPort
Data sent Recipient and billing contacts (name, phone, address, country name, postcode); ControlPort product ids with quantities and prices; postage speed / preferred carrier from the mappings; tracked / signed-for flags; hold flag; callback URL when enabled
Odoo records 3PL Order binding (pending -> sent)
Failure Retryable Sync Log error; nothing partially written

3. Status poll and despatch write-back

Process diagram

4. Order amendment, hold and cancellation

Amend Order Update (PATCH) rebuilt from the current Odoo state - items/billing/warehouse editable until picking, address/speed/flags until labelled; later attempts are rejected by ControlPort and logged
Hold / Release Order Update with the hold boolean (editable until picking)
Cancel Order Cancel - pending orders are deleted, processing orders return to stock, labelled orders can no longer be cancelled

5. Inventory sync

Process diagram

6. Product match and push

Match Fetch the ControlPort product master (id, SKU, name, barcode); match Odoo products by SKU, then barcode; create bindings
Push Product Create with the required customs trio: harmonised code (8-10 digits from the HS Code, placeholder when unset), customs description (product name, 40 chars) and alpha-3 country of origin
Update Product Update (PATCH by ControlPort product id) when the SKU already exists

7. Suppliers

Push Supplier Create (name + full contact); updates PATCH the bound supplier in place
Why ControlPort expects a supplier on ASNs - push vendors before announcing their deliveries

8. ASNs / GRNs

Process diagram

9. Returns

Process diagram

Tracked return labels are a separate ControlPort feature (per-account, enabled by their customer service) and are not produced by this flow.

10. Carrier and status setup

Fetch Warehouses Warehouse List -> numeric ids for the warehouse mappings
Fetch Carriers Services List per warehouse -> carrier ids (preferred_carrier_id) with nested services
Requested methods Postage speeds 0-3 plus carriers, for the requested-method mapping
Status defaults Load Missing Defaults seeds ControlPort's status vocabulary with canonical meanings

11. Callbacks (inbound)

Endpoint Per-instance URL with a cryptographically random secret token
Registration None at ControlPort - paste the URL into their portal settings (account-wide) and/or enable Send Callback URLs (per order/ASN)
On event Payload logged; a targeted status / GRN check runs for the referenced record - polling remains the safety net

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.

    • Related Articles

    • James and James (ControlPort) adapter - setup and reference

      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. What this adapter provides Flow ...
    • ShipHero adapter - process maps

      How every flow in the LataSys 3PL Connector runs when the ShipHero adapter is installed. Transport: GraphQL over HTTPS. Auth: Bearer JWT with refresh - enter the developer-user email/password (the adapter obtains and refreshes tokens itself) or paste ...
    • MintSoft adapter - process maps

      How every flow in the LataSys 3PL Connector runs when the MintSoft adapter is installed. Transport: REST v1 over HTTPS. Auth: the MintSoft username/password are exchanged for a 24-hour API key (POST /api/Auth), cached ~23h and sent as the ms-apikey ...
    • ShipBob adapter - process maps

      How every flow in the LataSys 3PL Connector runs when the ShipBob adapter is installed. Transport: ShipBob Developer API 2026-07 (REST/JSON) over HTTPS - api.shipbob.com, or sandbox-api.shipbob.com on sandbox instances. Auth: Personal Access Token as ...
    • Huboo adapter - process maps

      How every flow in the LataSys 3PL Connector runs when the Huboo adapter is installed. Transport: Huboo public REST API v2 over HTTPS (https://api.huboo.uk/v2; a sandbox base URL, if issued during Huboo onboarding, goes in the instance's Base URL ...