Articles · Odoo

2027-04-03 13 min EN / FR

Odoo for a shop with stock: setup, traps and budget logic

A shop or distributor with physical stock is the classic ERP use case. Products come in, get stored, get sold, get shipped and get invoiced, and the numbers must agree at every step. When this runs in spreadsheets, a shop plugin and an accounting tool, the same data is typed three times and the stock is always slightly wrong.

Odoo, an open source ERP with a community and a commercial edition, is a frequent choice for this. This article covers how to approach such a project, with the traps that appear most often. Odoo's modules and the differences between its editions and versions change over time, so verify what you need against the current version before committing.

Is it the right tool?

It is a good fit when:

  • You manage physical stock and need it to be accurate
  • You sell through several channels (shop, phone, email, marketplaces, B2B)
  • You want sales, purchasing, stock and invoicing connected
  • You are tired of re-entering data between tools

Reconsider when:

  • Your volumes are very small and a shop platform plus an accounting tool works (see Odoo or custom software)
  • Your warehouse operations are highly specialised (very large volumes, complex automation), where a dedicated warehouse system may be better
  • Nobody in the company can own the project (see why ERP projects fail)

Step 1: Map your real flow

Before configuring anything, describe how a product moves through the company, from purchase to delivery:

  • How do you buy: from one supplier or many, in which currencies, with what lead times?
  • How do products arrive: checked, labelled, stored where?
  • How do you sell: online, in store, B2B with specific prices?
  • How are orders prepared and shipped: which carriers, which labels?
  • How do returns work?
  • How do you invoice and get paid?
  • Which reports do you look at every week?

Mark what is standard and what is specific (see Odoo or custom software). Most of this is standard, and it should be configured rather than coded.

Step 2: Choose the scope of phase one

Resist the urge to switch everything on. A realistic phase one for a shop:

  • Contacts, products and categories
  • Purchasing and supplier management
  • Inventory and warehouse locations
  • Sales and quotes
  • Invoicing and payments
  • Basic reporting

Phase two, once phase one is stable: e-commerce integration, marketplaces, shipping integrations, barcode scanning, advanced pricing, and so on.

Step 3: Make decisions about the data model early

These choices are hard to reverse once data exists.

Products and variants. If you sell sizes, colours or other variations, decide how they are structured (a product with attributes, or separate products). Poor structure here causes pain across stock, pricing and the online shop.

Product codes. Define a consistent SKU scheme and unique barcodes. Duplicated or missing references are the main cause of stock errors.

Units of measure. If you buy in boxes and sell by the unit, define conversions properly.

Stock valuation method. How your inventory is valued (for example average cost or FIFO) affects your accounting. This is a decision to make with your accountant, not a technical default.

Warehouses and locations. One location or several? A simple structure is better than an elaborate one you will not maintain.

Pricing. Price lists by customer type, currency, quantity discounts. List the real rules before configuring.

Taxes and fiscal positions. Domestic sales, EU B2B, exports, special regimes. Get your accountant involved, and check which accounting localisation applies in your country.

Step 4: Accounting needs a decision

How accounting works in Odoo depends on the edition and version you use, and on your country's localisation. In some setups, full accounting features are part of the commercial edition, while the free edition covers a lighter invoicing feature set, with community modules sometimes filling gaps. This matters for your budget and your accountant's workflow.

Decide with your accountant:

  • Do you do accounting inside Odoo, or export entries to your accountant's tool?
  • What electronic invoicing, archiving and fiscal reporting requirements apply in your country?
  • How are bank statements reconciled?

Accounting rules are the worst place to be creative. Stay as close to the standard as possible.

Planning an Odoo shop project?

We can map your stock flow, phase one scope and ownership constraints before you buy licences or start configuration.

Step 5: Clean and migrate the data

Data migration is often the biggest hidden part of the project. Treat it with the same discipline as syncing two systems: clear ownership of each record type, rehearsals, and checks on totals.

  • Products: dedupe, standardise names and categories, fix units, fill in missing references and costs
  • Customers and suppliers: merge duplicates, normalise addresses and VAT numbers
  • Opening stock: do a physical inventory at cutover. Importing the spreadsheet numbers and hoping is how you start with wrong stock
  • Open orders and invoices: decide what is imported and what is finished in the old system
  • History: import what you will actually use (often the last year or two), and archive the rest in a readable form
  • Keep the old IDs in a reference field for traceability

Rehearse the import at least once with real data, and check totals: number of products, stock quantities and value, outstanding customer and supplier balances.

