Odoo ERP implementation: inventory, orders and accounting in one place
When orders arrive from Shopify, Amazon and Faire, stock sits in a 3PL and the books live somewhere else,
every number is a reconciliation exercise. An ERP fixes that only if the integrations are designed honestly:
which data syncs, in which direction, and how often.
We implement and manage Odoo for product businesses selling across Shopify, Amazon, wholesale and retail.
Odoo 19's native connectors cover Shopify (orders, products, inventory, fulfillment, returns, refunds) and
Amazon (FBA and FBM orders, FBM stock). Both sync on schedules, not in real time.
Faire orders reach Odoo through Shopify, using Faire's Shopify order sync, tagged so wholesale revenue stays
separate.
Among Odoo's paid plans, Studio, multi-company, the external API, and Odoo.sh or on-premise hosting need the
Custom plan — which affects integration design.
Odoo 19 introduced a JSON-2 API; the older XML-RPC and JSON-RPC endpoints are scheduled for removal in Odoo
22 (fall 2028), so new integrations shouldn't be built on them.
No Odoo case study is published on this site yet; judge us on the integration work that is.
Who this is for
Product brands that have outgrown spreadsheets plus an accounting app.
Multi-channel sellers whose stock counts disagree between Shopify, Amazon and the warehouse.
Brands using a 3PL who need purchase orders, receipts and stock movements in one system.
Businesses selling both wholesale and direct-to-consumer that need clean revenue by channel.
Existing Odoo users facing a version upgrade with custom modules nobody maintains.
What's included
Process and data design. One owner for each kind of data, written integration specs, and the
inventory decisions below agreed before anything is configured.
Configuration. Inventory, purchasing, sales, accounting and the channel connectors set up in
a test database first.
Data migration. Products, customers, vendors, opening stock, open orders and opening
balances, with counts reconciled at every step.
Integrations. Native connectors where they exist, and custom integrations on the JSON-2 API
where they don't, with API keys scoped to a dedicated integration user.
Go-live and training. A parallel run, cutover at a period boundary, and role-based training.
Ongoing management. Connector monitoring, key rotation, and version upgrades tested before
production.
How an Odoo implementation runs
Discovery
Products and SKUs, warehouses, channels, purchasing, fulfillment, chart of accounts, and every spreadsheet
currently holding the business together.
Design
One owner for each kind of data. Inventory belongs to Odoo; each integration gets a written spec of
direction, frequency and failure handling.
Data migration
Products and SKUs first, then customers and vendors, opening stock and open orders — with counts reconciled
at each step.
Configure and connect
Apps, routes and connectors set up in a test database, with real orders replayed through each channel.
Parallel run
Old and new processes run side by side until stock, orders and totals match.
Go-live and support
Cutover at a period boundary, role-based training, then ongoing management including version upgrades.
ERP mistakes we design out
The same orders imported twice through two routes — common with Faire orders arriving via Shopify and a
separate import.
Assuming connectors are real time. With a ten-minute order cycle, fast-selling stock can oversell unless
buffers are set.
SKUs that don't match across Shopify, Amazon and the warehouse.
Customizing with Studio before the standard processes have been tried.
Choosing the Standard plan, then discovering a 3PL integration needs the external API.
A new integration built on XML-RPC in 2026, with a removal date already published.
Two systems both believing they own inventory.
Going live in the last week of the month.
Odoo editions and plans, in plain terms
Odoo comes in two editions:
Community, which is open source, and Enterprise, which is licensed and built on top of Community.
On Odoo's pricing page, subscriptions
are per user per month across three tiers: One App Free (a single app, unlimited users, on Odoo Online),
Standard (all apps on Odoo Online) and Custom (all apps, plus Odoo Studio and agentic AI, multi-company, the
external API, and hosting on Odoo.sh or on-premise). Odoo's FAQ notes that installing Studio or adding companies
moves a paid database to Custom, and that Odoo.sh hosting costs are billed on top. Three more details shape most
projects:
"External API" means another system calling Odoo. Odoo defines it as external software
initiating API calls into Odoo to query or update data. Calls that Odoo initiates — to payment providers,
carriers or bank feeds — are part of the standard plan. If your 3PL or a custom tool needs to push data into
Odoo, plan for the Custom tier.
Portal users don't count as paying users. Customers and suppliers viewing invoices on the
portal, and shoppers placing website orders, are free; anyone working in the backend is a paid user.
Implementation isn't included. Odoo says small companies (under 50 employees) usually work
directly with Odoo through Success Packs, mid-size companies usually work with a partner, and companies over
250 employees can contact Odoo directly.
Orders, products, customers, returns and refunds into Odoo; inventory and fulfillments both ways;
marketing UTMs stored on the order
Scheduled actions, not webhooks: orders every 10 minutes by default, stock pushed after each order pull.
Returns started in Shopify only sync when deliveries are handled in Shopify.
Confirmed FBA and FBM orders into Odoo; FBM shipment confirmation and available FBM quantities back to
Amazon; multiple seller accounts and marketplaces
Requires a paid Amazon seller account (setup docs). Fee reports, disputes and refunds stay in Seller Central.
Accepted Faire orders flow to Shopify, then into Odoo with the rest of your Shopify orders
Tag Faire orders in Shopify so they stay identifiable as wholesale. Never also import Faire orders
directly, or revenue doubles.
3PL / warehouse
The 3PL's API, EDI, or file exchange
Receipts, shipments and stock adjustments
Decide whether Odoo pulls or the 3PL pushes. Pushing into Odoo counts as external API use. Retail and 3PL
partners often still exchange X12 EDI documents such as 850 purchase orders and 856 ship notices.
Accounting
Odoo Accounting, or a sync to your existing package
Invoices, payments, journal entries
Migrate opening balances at a period boundary, not mid-month.
The API and upgrade rules that outlast go-live
Building on the JSON-2 API
Odoo 19 documents a new
External JSON-2 API, and states that the XML-RPC and JSON-RPC endpoints are scheduled for removal in Odoo 22, in fall 2028. Three
details from that documentation change how we build:
Authentication uses API keys sent as bearer tokens, and keys can't last more than three months, so every
integration needs a rotation routine and an owner.
Each call runs in its own database transaction. Multi-step operations such as reserving stock and confirming
an order can't be chained atomically, so integrations have to check state between calls.
Calls run with the permissions of the key's user, so each integration gets its own least-privilege user and
key, which also makes auditing and revoking simple.
Planning for upgrades
Per Odoo's
upgrade documentation, each major version is supported for three years. On Odoo Online, major-version upgrades become mandatory
every two years and run automatically if you don't act by the deadline. A database with custom modules can't be
upgraded until those modules are ported to the new version, and Odoo's upgrade service covers standard apps and
Studio customizations but not third-party or partner-built modules without a maintenance contract. Upgraded test
databases also disable scheduled actions and outgoing email, so connectors have to be tested deliberately rather
than assumed to work. This is why we keep custom code to a minimum and check the
Odoo Community Association for a
maintained module before writing one.
Inventory decisions that shape the build
Most of an ERP's long-term value is decided in a handful of early choices. We make them explicitly, in writing,
before configuration starts:
Warehouses and locations. Your own stockroom, each 3PL and Amazon FBA modeled as separate
locations, so "available to sell" is calculated per channel instead of guessed.
Product structure. Variants for size and color, one SKU per sellable unit, and the same SKU
used on every channel so connectors can match products automatically.
Units of measure. Wholesale case packs and retail eaches defined as units of the same
product, so a Faire order for two cases deducts the right number of units.
Lot and serial tracking. Switched on only for products that genuinely need traceability, such
as batches with expiry dates; it adds a scan to every movement.
Replenishment. Reordering rules from real lead times and sales velocity, with buffers sized
for the connector sync interval.
Costing method. Standard, average or FIFO costing agreed with your accountant before the
first receipt, because changing it later means revaluing stock. If you report under IFRS, note that
IAS 2
doesn't permit LIFO.
Why we're cautious about go-live
ERP cutovers fail loudly. In
Harvard Business Review, Bent Flyvbjerg and Alexander Budzier describe Levi Strauss's move to a single SAP system: a project budgeted
at under $5 million left the company unable to fill orders, closed its three U.S. distribution centers for a
week, and ended in a $192.5 million charge against earnings. Your project will be far smaller, but the failure
modes are the same. Our go-live checklist:
Every channel has replayed real orders in the test database, including a return and a refund.
Stock counts in Odoo match a physical count, by location, the day before cutover.
Open purchase orders and unshipped sales orders are migrated and reconciled line by line.
Opening balances are signed off by your accountant for the period start date.
A tested database backup exists, and someone has restored it at least once.
Every integration has an owner, a key expiry date and an alert if it stops syncing.
Pricing and engagement
A fixed-fee discovery, then a fixed-scope implementation quote, then optional monthly
management. Your Odoo subscription is billed by Odoo. The main cost drivers are the number of channels and
integrations, data volume and cleanliness, and how much customization your processes truly require. Per our
pricing page, there are no percentage fees and no long contracts.
There's no Odoo case study on this site yet, so here's the published integration work you can judge us on. In
the Squeaky Clean Turf migration we moved customers, order history and products from WooCommerce to Shopify with
counts reconciled, surfaced live subscriptions for a human decision rather than migrating billing silently,
built a custom Merchant Center feed from live Shopify data, and wired orders into the CRM. The same habits —
inventory everything, one owner per data type, verify with real transactions — are how we run an Odoo project.
Community is open source and fine for simpler setups if you self-host and support it. Enterprise adds licensed
apps, hosting options and Odoo's support. If you need native marketplace connectors, Studio or multi-company,
check those features against Odoo's editions comparison before deciding.
Does Odoo integrate with Shopify?
Yes. Odoo 19's native Shopify Connector syncs orders, products, customers, returns and refunds into Odoo, and
inventory and fulfillments both ways. It runs on scheduled actions — orders every 10 minutes by default —
rather than real-time webhooks.
Does Odoo sync with Amazon FBA?
Partly. The Amazon Connector imports confirmed FBA and FBM orders, but it only pushes available stock
quantities back to Amazon for FBM. FBA stock is managed by Amazon.
How do Faire orders get into Odoo?
Through Shopify. Faire's order sync sends accepted orders to Shopify, and Odoo's Shopify Connector imports
them. We tag Faire orders in Shopify so wholesale revenue stays separate, and never add a second direct
import.
Our integration uses XML-RPC. Do we need to rewrite it?
Eventually, yes. Odoo has scheduled the XML-RPC and JSON-RPC endpoints for removal in Odoo 22 (fall 2028).
Move to the JSON-2 API at your next upgrade rather than waiting, and plan for API keys that expire within
three months.
How often will we have to upgrade Odoo?
Each major version is supported for three years, and Odoo Online makes major-version upgrades mandatory every
two years. Custom modules must be ported before an upgrade can run, which is the main reason we keep custom
code minimal.
Can we move from QuickBooks to Odoo?
Yes. We migrate opening balances, customers, vendors and open items at a period boundary and run in parallel
until the numbers match.
Talk to us about Odoo
Tell us your sales channels, warehouse or 3PL setup, current accounting system, and how many people will use the
ERP.
John, Kristy, or Sandeep will reply.One of the three of us will respond personally within 1 business day. No SDR queue.
Message received.
One of us will reply directly within one business day. While you wait, run a free
Buddy audit on your account.
Top 25 references
The primary sources, standards, research, and tools we rely on for this work. Every link was checked on
2026-10-11. We aren't affiliated with these publishers unless noted.
Official documentation
Odoo pricing— Odoo One App Free, Standard and Custom plans, what Custom adds (Studio, multi-company, external API, Odoo.sh or
on-premise), and the definition of external API.
Odoo editions comparison— Odoo Which apps and features are in Community versus Enterprise, checked before choosing the open-source
edition.
Shopify Connector— Odoo 19.0 documentation Sync direction for each data type, cron-based sync every 10 minutes by default, and how returns behave
depending on where deliveries are handled.
Amazon Connector features— Odoo 19.0 documentation FBA and FBM order import, FBM stock and shipment push, and the data that stays in Seller Central.
External JSON-2 API— Odoo 19.0 documentation The Odoo 19 API with bearer API keys capped at three months, one transaction per call, and XML-RPC and
JSON-RPC scheduled for removal in Odoo 22 (fall 2028).
Upgrade— Odoo 19.0 documentation Three years of support per major version, mandatory upgrades on Odoo Online, and the rule that custom
modules block an upgrade until they're ported.
Reordering rules— Odoo 19.0 documentation Min and max quantities, lead times and automatic versus manual replenishment in Odoo Inventory.
What is Shopify order sync?— Faire Help Center How accepted Faire orders are created in Shopify with custom tags, which is how they reach Odoo without a
second import.
Inventory and locations— Shopify Help Center Shopify's location-based stock model, which has to map cleanly onto Odoo warehouses.
GraphQL Admin API reference— Shopify.dev The API behind any custom Shopify integration that the native connector doesn't cover.
What is the Selling Partner API?— Amazon Developer Docs Amazon's API for orders, inventory and reports, the layer every Amazon connector depends on.
Backup and restore— PostgreSQL documentation The database Odoo runs on; self-hosted deployments need tested dumps and restores before go-live, not after
the first incident.
Standards & policy
Publication 538: Accounting Periods and Methods— Internal Revenue Service IRS rules on accounting methods and inventories, which is why the costing method is agreed with your
accountant first.
Recordkeeping— Internal Revenue Service What records a business has to keep and for how long, relevant when deciding what history to migrate.
IAS 2 Inventories— IFRS Foundation The international standard for inventory cost and valuation, including why LIFO isn't permitted under
IFRS.
X12 transaction sets— X12 The EDI standard (850 purchase orders, 856 ship notices, 810 invoices) many retailers and 3PLs still
require.
GS1 EDI standards— GS1 GS1's EDI messaging standards used alongside GTINs in retail supply chains.
Global Trade Item Number (GTIN)— GS1 The product identifier that lets Odoo, Shopify, Amazon and retailers agree on what each SKU is.
Research & studies
Why Your IT Project May Be Riskier Than You Think— Harvard Business Review Flyvbjerg and Budzier's study of IT project overruns, opening with Levi Strauss's $192.5 million
charge after an ERP switchover.
Leading tools
odoo/odoo— Odoo on GitHub The Community edition source code, where you can read exactly how a module behaves before relying on
it.
QuickBooks Online API: get started— Intuit Developer The API used when Odoo runs operations but the books stay in QuickBooks for a transition period.
ShipStation API documentation— ShipStation Shipping platform API for label and shipment data when fulfillment runs outside Odoo.
Communities & courses
Odoo Community Association— OCA The non-profit that maintains hundreds of community modules, and the first place to check before
commissioning custom code.
Odoo Help forum— Odoo Odoo's official user forum, where connector edge cases and configuration questions are answered by
users and staff.
Odoo Community Association on GitHub— OCA The OCA's module repositories, organized by Odoo version, so you can check whether a module exists and
is maintained for your release.
AI disclosure: This page was drafted with AI assistance and edited by a human. Third-party facts
link to the official source they came from (checked 2026-10-11); platform names and logos belong to their owners
and do not imply a partnership or endorsement.