How an Odoo Amazon connector fits between your marketplace and your books
An Odoo Amazon connector takes orders, stock levels and sales records from your marketplace accounts and places them in Odoo, so Inventory and Accounting work from one set of records. Before design starts, confirm the integration method in Odoo's documentation and in the connector's own listing, because the supported marketplaces, fulfillment methods and data objects are defined by the module version you choose. This page does not invent connector features, so treat every capability described here as a question to verify against the current module. At a high level, three functions shape the design. Order import brings marketplace orders into Odoo as sales records. Stock sync moves quantities in the other direction, so listings reflect what Odoo shows as available. Multiple seller accounts let one Odoo database hold credentials for more than one marketplace account or region. For each function, ask the connector's publisher which events trigger an import, how often syncs run, whether stock flows one way or both ways, and how the module behaves when the same product exists in several accounts. Fulfillment method changes the flow more than any other setting. With Fulfillment by Amazon (FBA), Amazon holds the stock and ships the order, so Odoo's main job is usually recording the sale and reconciling it with Amazon's reports. With Fulfillment by Merchant (FBM), your own warehouse ships, so Odoo Inventory must reserve, pick, pack and ship the order. Confirm, for each marketplace you sell on, whether the module supports both methods, how it treats FBA inventory, and whether it handles FBM orders through Odoo's delivery process. Map the full path before you configure anything: marketplace order, Odoo sale order, delivery, customer invoice, then payment in Accounting. Mark where marketplace fees, shipping charges, taxes, refunds and returns are posted, because those amounts are often the source of reconciliation gaps. Plan a test run in a copy of your Odoo database, not in production, and check that a single order is imported once even when more than one account feeds the same company.
What you need in place before connecting Odoo to a marketplace
Marketplace connectors depend on decisions in four areas: the Odoo edition and hosting, the seller account and credentials, the Inventory and Accounting setup, and the network path between Odoo and the marketplace. Work through these cards before scheduling a connector build so each dependency is confirmed with the person who controls it.
Odoo edition and hosting
Settle the edition and hosting type before any connector work starts. Odoo's pricing page places Odoo.sh and on-premise hosting on the Custom plan, and states that only Custom includes external API access and custom modules. Marketplace connectors usually need both, so confirm with Odoo that your plan covers the API and module access your connector requires.
Odoo version and support window
Connector modules must match the Odoo version you run, so confirm compatibility with the connector before choosing a version. Odoo's standard support covers the first three years after a major release, and security patches are only provided during standard support. Odoo 19.0 standard support runs until September 2028, so check the end date for your version before committing to a build.
Seller account and API credentials
Each marketplace issues API access to a seller account, and the approval steps, credential types and renewal rules vary by marketplace. Confirm each marketplace's developer or seller API access requirements with the marketplace itself, including who must approve access and how long credentials remain valid. Store the credentials in Odoo with access limited to named administrators, and assign an owner for renewals.
Inventory and Accounting configuration
Marketplace orders create records in Inventory and Accounting, so warehouses, delivery routes, sales journals, tax mappings and product accounts must exist first. Decide which warehouse ships stock for each marketplace, which journal receives marketplace sales, and how marketplace fees and collected taxes are mapped. Test these settings with a small set of sample orders before go-live.
Product SKU discipline
Order import and stock sync match marketplace listings to Odoo products through identifiers, so each SKU must be unique, stable and linked to exactly one product or variant. Audit duplicate, archived and inconsistent SKUs before connecting, and agree who may create or change them. A SKU edited on one side but not the other can route orders to the wrong product or post stock changes to the wrong item.
Network access to marketplace endpoints
The Odoo server must reach each marketplace's API endpoints, so any firewall, proxy or egress rule between them must allow the required traffic. Confirm the protocol, hostnames and ports each marketplace uses, since these can change over time. Test from the same server and network path Odoo uses in production, and have your security team approve the traffic before the connector is enabled.
Confirm which connector, marketplace and fulfillment method you actually need
Start with a written matrix, not an assumption. Before any build estimate, confirm in the Odoo Apps Store listing and in the documentation for your exact Odoo version which marketplaces each connector covers: Amazon, Shopee, Lazada or TikTok Shop, and for each one, which regions. A listing that names a marketplace may not cover every country where you sell. Also confirm whether the connector supports Fulfillment by Amazon (FBA), merchant-fulfilled orders (FBM), or both, and how each flow handles order import, stock sync and returns. Ask the publisher to name the regions and fulfillment flows they have tested, and record any answer that is only implied.
Next, confirm the edition and the maintainer. Check whether the connector is published for the Community edition, which is licensed under LGPL-3.0, or for the Enterprise edition, which adds features and requires a subscription. Then identify who maintains it: Odoo, a third-party publisher, or a module from the Odoo Community Association. The maintainer determines who fixes a broken order import after an Odoo upgrade, how quickly security issues are addressed and what release cadence to plan around. Odoo's pricing page also states that only the Custom plan can be hosted on Odoo.sh or on-premise, so check the plan notes that apply to your hosting type before you commit to a connector.
Then confirm how the connector handles multiple seller accounts and marketplaces. Ask whether one Odoo company can hold several seller credentials, whether stock levels can sync per warehouse, and whether orders from each account post to separate sales teams, journals or analytic accounts. These answers drive two architecture decisions. The first is one Odoo database or several. Multi-company support is listed on Odoo's pricing page as a Custom plan feature, so a multi-company design needs confirmation against your plan. The second is one warehouse or several, which determines how stock is reserved, transferred and valued when the same SKU is sold through more than one channel.
Write the answers into a one-page requirements sheet that lists the marketplaces and regions, fulfillment methods, edition, maintainer, Odoo version, number of seller accounts, warehouses and companies. Treat any gap as a scope change. A missing FBM flow, a connector that supports only one seller account, or a maintainer you cannot verify will change the integration work, the test plan and the quote. Ask that the quote name the connector, its version and the Odoo version it was checked against, so that switching connectors later is handled as a documented change request rather than an unpriced rebuild.
Set up the marketplace connection in the order that avoids rework
This sequence builds the foundation first: version and edition, companies and locations, stable product identifiers and test credentials. Each step ends with a check, so marketplace orders reach Inventory and Accounting correctly before more accounts are added.
Confirm the Odoo version and support window
The project lead records the Odoo version, edition, hosting type and the date standard support ends. Odoo's documented standard support windows are the first input: 19.0 runs to September 2028, 18.0 to September 2027, and 17.0 standard support ended in September 2026. Confirm that the marketplace connector you plan to use supports that exact version, and confirm whether multi-company or external API access is needed, since the pricing page ties those features to the Custom plan. Done when a written note lists version, edition, hosting, support end date and connector compatibility, signed off by the client's technical owner.
Configure companies, warehouses and stock locations
The Odoo administrator creates each legal company that will issue invoices, then one warehouse per fulfillment site and the stock locations each marketplace model will draw from. Map fulfilled-by-marketplace stock and self-fulfilled stock to separate locations so that stock movements can be traced later. Keep the location tree in the test database identical to the planned production tree. Done when a test receipt lands in the expected location and the warehouse and location names match the written mapping sheet.
Create products with stable SKUs
The catalog owner decides on one internal identifier per sellable item and records the matching seller SKU for each marketplace listing. Set units of measure, sales and purchase taxes, and the product type that Inventory will track. Do not change identifiers after orders start, because order lines are matched to products by these codes. Done when an export of the product list matches the marketplace listing SKUs one to one, with no duplicates and no products missing tax or unit settings.
Create seller credentials in a test database
The integration engineer duplicates production into a test database and neutralizes the copy, which Odoo documents for test copies. Create the seller API credentials in that test database only, scoped to the minimum access the connector documentation requires. Store the secrets in the client's approved secret store, not in the Odoo record notes. Confirm with the connector vendor how neutralization affects outbound sync before testing. Done when the connector reports a successful authorization for the test seller account and the credentials are recorded in the secret store.
Connect one marketplace and one seller account
Choose a single marketplace and a single seller account for the first connection. Set the default customer, pricelist, sales journal, payment terms, tax mapping and warehouse for that account. Keep the first connection small so any mapping error affects a few records only. Done when the connection status shows as connected, the account appears once in the connector settings, and the mapping sheet matches what the screens show.
Import a small set of test orders
Import a deliberately small batch of marketplace test orders that covers a fulfilled-by-marketplace order, a self-fulfilled order, a multi-line order, an order with the tax rate used in production and, if the connector supports it, a cancellation or refund. Run the import a second time to confirm behavior on repeat runs. Done when each order appears exactly once in Sales with the correct product, quantity, tax and customer, and the repeat import creates no duplicate orders.
Verify stock movements and invoices
The finance and operations leads check the stock and accounting results of the test orders. For self-fulfilled orders, confirm that stock decreases in the expected warehouse location. For marketplace-fulfilled orders, confirm with the connector documentation how stock is recorded. Then check that invoices post to the right journal with the right tax and totals, and compare the invoice totals with a marketplace settlement report from the test account. Done when every test order's stock movement and invoice matches the expected result on a signed-off checklist.
Add marketplaces and seller accounts
Only after the first connection passes every check, the team adds the remaining marketplaces and seller accounts one at a time. Each new account gets its own credentials, mapping sheet and test batch, and the same stock and invoice checks run again. Repeat the production cutover only after the test checklist is complete for every account. Done when each account has its own signed checklist and no order, product or invoice appears under more than one account.
How marketplace order fields map to Odoo records
This table pairs each marketplace order field with the Odoo object it typically populates and what to check in your test database. Read each row as a question to answer before go-live, because exact field names and object links depend on the connector version and its documentation. The main takeaway is that order identifiers, fees, tax and fulfillment channel decide whether Sales, Inventory and Accounting stay correct, so they deserve the most test time.
| Marketplace field | Odoo object | What to verify |
|---|---|---|
| Order identifier and duplicate prevention | Sales order (sale.order) reference and marketplace order ID field | Re-importing the same order does not create a second sales order or invoice |
| Customer and delivery address | Contact (res.partner), delivery address child contact | Ship-to and bill-to are stored separately and marketplace buyer data is handled under your privacy rules |
| SKU to product variant | Product variant (product.product) and its internal reference | Each marketplace SKU matches exactly one variant, and unmatched SKUs stop the import instead of guessing |
| Quantity and unit price | Sales order lines (sale.order.line) quantity and price unit | Quantities and prices match the marketplace report for a sample of orders, including multi-unit lines |
| Marketplace fees and shipping charges | Order lines for fees and shipping, or fee accounts on the invoice | Fees post to the expense accounts you chose and shipping charges appear on the correct revenue or cost line |
| Tax treatment | Taxes on order lines and the invoice (account.move) | Tax is calculated or collected as the marketplace reports it, and the marketplace marks which party remitted it |
| Fulfillment channel (FBA or FBM) to warehouse | Warehouse (stock.warehouse) and delivery order (stock.picking) | FBA orders do not create outgoing stock moves in your warehouse, while FBM orders reserve and ship from the mapped warehouse |
| Return or cancellation status | Sales order state, credit note (account.move) and return picking | Cancelled orders release reserved stock, and refunds create credit notes that reconcile to the original invoice |
How marketplace orders flow into Inventory and Accounting
Each marketplace order enters Odoo as a sales order, and what happens next depends on how it is fulfilled and how the sale is booked. Import creates the sales order. Confirming that order is the point where the inventory side starts: for merchant-fulfilled (FBM) orders, your team expects stock to be reserved and a delivery order to appear for the warehouse to process. For Amazon-fulfilled (FBA) orders, the stock is held by Amazon, so the Inventory treatment depends on how your team chooses to represent that stock in Odoo. Confirm this choice with your operations and accounting leads before go-live, because it determines which stock moves exist at all.
Stock sync runs in the other direction, pushing available quantities from Odoo to each marketplace. Decide which locations count as sellable, whether reserved quantities are excluded, and how returns and manual adjustments are reflected on the marketplace side. On the accounting side, invoices and the fees, shipping charges and refunds attached to each order must reach Accounting. Settle whether each fee becomes a bill, a journal entry or a line against a clearing account. Then decide who owns each journal: the sales journal, a marketplace clearing journal, the fee expense account and the bank journal that receives payouts. Unowned journals are the most common cause of month-end disputes.
Reconciliation is where marketplace payouts and fees are matched. A payout usually arrives as one bank deposit net of fees, refunds and reserves, so it will not match a single invoice. Your team must decide where the settlement report is matched against bank lines, which clearing account holds the difference until it clears, and who approves write-offs. The bank feed itself is covered on its own page, but the matching rules and the owner of each unmatched item belong in your process design. Name these owners in writing, and make sure the person who posts marketplace entries is not the only person who reconciles them.
Do not assume any of these paths behaves a certain way until you have traced it. Build a set of test orders that covers FBA and FBM fulfillment, a full sale, a partial refund, a cancellation, a return, and each seller account and marketplace you plan to run. Run the set on a test copy of the database, which Odoo documents as duplication with neutralization for on-premise installations. After each step, check the sales order status, stock moves, invoice, journal entries and the reconciliation result. Record which behavior comes from the connector's documentation, which comes from your configuration, and which you still need to confirm with the connector vendor for your Odoo version.
Protecting seller credentials, customer data and stock integrity
A marketplace connector holds keys to your seller accounts, moves customer names and addresses into your database, and changes stock counts that drive what you promise buyers. The controls below address those three exposures in Odoo, and each one needs an owner, a configuration check and a way to show it works.
Storing marketplace API credentials
Seller API credentials for Amazon, Shopee, Lazada or TikTok Shop are stored in Odoo's configuration for each connector account. Decide who can view or edit those records, confirm that the credential fields are hidden from general settings views and reports, and check which exports or debug logs could expose them. Ask the connector vendor or the Odoo Community Association module maintainers which fields are stored encrypted, if any, and confirm this in your own build before go-live.
Least-privilege integration user
Run the connector under a dedicated Odoo user rather than a administrator's account. Grant only the sales, inventory and accounting access needed to import orders, post stock moves and create invoices, and remove rights for settings, user management and module installation. Document the group assignments so a reviewer can compare the role against what the connector actually calls during order and stock sync.
Limiting who changes connector settings
Connector settings control which marketplace account is used, which warehouse receives stock changes, how orders map to products and when sync runs. Restrict edit rights on these records to a named group, and log who changed what. A single unexpected change to a warehouse mapping or sync schedule can move stock or invoices into the wrong books, so treat these records as change-controlled.
Personal data in imported orders
Marketplace orders carry buyer names, shipping addresses, phone numbers and sometimes tax identifiers. Odoo stores these on partner and sale order records, so the data lands in your CRM, invoices and reports. Define which fields the connector must import, who can see partner records, how long order data is retained, and how deletion requests from buyers are handled under the privacy law that applies to your business. Confirm with your legal team which marketplace terms restrict reuse of buyer data.
Audit trail for stock adjustments
Stock sync can create inventory adjustments and moves that change on-hand quantities without a person reviewing them. Enable tracking on the relevant stock and product fields, record the connector user as the author of each move, and confirm that reversals and manual corrections are attributed to a named person. Test the trail by tracing one marketplace order from import through reservation, delivery and invoice, then reconcile it to the marketplace report.
Outbound network restrictions
The Odoo server calls marketplace APIs, and any firewall rules you apply must allow only the endpoints that the connector and the marketplace documentation require. Restrict egress from the Odoo host and its worker processes to those destinations, log denied connections, and review the list when a marketplace changes its API domains. Confirm the exact hostnames and ports with the connector's documentation and your network team, since these are not listed here.
Two-factor and external sign-in
Odoo documents two-factor authentication for users and external sign-in options, including LDAP, Google Sign-In, Microsoft Azure OAuth and Facebook sign-in. Confirm which of these apply to the integration account, because a service account that signs in interactively may need a different treatment than a human user. Check whether your Odoo edition and hosting type support each option, and record the decision in the access design.
Rotating credentials when staff change
When an employee who managed a seller account leaves, or a shared login is retired, the marketplace credentials and the Odoo user tied to them should be rotated. Keep an inventory of which people hold seller credentials, which Odoo users run the connector, and where each secret is stored. Rotate on a schedule and after any role change, and confirm that the marketplace allows you to revoke one key without disrupting order sync for the rest of the team.
Why marketplace orders duplicate, stall or post to the wrong place
This table pairs each symptom seen after connecting Odoo to a marketplace with its most likely cause and a check the team can run to confirm it. Read each row as a starting point for diagnosis, because the check shows whether the cause applies in your environment before anyone changes data. The main takeaway is that most order problems trace back to retries, expired credentials, product matching, account mapping or database copies, and each one can be verified first.
| Symptom | Likely cause | Fix to verify |
|---|---|---|
| Duplicate orders after a retry | A timed-out or repeated import ran again, and the marketplace order reference was not matched to an existing sales order. | Search sales orders for one marketplace order ID. Check the sync log for a retry at the same time, then confirm the reference field is unique before any merge. |
| Orders not imported after credential expiry | Seller API credentials or a refresh token expired, so scheduled imports stopped and may not have raised a clear alert. | Review the date of the last successful sync and the connector error log. Renew credentials, then confirm a manual pull returns recent orders. |
| Orders unmatched because of SKU mismatches | The marketplace listing SKU differs from the internal product code, so order lines cannot link to a product record. | Export unmatched order lines and compare them with the product mapping. Confirm each marketplace SKU maps to exactly one internal product before re-importing. |
| Stock out of sync after manual adjustments | A stock count or manual move in Inventory was not pushed to the marketplace, or the push ran before the adjustment was posted. | Compare on-hand quantities for a few sample SKUs in Odoo and on the marketplace. Confirm the sync schedule and which direction each stock update travels. |
| Wrong warehouse for FBA versus FBM orders | The fulfillment channel was not mapped to the right warehouse, so FBA orders post to a merchant-fulfilled location or the reverse. | Pick one FBA and one FBM order from the same day. Check the warehouse on each order against the fulfillment mapping set for that seller account. |
| Tax or fee postings in the wrong account | Marketplace fees, shipping or tax lines use default accounts when a mapping is missing or incomplete. | Review the journal entry for one sample order line by line. Confirm fee, tax and shipping account mappings with your accountant against the chart of accounts. |
| Orders missing after a database duplication for testing | The test copy kept connector settings or credentials, or was made before the order window, so its order set no longer matches production. | Confirm the copy's marketplace credentials are disabled or pointed at a sandbox. Odoo documents neutralization for test copies, so verify which connector settings it clears. |
Questions teams ask before they connect Odoo to a marketplace
How much does an Odoo marketplace integration cost and what drives it?
No published price covers a marketplace integration end to end, so the cost follows from a written scope. Start with licensing: confirm which Odoo app or connector each marketplace needs, whether it is paid, and which edition it runs on. Odoo's pricing page says only the Custom plan can be hosted on Odoo.sh or on-premise, and that Custom includes external API access and custom modules, which marketplace connectors may depend on. Then price the work: the number of marketplaces and seller accounts, product and category mapping, tax and fee rules, test volume and hosting. Ask for a quote that separates one-time build and testing from recurring items such as licenses, hosting and maintenance retainers. Also ask which costs the connector vendor charges and which the implementation partner charges.
How long does connecting Odoo to a marketplace take?
The duration depends on scope, and no fixed timeline applies to every marketplace. The main drivers are the number of marketplaces and seller accounts, whether fulfilled-by-marketplace and merchant-fulfilled orders both flow through, how complex the product and stock mapping is, and how many accounting rules must match Inventory and Accounting. Two timing risks sit outside your control: marketplace account approval and API credential issuance, and the availability of a test environment. Ask for a schedule with milestones, named dependencies and a testing phase that covers returns, cancellations and partial shipments. A schedule that does not show who provides access and data, and when, is incomplete.
Can an in-house team connect Odoo to a marketplace themselves?
Often yes, if the team has the right skills and time, but the decision should be based on a skills review rather than enthusiasm. The work needs Odoo functional knowledge across Sales, Inventory and Accounting, enough technical depth to read and adjust connector code or custom modules, and familiarity with the marketplace's seller and API documentation. Testing discipline matters most: accounting errors often surface only after a month-end close. Your team also needs to own upgrades, since each major Odoo version changes module compatibility. Compare the internal cost of staff time, delayed launch and ongoing ownership against a fixed-scope engagement with a written quote.
What does a marketplace integration need from our team?
Your team supplies access, data and decisions before the build starts. Access includes seller accounts with the roles the integration requires and the API credentials the connector uses. Product data includes SKUs, identifiers, categories, prices and stock locations, cleaned up before import. Accounting rules must be documented: tax treatment, marketplace fees, payout and settlement handling, revenue and clearing accounts, and currencies. You also need a test environment. On-premise Odoo databases can be duplicated for test copies with neutralization, and the marketplace may offer a sandbox or test seller account, which you should confirm. Name one owner for each input, with a date, so testing does not wait on decisions.
Can we replace a marketplace connector later without rebuilding everything?
It can be replaced, but the effort depends on how the first connector was built and documented. A replacement is easier when field mappings are written down, order and payout references are stored in Odoo, and custom code is separated from the connector's own logic. It is harder when order history, fee postings and stock movements were created with settings nobody recorded. Before you commit, ask for a mapping document, a list of custom modules and their owners, and a data export plan that keeps marketplace order identifiers linked to Odoo records. Confirm with the connector vendor whether it can be removed without deleting historical entries.
How do Odoo upgrades affect a marketplace connector?
Every major Odoo upgrade can change the modules a connector depends on, so each upgrade needs a compatibility check before production. On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years according to Odoo's upgrade documentation. On-premise use of the upgrade service requires an Enterprise subscription, and Community has no access to that service. Standard support covers Odoo 19.0 until September 2028 and Odoo 18.0 until September 2027, while Odoo 17.0 standard support ended in September 2026. Plan the connector's version against those dates, test the upgraded database before production, and confirm with the connector vendor which Odoo versions it supports.
What usually goes wrong with Odoo marketplace order sync?
Most failures come from data that does not match between the marketplace and Odoo. Typical problems include duplicate order imports when a sync retries, SKUs that differ by a character or suffix, and stock levels that lag behind marketplace listings, which can cause overselling. Tax and fee amounts often differ from what the accounting rules expect, creating unreconciled items at payout. Cancellations, returns and partial shipments need their own handling, and expired tokens or API rate limits can stop a sync silently. Check each of these in testing, add alerts for failed imports, and confirm the exact behavior with the connector documentation, since connectors differ in how they handle these cases.
How DeployOpen scopes and delivers an Odoo marketplace integration
DeployOpen plans Odoo marketplace connectors as a fixed-scope project, starting with the seller accounts, marketplaces and order flows your business needs. Each step is written down, tested in a non-production copy of your database and handed over with documentation your team can run. Scope and delivery are agreed in writing before work begins.
How we scope
- The written scope lists each marketplace, seller account, fulfillment model and order flow into Inventory and Accounting.
- We confirm which Odoo edition and hosting plan your chosen connectors need, since Odoo's plans differ on hosting and custom modules.
- Engagements are fixed-scope, and ongoing support is available as a retainer once the connectors are live.
How we build
- We map stock sync rules, including which warehouse and location each marketplace draws from and writes back to.
- We build custom modules only on a hosting tier that allows them, then test them on a neutralized database copy.
- We test FBA and FBM order paths separately, including cancellations, returns and partial shipments.
How we hand over
- We document seller account setup, credential ownership and the order-to-invoice flow in Accounting.
- We deliver a runbook covering failed order imports, stock mismatches and marketplace API credential rotation.
- We train operations and finance staff to reconcile marketplace payouts against their Accounting entries.
How we support
- We agree in writing which connector fixes, upgrades and marketplace API changes the support covers.
- We plan each Odoo version upgrade around a tested upgraded database that is checked before it reaches production.
- We offer ongoing support, upgrades and continuous testing as a retainer after go-live.