Step 6: Integrations

Typical connections for a shop:

  • Website or e-commerce platform. Odoo has its own online shop, or you can connect an existing one. Decide which system owns products, prices and stock, and design the flows accordingly (see syncing two systems)
  • Marketplaces. Stock and order synchronisation is the hard part, particularly with several channels selling the same stock
  • Payment providers. Check reconciliation: matching payments to invoices
  • Carriers and shipping labels. Check availability for your carriers and countries
  • Barcode scanners or mobile devices in the warehouse
  • Accounting or bank feeds, if not handled in Odoo

Each integration has a cost and a maintenance burden. List them early, with the data direction, frequency and owner (see how to brief a developer).

Step 7: Customisation, sparingly

Follow the rule: configure first, adapt the process second, customise last (see why ERP projects fail).

Reasonable reasons for custom modules in this context: a pricing rule your business truly depends on, an integration with a specific carrier or marketplace, a specific document or report required by a customer.

Every custom module adds cost at each upgrade. Odoo major versions bring significant changes, and heavily customised systems become expensive to upgrade. Ask for custom code to be:

  • Minimal and well-structured
  • In a repository you own
  • Documented (see documentation at delivery)
  • Covered by tests for the critical parts

Step 8: Hosting and ownership

Options include the vendor's hosted platform, a specialised hosting provider, or your own server or cloud account. Whichever you choose:

  • The hosting account is in your company's name, and you hold the admin role (see the 30-minute account audit)
  • Backups run daily, are stored off the server and are restore-tested (see backups that actually restore)
  • You can export your database and move elsewhere. Check this before signing, especially with hosted offers where the vendor controls the environment and which custom modules they allow
  • You have a staging environment to test upgrades and changes
  • Monitoring and security updates are someone's explicit responsibility (see maintenance contracts)

Budget logic

Specific prices depend on the provider and the scope. Rather than numbers, a realistic budget usually breaks down like this:

  • Discovery (see discovery workshop): mapping processes, scope and data
  • Configuration: products, flows, taxes, documents, users and permissions
  • Data migration: often underestimated
  • Integrations: each one separately priced
  • Customisation: only what has a clear business case
  • Training: for each role
  • Go-live support: extra availability around the cutover
  • Licences and hosting, recurring
  • Maintenance and upgrades, recurring (see maintenance contracts)
  • Contingency: a reserve for what discovery did not reveal

Questions that shape the total cost:

  • How many users, and which roles?
  • How many products and variants?
  • How many integrations, and how complex?
  • How clean is the data?
  • How much customisation?
  • Do you need accounting inside Odoo?
  • Which hosting and support level?

When comparing quotes, use the method from reading a quote. Pay special attention to what is said about data migration, integrations and upgrades.

A safe project sequence

  1. Discovery workshop, with real users and a physical walk through the warehouse
  2. Prototype configured with your actual products and a sample of data
  3. Demonstration to the people who will use it, and adjustment
  4. Data cleaning and a first migration rehearsal
  5. Training on real scenarios
  6. Physical inventory, final migration and go-live at a quiet time
  7. Intensive support for the first weeks
  8. Review after a few months, then phase two

Common traps

  • Starting with the website instead of the stock and purchasing foundations
  • Inaccurate opening stock, which poisons confidence in the system
  • No discipline in the warehouse: if movements are not recorded as they happen, the numbers drift. The best configuration fails without habits
  • Over-customisation, making upgrades painful
  • Variants and SKUs designed badly, causing chaos in the shop and in reporting
  • Underestimating integrations with marketplaces and carriers
  • Ignoring accounting requirements until late in the project
  • Hosting and accounts in the provider's name (see warning signs when hiring)
  • No internal owner, so decisions stall
  • Cancelling the old tools too early

Checklist

  • Real flow from purchase to delivery described
  • Phase one scope written on one page
  • Product, variant, SKU, unit and pricing decisions made
  • Stock valuation and accounting approach agreed with the accountant
  • Data cleaned, migration rehearsed, physical inventory planned
  • Integrations listed with owners and data direction
  • Customisations justified, documented and kept minimal
  • Hosting account and backups under our control, restore tested
  • Staging environment available for upgrades
  • Training and go-live support planned
  • Internal project owner named
  • Maintenance and upgrade plan agreed

Related

Ready to scope phase one?

Send a short description of how you buy, store, sell and ship. We will say what belongs in phase one, and what to keep for later.