Product data before store integration: fix these fields first

Illustration for “Store and inventory data”: A long warehouse aisle with shelves of boxes

Linking a store to stock goes wrong when the product data underneath is untidy. These are the codes, variants and units to correct before anyone writes a line of integration code.

What product data must be ready before integration?

Before linking a store to stock, every sellable item needs a unique SKU, a clean variant structure for colours and sizes, one unit of measure, a barcode where you scan, a clear stock location and consistent names in Arabic and English. Fix duplicates and blanks in a spreadsheet first, then test-import 20 products before the full load.

Why the data matters more than the connector

A connector moves what it finds. If the store lists “Brown bag” with no SKU and the warehouse lists the same bag as “BAG-BR-01”, the system cannot tell they are one item. An order then deducts stock from nothing, or creates a second product. The symptoms show weeks later: an item sells online with an empty shelf, counts never match, and staff stop trusting the numbers.

Cleaning the item list takes a few days and removes the cause. It is the cheapest part of the project and the one most often skipped.

The fields that must be right

FieldRuleTypical mistake
SKU (internal reference)Unique, short, never reused, one per variantSame SKU on two colours, or blank
Product nameSame name in store and stock, in both languages“Bag brown” in the store, “حقيبة” in stock
Variant attributesColour and size as separate attributesColour and size typed into the name
BarcodeOne per variant, EAN or your own schemeOne barcode for every size
Unit of measureOne unit for stock, purchase and salePieces in the store, boxes in the warehouse
Product typeStorable item, service, bundleServices stocked as items
CategoryOne tree used by both systemsDifferent category names in each
Weight and dimensionsFilled in for shipping calculationBlank, so shipping fees break
Supplier and costLinked supplier for purchasingNo supplier, so reorders cannot run
PhotosOne main image per colour variantOne image for all colours

Variants: the biggest source of trouble

A store like OOYAA has 51 products but 261 colour and size options. In a stock system each of the 261 needs its own line with its own count. If variants are typed into names instead of set up as attributes, the system sees 261 unrelated products, or worse, 51 products with one shared stock figure.

Use a code pattern people can read:

  • BAG-001-BRN-M: product family, product number, colour, size.
  • Keep the pattern identical across all products.
  • Reserve a code once assigned and never reuse it for a different item.

In Odoo a product template holds the shared details and each combination of attributes becomes a variant with its own internal reference, barcode and stock. Stores such as Shopify use the same idea: a product with options, each option combination being a variant with its own SKU.

Spreadsheet traps to avoid

  • Lost leading zeros. The code 00123 becomes 123 when Excel reformats it. Format the SKU column as text before editing.
  • Hidden spaces. “BAG-001 ” with a trailing space does not match “BAG-001”.
  • Mixed Arabic and English digits. ١٢٣ and 123 look identical to a person and different to a system.
  • Merged cells and colour coding. Colours carry no data once you export.
  • Duplicate rows from copying between sheets.

Sort by SKU and look for repeated values. Filter for blanks in every required column.

Stock locations and quantities

Decide where stock lives before connecting anything:

  1. List warehouses, shops and any stock held at suppliers.
  2. Choose which location the store sells from, or whether several locations feed one store.
  3. Run a physical count and enter it as opening stock on one date. Do not enter estimates.
  4. Set up a “damaged or returned” location so returns do not inflate sellable stock.
  5. Set a reorder minimum for fast sellers so the Purchase app can alert you.

Which system is the source of truth?

Pick one owner for each kind of data and write it down:

DataOwnerFlows to
Stock quantityStock system (for example Odoo Inventory)Store
Product details and photosWherever your team edits most easilyThe other system
OrdersStoreStock and invoicing
CustomersStore, or CRM if you run oneOther systems
InvoicesAccountingStore (as documents)

Two systems editing the same field overwrite each other. A one-way flow per field prevents it. See Odoo implementation for how Inventory, Sales and Invoicing connect.

What happens when an order arrives

A well-built integration does this in order:

  1. The store creates the order and the payment status.
  2. The order reaches the stock system as a sales order for the right variants.
  3. Stock is reserved at the chosen location.
  4. A delivery is prepared and the tracking number goes back to the store.
  5. The invoice is created from the order.
  6. A return reverses stock and invoice.

Test every step with real products, including a cancelled order and a partial shipment.

A five-step plan to prepare the data

  1. Audit. Export products from the store and from stock. Compare by SKU and list the mismatches.
  2. Clean. Fix duplicates, blanks and names in one master sheet.
  3. Map. Match each store variant to a stock variant in a column pair.
  4. Test-import 20 products covering simple items, variants and a bundle. Place test orders.
  5. Go live after a stock count, with the store paused for a short window so the numbers hold still.

Watch it for a week

Run both systems in parallel for a week after launch. Each day compare a sample of products, store quantity against warehouse quantity. A difference points to a mapping or timing fault, which is easy to fix early and painful a month later.

Symptoms that your data needs cleaning

  • Items sell online while the warehouse is out.
  • The monthly count never matches the system.
  • Duplicate products with near-identical names.
  • Staff correcting quantities by hand in the store.
  • An invoice listing a different item from the one shipped.

How we approach it

We start with your export files, produce the mismatch list and a clean master sheet, build the connection and test it with your own products on a staging copy. Details are in our integration service, and inventory and purchasing work is covered in inventory software. If the store is changing platform first, use the store migration checklist.

Frequently asked questions

Yes. A SKU costs nothing and makes every later step simple. Without one, the system matches on names, which break when someone fixes a typo.

Yes. Store orders become sales orders in Odoo, stock is deducted at the chosen location and quantities flow back to the store. The quote states what syncs and in which direction.

For most stores every few minutes is enough, while a fast-selling item may need near real time. Agree the interval in the project and watch for overselling.

Start with a clean-up sheet. We find the duplicates and blanks and agree the code pattern with you before any connection is built.

It can sell from one or combine several, depending on the rules you choose. Decide before mapping locations.

Related articles

Send your product export and tell us which system holds the stock today. We return a list of fixes and a plan, and the written quote fixes scope and timeline. Send an inquiry

More in: websites and online stores

WhatsApp