Automated processing of XML, CSV and JSON feeds can synchronise stock, prices and descriptions every hour if you want. That is the easier half of the work. The harder half is what the feed does not contain and what you have to work out yourself: which of your categories the item belongs to, margin, currency, availability, and what happens when a supplier sends a third fewer items today.
This article describes those decisions. Without them, hourly synchronisation is just a faster way to get into trouble.
A feed is a contract nobody signed
A supplier can change the file structure at any moment, rename an element, add a new category level or stop sending the availability field. They will not tell you, because they usually do not know you are consuming their data.
Your import will not stop at that moment. It will import zero products, or products with no price, or mark the entire range as unavailable. The shop runs, orders do not come in, and it looks like a slow day.
From this follows the first rule, which is also the cheapest: an import has to be allowed to refuse to run. When the item count drops by more than an agreed threshold, when a mandatory field is missing, or when prices change wholesale by tens of per cent, the import does not run and an alert goes out. We build our scenarios with error handling: if an API does not answer, the job is not discarded, an alert arrives in Slack and the system retries in 15 minutes.
Five things that are not in the feed and have to be worked out
Which of your categories it belongs to. A supplier's categories are not your categories. Mapping is done once in a table, not in code, so the commercial team can edit it rather than a programmer. An unmapped item is not created blindly; it waits in a queue.
Margin. The price the supplier sends is the purchase price. You calculate the selling price, and a percentage is not enough for that - see below.
Currency. Most foreign feeds send euros. Conversion has a date, not just a rate.
Availability in time, not just in units. "3 in stock" at the supplier does not mean what it means at your end, because every other consumer of the same feed sees those same three units. The gap is handled with a buffer, not with trust.
Manufacturer and safety information. EAN, manufacturer, responsible person in the EU. Feeds often lack these, and adding them is a job of its own.
Currency conversion has a date, and that date can break your margin
The Czech National Bank publishes its rate every working day at around 14:30, and it applies to that working day and to the following Saturday, Sunday or public holiday (Czech National Bank, foreign exchange market rates).
Two practical things follow from those two sentences. First: an import running at 14:00 works with the previous day's rate, one at 14:45 with today's. The difference is small and lost in the noise until somebody asks why Monday morning's price differs from Friday evening's. Second: the rate does not move over the weekend, so a weekend price jump is not a currency effect and is a signal of a fault elsewhere.
A decision made once: is the price recalculated on every import, or only when the rate moves by more than an agreed threshold? Recalculating on every import means prices on the shop dance by a few hellers every day. That looks bad on comparison sites and confuses customers who saved an item.
A margin rule of one percentage is not enough
A margin expressed as a single percentage works on a catalogue within roughly one price band. As soon as you sell items at 40 CZK and at 40,000 CZK, you need four rules at once:
- A percentage by category, because cables and machines do not earn the same way.
- A minimum absolute margin in crowns, so a 40 CZK item does not just cover the cost of packing it.
- Rounding, or the catalogue looks like a spreadsheet export: 1,043.27 CZK instead of 1,049 CZK.
- The supplier's recommended or minimum price, where you are contractually bound to it. The automation has to respect it even when it produces a higher price than your percentage would.
Store the rules so the commercial team can change them. Margin changes more often than anything else in the whole solution, and when it sits in code every change is a ticket to your web supplier.
Automatic exclusion: four rules that prevent selling at a loss
Taking an item off sale is cheaper than selling it below cost. Four rules worth having always:
- Margin below threshold. The supplier raised the purchase price, your selling price stayed. The item is hidden, not deleted.
- Zero availability for longer than X days. A short outage is handled with a flag, a long one by withdrawing the item from sale and from comparison feeds.
- A missing mandatory field. Without an image, an EAN or a description an item goes neither into listings nor into advertising.
- A price anomaly. A jump in the purchase price beyond an agreed threshold in either direction is typically an error on the supplier's side. The automation should not accept it silently.
The difference between hiding and deleting matters for search engines. A deleted product page answers 404. A hidden item can stay at its address with a note that it is unavailable, and links to it keep working.
Two suppliers, one product: what makes a multi-supplier setup complex
The moment you have a second supplier, you have to answer four questions that do not exist with one:
- How do you tell it is the same product? EAN, manufacturer code, or name. The first two work, the third does not.
- Who takes priority when both have it? The cheaper purchase, the faster delivery, or the one where your terms are better.
- What happens when only the second one has it? It has to switch automatically, or you are selling goods you cannot get.
- Do stock levels add up or not? Adding them looks attractive and ends in an order split into two parcels with two shipping charges.
The answers are commercial rather than technical, and they take up about half the time on a multi-supplier project.
Cadence: "every hour" is not the answer to everything
Different data changes at different speeds, and a full reimport of the whole catalogue every hour is needlessly expensive - for your server and for the supplier's.
| What | How often | Why |
|---|---|---|
| Availability and stock | hourly | changes fastest |
| Purchase prices | hourly | they drive margin |
| Descriptions and attributes | daily | rarely change |
| Images | on change | transfer is expensive |
| Creating new items | daily, for review | needs mapping |
Creating new items is the only step where a human belongs. A new item needs a category and a check on whether you want to sell it at all. The rest runs untouched.
An import that fails is better than one that stays quiet
The most expensive fault is not the loud one. It is the one after which everything looks fine.
Three things should be visible in one place, ideally in the chat where the team already sits:
- The time of the last successful import per supplier. When it is older than twice the expected interval, that is a fault.
- The count of processed, skipped and rejected items. Three numbers, not one.
- The list of unmapped new items. A queue that grows means somebody has stopped doing the category mapping.
Monitoring is the cheapest part of the whole solution and the first thing to be dropped, because it does not show in a mock-up.
A supplier feed and a comparison-site feed are two different files
They get confused because both are XML. The inbound feed brings data to you; the outbound feed sends your data to Heureka or Zboží.cz, and behaves completely differently: it is about money spent on clicks.
On Heureka you pay per click through to the shop, products under 20 CZK are not charged, and a click from full-text search or the shop detail costs 3.49 CZK; category click prices follow the product price including VAT and are revised roughly every two weeks (heureka.group, retrieved 31 August 2026).
From that follows a decision directly tied to dropshipping: low-margin items do not belong in the outbound feed. A full feed gives reach and burns budget on goods you make nothing on. A filtered feed saves money and cuts visibility. Both are legitimate, but it has to be a decision rather than an accident.
What dropshipping will not change, however much you automate
Three things stay yours no matter how good the system is, and it is honest to name them:
The delivery time is the supplier's, the responsibility is yours. The customer complains to you. So set availability conservatively, not on the best case.
Returns come through you. Who pays return shipping and where goods go back to belongs in the supplier contract before you write the first line of code.
You are the seller. The mandatory product information that has to appear in the shop often cannot be found out from the supplier and has to be requested. That is not a technical task, it is something you have to ask the supplier for.
Feed automation does not save you decisions. It saves you repeating them. The decision about margin, mapping and exclusion is made once and then holds at three in the morning on a Sunday.
Send us a link to the feed, not a description of it
The fastest route to an estimate goes through the file itself. We need the feed URL or a sample, the list of suppliers you are counting on, and whether you also sell your own stock or only dropship. We will come back with an analysis of what is in the feed, what is missing, and how much work each missing field represents.
How we build scenarios and on what is described on the process automation page; if you are still choosing a platform, start with the article on what to decide before the technology. We build the whole shop on the e-shop development page.
Write to info@lamapixel.com or call +420 775 599 009.