The remaining Sync Settings sections: returns, multi-company, inbound and stock, operational limits, provider-specific options, background jobs and housekeeping.
Damaged Returns Location. Where returned stock graded non-restockable by the warehouse is received. Leave empty and the connector creates a Returns - Damaged internal location under the mapped warehouse the first time it is needed, then remembers it here. Point it at your own location if you already operate one. Restockable lines always go to normal sellable stock. See Returns for how grading works.
Credit Notes on Returns (default Create a draft credit note). Whether booking a return receipt also raises the draft credit note described in Returns (one per order, only when the order has a posted invoice). Set Never create credit notes where accounting raises credits themselves. The default is the previous behaviour.
Non-restockable Keywords (default damage,dispose,scrap,
quarantine,reject,faulty,unsellable,destroy,write off,writeoff).
The comma-separated words looked for in the 3PL's return grade or
action text - a match routes the returned stock to the Damaged
Returns Location instead of sellable stock. Extend the list to match
your warehouse's vocabulary (add "grade c", for example, if that is
what they write on write-offs); the per-line Restockable tick on the
RMA can always override the keyword result before processing.
Allow Products and Lots to Be Multi-Company (default off; app Settings, not per-instance). In Odoo, a product or lot/serial that carries a Company is usable only in that company - the same batch number cannot be received in one company and despatched in another. With the Company left empty, the record is shared across all companies, which is the setup a 3PL warehouse serving several companies needs.
Enabling this unlocks Configuration > Align Multi-Company Products & Lots (administrators only): a bulk check-and-fix that clears the Company on products and lots so the same SKUs and batch numbers work everywhere. It previews the counts first, skips combinations Odoo cannot share (the same lot number existing separately in two companies, duplicate barcodes) and reports them for manual merging, and writes a full summary to the Sync Log (flow: Support). Re-run it whenever you like - for example after onboarding new products or receiving new batches - to keep the setup aligned.
Exclude Return Receipts from ASNs (default off; shown with the LataSys 3PL Connector: Inbound companion app on providers that take ASNs). With ASN sending on, every open incoming transfer at a mapped warehouse is announced to the 3PL - including the receipts Odoo's return wizard creates for customer returns. Turn this on to skip return receipts: returns already reach the warehouse through the returns flow, and announcing them a second time as inbound deliveries confuses their booking-in. See ASNs and GRNs.
Stock Master (default 3PL is Master). The single most important inventory decision. 3PL is Master: inventory syncs set Odoo's stock to match the warehouse count, using native, fully-auditable inventory adjustments, batch by batch. Odoo is Master: syncs never change Odoo stock - every difference is recorded as a discrepancy line on the sync report for a person to resolve. Example: most 3PL businesses run 3PL-master (the goods physically live there). Run Odoo-master temporarily during a stock dispute: you keep full visibility of what the 3PL claims without letting it move your books.
Stock Adjustments (default Apply Immediately). Only meaningful with 3PL-as-master. Apply Immediately: differences become posted inventory adjustments during the sync. Leave as Counted Quantities for Review: differences are staged as counted quantities in Inventory > Physical Inventory where a stock controller applies or rejects them - a half-way house that keeps human sign-off while the 3PL still supplies the numbers.
Sizing knobs for large operations. The defaults suit most businesses and preserve the behaviour of earlier releases - change them only with a reason (a rate-limited API, an enormous open-order book).
Review Responsible (default empty). The user assigned the review activities this instance raises - 3PL cancellations to decide on, receipts awaiting validation, unmatched returns. Left empty, each activity goes to the order's or receipt's own responsible, falling back to the user running the sync. Set it to give one person a single to-do list for everything this 3PL needs a human for.
Orders per Push Run (default 200). Maximum orders sent in one order-push run; the next run picks up where this one stopped, oldest first, so nothing is skipped - just spread across runs.
Orders per Status Poll (default 500). Maximum open orders checked in one status-poll run.
HTTP Timeout (s) (default 30). Seconds to wait for the provider's API before a call is recorded as failed (and retried by the normal flow). Raise it only if your 3PL's API is genuinely slow to answer.
Shown below Operational Limits on Sprint instances. Every default preserves the previous behaviour.
Default Service Level (default Standard).
The ServiceLevel sent on outbound orders when the order's requested
delivery method is empty and no requested-method mapping matches.
Mapped values always win - this is only the fallback.
Return Parcels (default 1). Number of parcels (NOP) declared on Sprint return labels.
Return Label Format (default PDF). Label format requested from Sprint's return-label endpoint: PDF, ZPL (thermal printers) or PNG.
Default Return Courier (default empty). The CourierId sent on return labels when the return has no mapped carrier. Leave empty to let Sprint choose.
Shown below Operational Limits on ShipHero instances (Customer Account ID sits with the connection fields). Every default preserves the previous behaviour.
Customer Account ID (default empty). Only for ShipHero 3PL master accounts - resellers who authenticate as the master account and act for a client. Enter the client account this instance acts for: it is sent with every order, product, return and purchase order call, and reads are filtered so this instance only sees that client's data. Leave empty on a normal (non-3PL) ShipHero account - the key is then omitted from every call.
Fallback Carrier (default Cheapest) and Fallback Service
(default Standard).
Sent on outbound orders when neither the carrier mapping nor the
requested-method mapping resolves a service. Cheapest lets ShipHero
rate-shop.
Order Tags (default empty). Comma-separated tags added to every order sent to ShipHero, alongside the customer reference - useful for the warehouse's own automation rules.
Return Carrier (default generic) and Return Service (default
ground).
Used on return labels when the return has no mapped carrier. generic
produces an unbranded label.
Return Weight (default Fixed box dimensions) and the return box fields (weight, length, width, height - default 1.0 each). Where the return parcel's declared weight comes from: the fixed box below, or Sum of product weights to total the returned products' weights (falling back to the fixed weight when the products have no weight set). The weight is in the unit of the ShipHero account, usually lbs.
Returns Window (days) (default 0). Only fetch returns created in the last N days on each returns poll. 0 sweeps the full return history every poll - fine on new accounts, slow on accounts with years of returns; set 30 or 60 once history no longer changes.
Shown below Operational Limits on Amazon MCF instances.
Default Shipping Speed (default Standard).
The speed category (Standard, Expedited or Priority) sent when
neither the requested-method mapping nor the delivery-method name
decides one.
Create Orders On Hold (default off). Submits orders with fulfilment action Hold: Amazon reserves the stock for up to 14 days without shipping. Release each order with its Release button (an order never released is cancelled automatically). See Orders and despatch.
Fulfilment Policy (default empty). How Amazon handles partial availability: Fill or Kill (ship complete or cancel), Fill All (ship everything, wait for stock) or Fill All Available (ship what is there). Empty uses Amazon's default (Fill or Kill).
Default Order Comment (default Thank you for your order.).
Shown on the packing slip when the order carries no delivery
instructions.
Notification Emails (default empty). Comma-separated addresses Amazon notifies about the shipment (sent on every order).
Blank Box (default off). Requests unbranded packaging (BLANK_BOX) on every order.
Block Amazon Logistics (default off). Requests that Amazon's own last-mile carrier is not used (BLOCK_AMZL) on every order.
Signature on Delivery (default off). Requests signature confirmation on every order.
Stock Measure (default Fulfillable quantity). Which FBA quantity syncs into Odoo: Fulfillable is what can be picked, packed and shipped today; Total includes inbound and reserved stock. See Inventory sync.
Default Return Reason Code (default empty). The Amazon return reason code used when registering customer returns. Codes are marketplace-specific - see Amazon's return reason code list for your marketplace. Must be set before creating MCF returns (see Returns).
Run Flows as Queue Jobs (default off).
With the OCA queue_job module installed on a Linux server, each
operation (each order push, each status checkā¦) runs as an individual,
deduplicated background job instead of inline in the scheduler -
better throughput and isolation for high volumes. The switch explains
itself honestly: it is inert on Windows hosts (the OCA job runner is
POSIX-only) and hidden when queue_job is not installed. Failures
still land in the Sync Log with one-click retry either way.
When queue_job is installed, Operations > Background Jobs lists
the connector's own queue jobs (its l3pl channel) - state, attempts,
errors and retries - and the instance's Background Jobs section gains
a View 3PL Queue Jobs shortcut to the same list.
What runs as queue jobs when the switch is on: each order send, each status check, each stock sync (per warehouse), each product and supplier push, and the returns sweep (one job per instance). Every enqueued unit also leaves a Queued entry in the Sync Log that completes when its job runs. Interactive operations deliberately stay inline - connection tests, product matching, order cancellations and the migration tools - because you are waiting on their result.
Keep Logs (days) (default 90). Sync Log entries older than this are deleted nightly. Set 0 to keep everything forever. Chatter history on instances, orders and returns is never touched by this - only the technical API log.