Odoo How Odoo Is Transforming Supermarkets in Uzbekistan: A Real Case Study
If you run a supermarket or grocery store in Uzbekistan, and you want transparency, control, and growth — Odoo is the sy...
The right way to migrate from Excel to Odoo is to clean the data, map the fields, keep stable External IDs, import into a test copy first, then load data in dependency order and get signed acceptance after reconciling balances before go-live. According to Odoo documentation, objects such as contacts and products can be imported through .xlsx or .csv files. But passing the Test button does not mean the business review is complete.
This approach works with the same logic for a distributor in Tashkent, a service company, or a retail business with branches: customers, products, prices, units of measure, and opening stock balances are checked separately. It has limits too. Importing contacts or products does not automatically move historical accounting data. The next step: export a small sample from your Odoo database and build a field map that matches the column names you actually have.
Importing inconsistent source data preserves those inconsistencies. That is why the work starts not with the import, but with defining the data owner, the source file, and the acceptance criteria.
The Odoo import documentation explains .xlsx and .csv formats, matching columns to Odoo fields, and the Test and Import actions. Take the hard warning in that documentation seriously: an import can be permanent, and you should not rely on a simple undo button to reverse it. Before touching a live database, check both the backup and the restore process in a test environment.
In an Odoo migration, not everything is programming. But not everything is finished with one button either.
Contacts, products, and similar objects are loaded through .xlsx or .csv.
UZS, units of measure, warehouse locations, and languages are agreed in advance.
If old ID formats or complex rules are involved, a transformation is written before import.
If ongoing exchange with 1C, a website, or a bank is needed, a separate connection is built.
Readers do not need a long list of technical column names. Export a small sample from your own Odoo database and answer these three questions.
The mistake that causes the most damage in contact migration is loading "OOO Atlas", "Atlas MChJ", and "Atlas" as three different customers. First, agree on the duplicate rule. Which one takes priority: STIR, phone, email, or old customer ID? Then assign a stable External ID to every row.
The Odoo contacts documentation explains that a contact can be an individual or a company, that the name is mandatory, and that an individual can be linked to a company. In Uzbekistan data, +998 phone numbers, Uzbek apostrophes, Russian text, and English product names often sit side by side. Check apostrophes, Cyrillic text and +998 numbers in the import preview. Also test date formats, encoding and CSV separators on the sample.
External IDs must be unique across object types: use distinct prefixes such as company_001 and product_001, and retain them on subsequent imports. A Database ID is not a portable key for a different database. Prepare contacts, products and opening stock in separate files: a shared mapping document does not mean importing different objects in one file.

The figures below are illustrative. They help agree which rows are valid records, duplicates or corrections before the import.
240 source rows − 12 duplicates − 8 rows held for correction = 220 rows ready to import.
After loading 220 rows, still spot-check contacts, selected amounts and stock balances.
Loading a product catalog does not create opening stock balances. In the Odoo inventory process, On Hand means the saved quantity in the system, Counted means the physically counted quantity, and Difference means the variance; details are provided in the inventory documentation.
A hypothetical example: a company has warehouses in Tashkent and Samarkand. If Excel has one column called "Balance", that is not enough in Odoo. Quantity must be split by product, location, and unit. If there is movement between counting and applying the balance, the number shifts. That is why the go-live time is agreed in advance.
The import button does not mean the migration is done. Migration is done when the business numbers agree.
Celion approach
This sequence fits both a small business and a company with branches. The difference is in the number of fields and the depth of checks.
When moving from Excel to Odoo, technology is not enough. Discipline is needed too.
If your Excel files, 1C exports, stock balances, and Odoo settings are not lining up, Celion can prepare a field map, test import, and acceptance checklist tailored to your process. We connect Odoo, integrations, and AI-based software solutions to the control points in the business first.
Callback
Leave your details and we will contact you shortly.
Become a Partner
Leave your contact details and we will get back to you shortly.
Order Service
Leave your phone number and we will contact you shortly.