What actually blocks a data migration
It is not volume. An SME changing tools rarely carries more than a few thousand rows, and a machine swallows that without noticing. What blocks it is uncertainty: nobody can say, before pressing the button, how many rows will land, which will be refused and why, or what will still need fixing by hand the next morning.
A useful import is therefore not a fast import. It is one that tells you what it is about to do before it does it, and hands you the exact list of what it did not do.
Thirteen data types, each with its own rules
VIA ERP imports thirteen types: contacts and leads, products, variants, categories, suppliers, price lists, units of measure, warehouses, opening stock, stock adjustments, reorder rules and exchange rates. Each has its own XLSX template, downloadable, generated by the server in your language, with the expected columns and their format.
One file, one type. Products before variants, warehouses before opening stock: the order follows the dependencies, and that is not a matter of method — it is what lets a stock row find its warehouse.
The five steps of an import
1. You upload the file
A spreadsheet, for one data type. The template saves you guessing at the columns; it does not force you to use it.
2. You map your columns
Your headers are not ours, and there is no reason they should become ours. You map them once and the mapping stays attached to the session.
3. The whole file is validated
Not a sample, not the first hundred rows: every row is re-read and validated server-side. You get the count of valid rows, error rows and duplicates before anything is written.
4. You write
The file is re-read and re-validated at write time, never taken from memory. A large file goes to a queue with a progress counter, and you can stop it while it runs.
5. You collect the refusals
Rejected rows are listed with their row number and their reason. You fix the spreadsheet and reload those rows — not the whole file.
Three ways to write, chosen at the last moment
The mode is chosen at write time, not at upload — so you can validate first and decide afterwards.
- Create only — anything that already exists is skipped. Nothing you already have is overwritten. This is the mode for a first migration.
- Create or update — what exists is updated, the rest is created. This is the mode for a migration in several passes.
- Update only — what exists is updated, what is missing is skipped. Nothing is created. This is the mode for a bulk correction.
Duplicates are handled twice
First inside the file: two rows carrying the same key, the first one counts and the rest follow the chosen mode. A spreadsheet that repeats a row cannot quietly manufacture a twin.
Then against your own data: the search is scoped to your organisation and the match is exact, on the declared key of the type concerned. No matching on name similarity, no merge decided by a machine.
For contacts and leads there is an additional similarity pass, the same calculation as the duplicate-search screen. It flags, it does not decide: no row is blocked or merged on a score. It stops beyond 500 rows, and it tells you so from the first row rather than passing for complete.
What remains afterwards
Every import is listed with its type, its author, its date and what it produced. You see yours; an administrator sees those of the whole organisation. The rejected-rows report stays attached to the import that rejected them — six months later, "who uploaded this file and what landed" still has an answer.
The user's role also decides which types they may upload: importing contacts, products or stock is not the same person's job.
Your country is configured before the first file
When your organisation is created, VIA ERP installs your jurisdiction's reference data: taxes with their legal code, tax groups, fiscal positions, currency, banks, payment terms and numbering series. For Tunisia that means six active taxes, five tax groups, three fiscal positions, eight banks and five payment terms already in place. Seven jurisdictions are covered the same way: Tunisia, France, Morocco, Algeria, Senegal, Côte d'Ivoire and Cameroon.
That changes the order of operations in a migration: you do not have to build a tax reference set before you can import a catalogue. What is set up for Tunisia is detailed on the Tunisian compliance page.
The checklist before you upload a production file
- Standardise your values before, not after: "White", "white" and "W." are three different values to a machine.
- Run a pass on an extract of a few dozen rows, read the report, and only then upload the whole file.
- Respect the dependency order: products, then variants; warehouses, then opening stock.
- Decide the write mode before you pick it on screen: initial migration, follow-up pass, or bulk correction.
- Keep the source file. There is no undo, and a corrected file reloaded in "update only" is the real safety net.
See the migration on your own data
Thirteen data types, three write modes and the refusal report, available on every plan from the day your organisation is created.
See how an import runs