“The supplier's Excel file arrives every week”: what gets built to import it without breaking anything in an application in Algeria in 2027, remembered mapping, row-by-row validation, dry run, batches, undo

“Every Monday the supplier sends its price list in Excel. Someone copies it into the application, a column shifts, and prices are wrong until Wednesday. Last month the same file was imported twice and received quantities doubled.” An import that breaks is not the fault of the person copying, it is a construction: an application that takes the file as is and writes immediately can neither re-read, nor refuse, nor undo. This guide describes what gets built so that a recurring file imports without breaking: a mapping remembered per supplier, a reading rule per column, a verdict per row before any write, a dry run, a background apply in batches, a key that prevents double import, a journal and a one-gesture undo.

Symloop13 min read
“The supplier’s Excel file arrives every week”What gets built to import it without breaking anything: a mapping remembered per supplier, a reading rule per column, a verdict per row, a dry run, a background apply, a journal and an undoIMPORTS · EXCEL · SUPPLIERS · 2027“The supplier’sExcel file arrivesevery week”What gets built to import it without breaking anything: amapping remembered per supplier, a reading rule per column, aCOPY-PASTE ON A MONDAY MORNINGand wrong prices until WednesdayAN IMPORT THAT READS ITSELF BACKand undoes in one gesturesymloop.com

Short answer. The supplier's headers are never the application's fields: a mapping table, remembered per supplier and versioned, links each column to a field with a reading rule, decimal comma, spaces in codes, title and totals rows to ignore. Before a single value is written, a dry run reads everything and gives a verdict per row: accepted, warning to confirm, or rejection with the reason. The manager confirms, and the apply runs in the background in batches, with visible progress and resume after a cut; every row carries an idempotency key, and the file fingerprint means a re-uploaded file does nothing. Every replaced value is kept with the import number, which allows a one-gesture undo. An unknown header triggers a question, not a wrong import. Six weeks, the first without code.

This guide is for the manager of a wholesaler, a pharmacy or a shop that receives price lists, catalogues and count sheets in Excel every week, the founder settled in France whose team in Algiers spends Monday morning copy-pasting, and the person who has already had to fix a wrong import by hand. It does not repeat how an old file is taken over once and for all during a migration, described in the data take-over guide, nor how to connect to software that has an API, described in the integration guide; it describes what gets built for files that keep coming back, and it extends our software engineering page.

The supplier's file, column by column

The figure shows a supplier price list as it arrives, and what the application does with it column by column and row by row, before writing anything.

Figure 1 · The supplier’s file as it arrives, with its merged title row, its own headers, prices written the French way, a barcode with spaces, an empty reference, an “N/A” and a totals row. Every column is linked to an application field by a number, with the transform applied and the reading rule; every row gets a verdict before a value is written. The mapping is remembered per supplier and reused; if a column changes name, the application asks, it does not guess. The data is a constructed example.

The file has a merged title row, headers in the supplier's words, prices written “1 250,00”, a barcode with spaces, an empty reference, an “N/A” and a totals row. None of these details is a supplier error: it is a file made to be read by a human. The mapping links “Ref.” to the supplier reference, which is the key, “Unit price” to the purchase price with the French reading rule, “EAN code” to the barcode with the check digit verified; title and totals rows are ignored by the template.

Every row gets a verdict: three accepted, one of them with a cleaned code; one with a warning, because the price rises 40 % since the last import and the manager set that threshold; two rejected, empty reference and unreadable price, with the reason. The mapping is remembered for this supplier and reused every week; if a column changes name, the application asks the manager to link it, it does not guess. The data in the figure is a constructed example.

«The supplier's headers are never the application's fields: a mapping table, remembered per supplier, makes the link, and every column has a reading rule.»
01

An import that breaks nothing, in five layers

The dry run is the layer that matters, but it is not enough: you need a receipt that recognises the file, a mapping that lasts, an apply that resumes, and a history that undoes.

Figure 2 · The accented layer is what separates an import from a copy-paste: the dry run reads everything and writes nothing, and the manager sees the warnings before confirming. The next two layers make the import safe to run and safe to undo.

Receipt. Upload by the manager, a dedicated mailbox the supplier sends to directly, or a shared folder; .xlsx and .csv, encoding and sheet detection, file fingerprint: the same file uploaded twice is imported once. Mapping. One table per supplier and file type: which column goes to which field, which rows are ignored, which reading rule applies to each column; remembered and versioned, because suppliers change their templates. Validation. The dry run reads everything and writes nothing; verdict per row, written warning thresholds, preview and rejection report; this is the accented layer.

Apply. After confirmation only: in the background, in batches, with visible progress and resume after a cut; an idempotency key per row, following the same mechanics as the offline guide, and every replaced value kept with the import number. History. Import journal, who, when, which file, how many rows and rejections; one-gesture undo of an import; rejection report sent to the supplier by WhatsApp or e-mail, following the notifications guide. Who may import and who may confirm a warning are rights, following the roles guide.

