Odoo 3PL
List Shipping Method Mappings
Returns the mapping editor payload for this integration.
Sync Shipping Methods
Refresh the carrier catalog from Odoo 3PL, then auto-link any unmapped carriers to SKU.io shipping methods whose name matches. Returns how many carriers were fetched and how many were auto-matched. Requires a Bearer token.
Export Shipping Method Mappings
Downloads the current mappings as a re-importable CSV, one row per non-archived shipping method.
Import Shipping Method Mappings
Applies mappings from a CSV keyed on the shipping method.
Auto-Match Unmapped Shipping Methods
Links still-unmapped shipping methods to the Odoo 3PL carrier whose name matches, ignoring case, spacing and punctuation. Never overwrites an existing mapping, so it is safe to re-run after a sync.
Bulk Map Shipping Methods
Points many shipping methods at one Odoo 3PL carrier in a single call, or clears them all.
Map Shipping Method
Sets or clears the Odoo 3PL carrier that one shipping method dispatches through.
Get Shipping Routing
Shipping routing decides which Odoo 3PL carrier a fulfillment order dispatches with. Four layers resolve in order, first match wins:
Set Carrier Family Default
Layer 2 — set the default Odoo 3PL carrier for a whole shipping-carrier family. This is what makes a large catalog routable before any order exists.
Set Shipping Method Override
Layer 1 — pin one shipping method to a specific carrier, overriding its family. Send `odoo_3pl_shipping_method_id: null` with `suppress: false` to remove the override and inherit the family again.
Add Text Rule
Layer 3 — add a rule matched against the free-text shipping method on an order.
Update Text Rule
Layer 3 — update a rule in place. Its position is unchanged. The rule must still either name a `odoo_3pl_shipping_method_id` or set `suppress: true`.
Delete Text Rule
Remove a text rule. Anything it used to claim falls through to the next matching rule, or to the fallback.
Reorder Text Rules
Rewrite the evaluation order. Order is behaviour, not presentation — rules are first-match-wins, so moving one changes which shipments it claims. Send the complete ordered list.
Set Fallback
Layer 4 — what happens when no other layer matched.
List Inventory Levels
Lists the stock Odoo 3PL (ShipPro) reports, one row per product per ShipPro location — rented locations and the bins and docks inside them.
Sync Odoo 3PL Inventory
Queues a refresh of stock levels from Odoo 3PL, one row per product per location (rented locations and the bins and docks inside them).
Test Odoo 3PL Connection (Unsaved Credentials)
Checks a base URL and API key against Odoo 3PL (ShipPro) before you create an instance. Nothing is saved.
Create Odoo 3PL Integration Instance
Connects an Odoo 3PL (ShipPro) account. On success, the initial location, product and inventory syncs are queued automatically.
Get Odoo 3PL Integration Instance
Returns one Odoo 3PL integration instance with its connection details (API key masked as `has_api_key`) and settings.
Update Odoo 3PL Integration Instance
Updates an Odoo 3PL integration instance. This is a partial update (PATCH is also accepted): send only the fields you want to change, and omitted settings keep their current values.
Delete Odoo 3PL Integration Instance
Disconnects an Odoo 3PL account. Deletion runs in the background: the instance's mirrored orders, shipments, products, inventory levels, locations and receipts are removed, then the instance itself. Nothing is deleted at Odoo 3PL.
Test Odoo 3PL Connection
Checks the instance's saved base URL and API key against Odoo 3PL. No body is needed. Returns `connected: true` with the Odoo 3PL customer name and ID, or 422 with `connected: false` and an `error` explaining the failure.
Get Odoo 3PL Dashboard Metrics
Returns the instance's headline counts and per-record-type sync freshness.
List Odoo 3PL Activity Log
Lists the audit trail for the instance and its orders, newest first, paginated (15 per page by default).
List Odoo 3PL Locations
Lists the storage locations rented at Odoo 3PL, each with its rental terms and the SKU.io warehouse it is mapped to (`warehouse`, null when unmapped). `is_expired` is true once the rental end date has passed; expired locations are not used as a stock source for orders.
Sync Odoo 3PL Locations
Queues a refresh of the rented locations from Odoo 3PL. Existing warehouse mappings are kept.
Map Odoo 3PL Location to Warehouse
Maps an Odoo 3PL location to a SKU.io warehouse, or clears the mapping. Stock in the location (and the bins inside it) rolls up to the mapped warehouse, and orders from that warehouse ship from this location.
List Odoo 3PL Orders
Lists the fulfillment requests SKU.io has submitted to (or synced from) Odoo 3PL, newest first, with linked SKU.io sales order and fulfillment order, and per-order `tracking` from its shipments.
Sync Odoo 3PL Orders
Queues a refresh of order statuses from Odoo 3PL. Shipped orders create their shipments and tracking in SKU.io; orders cancelled locally keep that state unless Odoo 3PL reports them shipped.
Get Odoo 3PL Order
Returns one Odoo 3PL order with the same fields as the list, plus `json_object` — the order as last received from Odoo 3PL (destination, lines, carrier, etc.).
Get Raw Odoo 3PL Order Data
Returns the order payload exactly as last received from Odoo 3PL, with `details_last_updated` (when it was last refreshed). Odoo 3PL has no single-order lookup, so this is SKU.io's stored copy — run Sync Odoo 3PL Orders to refresh it.
List Odoo 3PL Products
Lists the products in the Odoo 3PL catalog, with stock quantities and the SKU.io product each is linked to (`sku_product`, null when unlinked).
Delete Odoo 3PL Products
Removes mirrored Odoo 3PL products — and their inventory rows — from SKU.io only. Odoo 3PL has no product-delete API, so the products still exist there and the next product sync brings them back unless you delete them in the Odoo 3PL portal.
Sync Odoo 3PL Products
Queues a refresh of the product catalog from Odoo 3PL. New products are matched to SKU.io products by barcode, then SKU, then customer SKU; existing links are kept.
List Pushable SKU.io Products
Lists the active SKU.io products that are not at Odoo 3PL yet — neither linked to an Odoo 3PL product nor matching one by SKU / customer SKU — sorted by SKU. This is the set Push Products to Odoo 3PL creates when called with `all: true`.
Push Products to Odoo 3PL
Queues creation of SKU.io products in the Odoo 3PL catalog. Each product is created with its name, SKU (also sent as customer SKU), barcode and weight, then linked back to the SKU.io product. Products already at Odoo 3PL are skipped rather than duplicated.
Get Odoo 3PL Product
Returns one Odoo 3PL product with the same fields as the list, plus `json_object` — the product as last received from Odoo 3PL.
Get Raw Odoo 3PL Product Data
Returns the product payload exactly as last received from Odoo 3PL, with `details_last_updated` (the product's last sync time). Odoo 3PL has no single-product lookup, so this is SKU.io's stored copy — run Sync Odoo 3PL Products to refresh it.
Map Odoo 3PL Product to SKU.io Product
Links an Odoo 3PL product to a SKU.io product, or clears the link. Use this when the two catalogs use different SKUs; an explicit link always wins over SKU matching. Setting or clearing the link also clears `needs_review`.
Push Product to Odoo 3PL
Creates one SKU.io product in the Odoo 3PL catalog right away (name, SKU — also sent as customer SKU — barcode and weight) and links it back. No body is needed.
List Odoo 3PL Receipts
Lists inbound receipts (stock sent to the Odoo 3PL warehouse), newest first. Receipts are read-only. `state` follows the Odoo receiving lifecycle (`draft`, `confirmed`, `assigned`, `done`, `cancel`). `variance` is received minus expected quantity.
Sync Odoo 3PL Receipts
Queues a refresh of inbound receipts from Odoo 3PL.
Get Odoo 3PL Receipt
Returns one inbound receipt with the same fields as the list, plus `json_object` — the receipt as last received from Odoo 3PL.
List Odoo 3PL Shipments
Lists shipments Odoo 3PL has shipped, newest first, with tracking, carrier, shipping fee, box count, the Odoo 3PL order, and the SKU.io sales order and sales order fulfillment each one created.
Sync Odoo 3PL Shipments
Queues a refresh of shipments from Odoo 3PL. Each newly shipped order is recorded as a sales order fulfillment with its tracking number and, when enabled, its shipping cost.
Get Odoo 3PL Shipment
Returns one shipment with the same fields as the list, plus `json_object` — the shipment as last received from Odoo 3PL.
Get Raw Odoo 3PL Shipment Data
Returns the shipment payload exactly as last received from Odoo 3PL, with `details_last_updated` (when the shipment was last updated). Odoo 3PL has no single-shipment lookup, so this is SKU.io's stored copy — run Sync Odoo 3PL Shipments to refresh it.