02

One import, from upload to undo

The figure follows an import of 1,842 rows, from file upload to the possible undo, with the time of each step.

Figure 3 · One import, from upload to undo. The supplier’s template is recognised, the dry run gives a verdict per row in two seconds, the manager confirms the warnings, the apply runs in the background in batches with visible progress, the journal and the rejection report go out, and the import can be undone in one gesture because every replaced value was kept. A re-uploaded file does nothing. The figures are a constructed example.

The file is uploaded, the supplier's template is recognised, and the dry run gives a verdict per row in two seconds: 1,790 accepted, 44 warnings, 8 rejections. The manager sees the 44 warnings, confirms or excludes some, and launches; the apply runs in the background in batches of 200, with a progress bar, and finishes in 38 seconds. The journal records import number 27, 1,790 prices updated, and the report of the 8 rejections goes to the supplier; the manager gets a message.

Two mechanisms make the import safe. The undo: every replaced value was kept with the import number, and import 27 is undone in one gesture, the undo being itself a logged import. Idempotency: the key supplier, reference and file fingerprint means a re-uploaded file does nothing, and a row already applied is not reapplied after a cut at batch 6. Row counts and durations are a constructed example; duration depends on volume and server.

«Nothing is written before the dry run and the confirmation; everything written can be undone in one gesture.»
03

Monday morning, in six gestures

What the manager or the employee in charge of imports does, in order, and why the third gesture is the one that changes everything.

Figure 4 · The accented step is the one that does not exist in a copy-paste: reading what will change before it changes. The other five take two minutes; the third takes five and avoids a week of wrong prices.

Upload the file, by dragging it, or do nothing because it arrived by itself through the dedicated e-mail. Check the template: supplier recognised, columns linked; if a column changed, link it, and the template moves to the next version. Read the dry run: accepted, warnings, rejections, preview of the first rows; this is the accented step, the one that does not exist in a copy-paste. Settle the warnings: confirm in one gesture, or exclude rows. Launch, and close the screen if you like. Read the journal: what changed, the rejection report gone to the supplier, and undo if needed.

The five mechanical gestures take two minutes; the third takes five, and it is the one that avoids a week of wrong prices. Imported prices feed the pricing engine described in the quote guide, and the quantities of a count sheet become adjustment movements, following the stock guide.

04

Six real situations, and what the application does

The six situations found in almost every company that imports files every week, and the construction that settles them.

Figure 5 · The first two rows are settled by the mapping and the reading rules; the third by the dry run and the thresholds; the next two by idempotency and batches; the last by the history. None is settled by an employee more careful with copy-paste.

The first two rows are settled by the mapping and the reading rules: an unknown header is a question, not a column shift, and a French-style price is read as such. The third is settled by the dry run and a written threshold. The next two are settled by idempotency and batches: the file fingerprint and the per-row key prevent double import, and a cut in the middle does not replay what is done. The last is settled by the history: every replaced value is kept, and the import is undone in one gesture. None is settled by an employee more careful with copy-paste.

05

Seen elsewhere: Excel's limits, CSV and market import tools, and what carries over

Three facts carry over as they are. Excel's limits: a worksheet holds at most 1,048,576 rows and 16,384 columns, and a cell 32,767 characters, according to Microsoft's documentation; what carries over is that a ten-thousand-row file is small for the application, but the manager's screen must show only a preview and a summary. CSV: a text format whose separator, encoding and byte-order mark vary with the tool that produced it, and whose Arabic comes out unreadable when the encoding is misdetected; what carries over is detection at receipt and a preview the manager reads before confirming, following the rules described in the bilingual application guide. Market software import tools: column mapping, preview, error report; what carries over is remembering per supplier and the undo, which generic tools rarely have.

What those facts do not decide for you: your target fields, your warning thresholds, who confirms, and what is done with a rejected row; the project's first week answers that, and the manager signs.

06

The rules of an import that breaks nothing

Six rules, written in the first week. The supplier's headers are never the fields: a remembered mapping makes the link. Every column has a written reading rule. Nothing is written before the dry run and the confirmation. An unknown header is a question, not an import. Every row has a key, and every file a fingerprint. Every replaced value is kept with the import number, and the import is undone in one gesture.

And one rule of method: when a supplier can send its data other than as a file, through an API or a portal, you do that, following the partner API guide; file import is for suppliers that have nothing else, and that is most of them.

07

Six companies, and the import that was missing

Six situations composed from projects we meet; the names are generic and the figures are examples.

  • A food wholesaler in Sétif, twelve suppliers. Twelve Excel price lists a month, twelve different templates, one Monday a week spent copying. The construction: one mapping per supplier, dedicated e-mail, dry run, 20 % warning threshold. Monday morning went from three hours to twenty minutes, as an example.
  • A pharmacy with three branches. The distributor's catalogue changed every week and purchase prices were wrong one week in four. The construction: catalogue import with reading rule, rejections reported to the distributor, undo; the case is described in the three-branch pharmacy guide.
  • A founder in Paris, online shop in Algiers. The supplier sent its stock file on Sunday evening, and the team copied it on Monday with errors. The construction: upload by dedicated e-mail, dry run readable from Paris, remote confirmation; remote management follows the shop from France guide.
  • A distributor in Oran, count sheets. Cycle counts arrived in Excel from the warehouses and were typed by hand. The construction: import of count sheets as adjustment movements with reason, variances beyond a threshold as warnings.
  • A retailer in Constantine, the wholesaler's B2B portal. The wholesaler exported orders as CSV and the retailer retyped them. The construction: CSV import with encoding detection, remembered mapping, reconciliation with delivery notes; the portal is described in the B2B portal guide.
  • An SME in Annaba, doubled import. The same receipts file imported twice, quantities doubled, found at stocktake. The construction: file fingerprint, per-row key, undo; double import became impossible.
08

The 2027 calendar

Six weeks for a company that already receives recurring files; the first week passes without code.

Figure 6 · Six weeks, and the first without code: the list of recurring files, the target fields and the thresholds are the manager’s decisions. The third week is accented because the dry run is the reason for everything else: without it, an import is only a faster copy-paste.

Week 1, files and rules: list of recurring files, suppliers, frequency, target fields, reading rules, warning thresholds, who confirms; signed by the manager. Week 2, receipt and mapping: upload, dedicated e-mail, encoding and sheet detection, mapping table per supplier remembered and versioned. Week 3, dry run: full read without writing, verdict per row, thresholds, preview, rejection report.

Week 4, apply and batches: confirmation, background apply in batches, progress, resume, idempotency, replaced values kept. Week 5, history and undo: import journal, one-gesture undo, rejection report sent to the supplier. Week 6, measurement: rejected-row rate per supplier, undone imports, Monday-morning time before and after, on the dashboard following the real-time dashboard guide. Every week ends with a demo, following the delivery without breakage guide.

09

What makes an import fail

Five causes, seen in applications we take over. Immediate writing: the file is read and written in the same gesture, and the error is found in production. Mapping by position: the third column goes into the third field, until the day the supplier adds one. Default number reading: “1 250,00” becomes 1 or 125,000. No key: the same file imported twice doubles everything. No history: a wrong import is fixed by hand for three days.

And one cause of method: treating every file as a unique case. Files that keep coming back deserve a remembered mapping; the first week exists to list them.

10

Frequently asked questions

The questions managers and founders ask when they describe the Monday morning of imports.

Why does the Excel import break the data?
Because the file is written into the application the moment it is read, without a dry run, with mapping by position and default number reading. An added column, a French-style price or a file uploaded twice is enough. The construction that settles this: remembered mapping, reading rule per column, dry run, per-row key, undo.
What is a dry run?
A full read of the file that writes nothing and gives a verdict per row: accepted, warning to confirm, or rejection with the reason. The manager sees what will change before it changes, confirms or excludes rows, then launches. It is the step that does not exist in a copy-paste.
What happens if the supplier changes its columns?
An unknown header triggers a question to the manager, who links the column to the right field; nothing is imported before. The mapping moves to the next version and is reused. The application never guesses a mapping.
How do you avoid importing the same file twice?
With a file fingerprint and an idempotency key per row, supplier, reference and fingerprint. The same file re-uploaded does nothing, and a row already applied is not reapplied after a cut. It is the same mechanics as for offline synchronisation.
Can an import be undone?
Yes, in one gesture, because every replaced value is kept with the import number. The undo restores the previous values and is itself a logged import. A wrong import is undone in a minute instead of three days of manual fixing.
The file arrives by e-mail, must it be uploaded by hand?
Not if a dedicated mailbox is set up: the supplier sends its file there, the application receives it, recognises the template and prepares the dry run; the manager only has to read and confirm. When the supplier has an API, it is preferred to the file.
How long does it take to set this up?
Six weeks in the typical calendar: one to list the files and write the rules, one for receipt and mapping, one for the dry run, one for batch apply, one for history and undo, one for measurement. The duration depends on the number of suppliers and the variety of files.
Send us three supplier files, we show you the dry run

Manager in Algeria or founder in France: we build imports that read themselves back before writing and undo in one gesture

Symloop builds and takes over applications in production for companies in Algeria and founders settled in France: receipt by upload, dedicated e-mail or shared folder, encoding and sheet detection, mapping remembered and versioned per supplier, reading rules per column, dry run with verdict per row and warning thresholds, background apply in batches with resume and idempotency, import journal, one-gesture undo, rejection report to the supplier, measurement per supplier. Code and rules in your repository; a demo every two weeks.