Naar de inhoud
SyncMyShop

Kennisbank

Wat is een datafeed?

Een datafeed is een bestand met een regel of blok per artikel, dat een systeem op vaste tijden klaarzet en een ander systeem ophaalt. Leveranciers sturen je zo hun voorraad, prijzen en levertijden, en je webshop stuurt op dezelfde manier je producten naar Google Shopping en vergelijkingssites.

Bijgewerkt op

Een datafeed in twee richtingen

Een datafeed is een bestand dat de afzender op een vast adres klaarzet: een URL, een map op een SFTP-server of een bijlage in een vaste mailbox. De ontvanger haalt het op volgens een rooster en verwerkt alle regels in één keer. Er is geen vraag en antwoord zoals bij een API koppeling: wat in het bestand staat, is wat de ontvanger weet.

Voor een webshop lopen er feeds twee kanten op.

Inkomende feed Uitgaande feed
Van wie naar wie leverancier of groothandel naar jou jouw webshop naar Google Shopping, een vergelijkingssite of een marktplaats
Inhoud artikelnummer, EAN, voorraad, inkoopprijs, levertijd id, titel, omschrijving, link, afbeelding, prijs, beschikbaarheid
Wie bepaalt de velden de leverancier, elk op zijn eigen manier de ontvanger, met een vaste specificatie
Typisch ritme één tot vier keer per dag volgens het schema dat je bij de ontvanger instelt

Het verschil in de derde rij bepaalt waar het werk zit. Een uitgaande feed volgt één specificatie en blijft daarna gelijk. Inkomende feeds verschillen per leverancier: tien leveranciers zijn tien kolomindelingen, tien schrijfwijzen voor een levertijd en tien momenten waarop het bestand klaarstaat.

Hoe ziet een datafeed eruit: CSV, XML of JSON?

Hetzelfde artikel, een werkjas met twee maten, in de drie formaten die je het vaakst tegenkomt. Eerst CSV: één regel per variant, kolommen gescheiden door een puntkomma.

artikelnr;ean;omschrijving;voorraad;prijs;levertijd
10482-BLK-048;8712345104821;Werkjas zwart maat 48;14;49,95;2 werkdagen
10482-BLK-050;8712345104838;Werkjas zwart maat 50;0;49,95;14-10-2026

Dan XML: het artikel is één blok en de varianten staan erin.

<artikel nummer="10482">
  <omschrijving>Werkjas zwart</omschrijving>
  <prijs valuta="EUR">49.95</prijs>
  <variant sku="10482-BLK-048" maat="48">
    <voorraad>14</voorraad>
  </variant>
  <variant sku="10482-BLK-050" maat="50">
    <voorraad>0</voorraad>
    <verwacht>2026-10-14</verwacht>
  </variant>
</artikel>

En JSON, dezelfde opbouw met getallen als getal:

{
  "nummer": "10482",
  "prijs": 49.95,
  "varianten": [
    { "sku": "10482-BLK-048", "maat": "48", "voorraad": 14 },
    { "sku": "10482-BLK-050", "maat": "50", "voorraad": 0, "verwacht": "2026-10-14" }
  ]
}
CSV XML JSON
Varianten een regel per variant; de koppeling groepeert ze op het deel voor de maat geneste blokken geneste lijsten
Getallen tekst: 49,95 met komma tekst: 49.95 met punt getal: 49.95
Een fout in het bestand één regel kapot, de rest leesbaar een niet gesloten tag maakt het hele bestand onleesbaar een ontbrekende komma maakt het hele bestand onleesbaar
Typisch voor leveranciers, exports uit een ERP productfeeds, oudere koppelingen API-exports, moderne platforms

De derde rij telt bij een koppeling het zwaarst. Een CSV met één kapotte regel levert 11.999 bruikbare regels op en één afkeur. Een XML-bestand met één niet gesloten tag levert niets op. De koppeling moet daarom bij XML en JSON eerst het hele bestand controleren en bij een fout de vorige stand laten staan, in plaats van alle artikelen op nul te zetten.

Welke velden staan erin?

Een inkomende feed bevat wat het systeem van de leverancier toevallig exporteert. Een uitgaande feed bevat wat de ontvanger voorschrijft. Google Merchant Center is de bekendste ontvanger; dit zijn een paar velden uit de productspecificatie van Google, nagelezen op 3 oktober 2026:

Veld bij Google Regel Waar het vandaan komt
id verplicht, maximaal 50 tekens, uniek per product SKU uit de webshop
title verplicht, maximaal 150 tekens producttitel, soms ingekort
description maximaal 5.000 tekens, platte tekst productomschrijving zonder HTML
price verplicht, getal met ISO 4217-valutacode, zoals 49.95 EUR verkoopprijs inclusief btw
availability verplicht, een van in_stock, out_of_stock, preorder, backorder voorraad en levertijd samen
availability_date verplicht bij preorder, ISO 8601 zoals 2026-10-14T00:00+0200 verwachte leverdatum

Tussen de twee soorten feeds zit het vertaalwerk. De leverancier schrijft 2 werkdagen, op voorraad, > 10 of 14-10-2026 in de kolom levertijd. Google accepteert er vier vaste woorden voor en een datum in één notatie. Welke waarde bij welk woord hoort, is een regel die per leverancier wordt vastgelegd; dat heet veldmapping. Het verschil tussen een duur en een datum staat in levertijd of leverdatum.

Google vraagt ook dat de beschikbaarheid en de prijs in de feed overeenkomen met wat op de productpagina staat. Een feed die achterloopt op de webshop, is dus niet alleen een verouderd getal, maar ook een afwijking die Google kan afkeuren.

Hoe komt een feed aan, en hoe vaak?

Een feed staat op een plek waar de ontvanger hem kan ophalen. Voor Google moet het adres beginnen met http://, https://, ftp:// of sftp://, het bestand moet kleiner zijn dan 4 GB en het formaat is tab-gescheiden tekst (.txt, .tsv) of XML. Een adres dat naar een HTML-pagina wijst, zoals een inlogscherm, laat de verwerking mislukken. Dat is nagelezen bij Google op 3 oktober 2026.

Bij leveranciers is het rooster een afspraak, geen specificatie. Twee dingen leg je per feed vast:

  • Volledig of alleen de wijzigingen. Een volledig bestand bevat alle artikelen. Een bestand met alleen de wijzigingen is kleiner, maar dan betekent een ontbrekend artikel niets. In een volledig bestand kan een ontbrekend artikel nul betekenen, of uit het assortiment, of een onvolledige export.
  • Wanneer het bestand klaar is. Een koppeling die om 06:00 ophaalt terwijl de leverancier om 05:58 nog schrijft, leest een half bestand. De koppeling wacht daarom tot de bestandsgrootte niet meer verandert, of tot er een tweede bestand klaarstaat dat zegt dat de export af is.

Rekenvoorbeeld: hoe oud is de stand die je klant ziet?

Een feed is zo oud als het laatste ophaalmoment. Staan er meerdere feeds achter elkaar, dan tellen de wachttijden op. Neem een leverancier die elke dag om 05:45 exporteert, een koppeling die om 06:00 inleest, een webshop die elk uur een productfeed maakt en Google dat het bestand elke nacht om 03:00 ophaalt.

Bij de leverancier gaat de werkjas in maat 48 dinsdag om 06:00 naar nul, een kwartier na de export.

  1. De volgende export is woensdag 05:45: 23 uur en 45 minuten later.
  2. De koppeling leest hem om 06:00 in: nog 15 minuten. De webshop staat op nul na 24 uur.
  3. De productfeed van 07:00 bevat de nul. Google haalt het bestand woensdag om 03:00 op, vier uur te vroeg, en daarna pas donderdag om 03:00: nog 21 uur.

Samen is dat 24 plus 21 is 45 uur. Al die tijd kan een klant via Google Shopping doorklikken naar een artikel dat er niet is, en een dag lang ook via de webshop zelf.

Hoe lang een voorraadstand onderweg is door drie feeds achter elkaar Bij de leverancier gaat een artikel dinsdag om 06:00 naar nul, net na de export van 05:45. De webshop ziet de nul pas woensdag na de volgende export, en Google Shopping pas donderdag om 03:00 bij het ophaalmoment van het productbestand. Samen is dat 45 uur. Leverancier, export elke dag om 05:45 voorraad naar 0 export 05:45 Koppeling en webshop webshop toont nog 14 stuks 06:00 ingelezen, 0 Productfeed naar Google, opgehaald om 03:00 Google toont in_stock, 45 uur out_of_stock di 06:00 di 18:00 wo 06:00 wo 18:00 do 03:00
Drie feeds achter elkaar: de wachttijden tellen op tot 45 uur.

Het korter maken begint bij de langste wachttijd. Een leverancier die vier keer per dag exporteert, brengt de eerste stap terug van bijna 24 naar bijna 6 uur. Een ophaalschema bij Google dat vaker draait, of een aanlevering via de API van Google in plaats van een bestand, verkort de laatste. Welke stroom welke snelheid nodig heeft, staat in realtime of batch.

Wat gaat er mis met een datafeed?

Een feed meldt zelf niets. Hij komt aan of niet, en wat erin staat wordt verwerkt zoals het er staat.

Wat er gebeurt Voorbeeld Wat de koppeling doet
Het bestand van vandaag ontbreekt het bestand van gisteren staat er nog datum en regeltelling controleren, melden als om 06:30 niets nieuws is
Een XML- of JSON-bestand is onleesbaar niet gesloten <variant> op regel 48.112 het hele bestand afkeuren, vorige stand laten staan, melden
De tekenset klopt niet Afsluiter café-model lezen in de tekenset van de afzender, omzetten naar UTF-8
Een veld heeft een tekst in plaats van een getal voorraad > 10 regel op de controlelijst, niet stil op nul
Het artikelnummer verandert 00123456 wordt 123456 na een rondje Excel koppelen op EAN als tweede sleutel, verschil melden
De URL geeft een inlogpagina 200 OK met HTML in plaats van CSV inhoud controleren, niet alleen de statuscode

De uitwerking per fout voor CSV- en Excel-bestanden staat in CSV- en Excel-bestanden van leveranciers. Voor leveranciers die geen bestand kunnen leveren staan de routes in koppelen zonder API.

Wat betekent dit voor je koppeling?

Een feed inlezen is het makkelijke deel. Het werk zit in de regels eromheen: welke kolom welk veld is, wat een ontbrekend artikel betekent, wat er gebeurt met een bestand dat niet aankomt of half binnenkomt. Wij bouwen de koppeling op de feeds die je leveranciers nu leveren, in het formaat waarin ze komen, en zetten ze om naar wat je webshop en je productfeed nodig hebben. Daarna hosten en bewaken we hem, en passen we hem aan als een leverancier zijn export verandert.

Elke verwerking staat met de afgekeurde regels in het dashboard, en een nieuwe feed draait eerst droog. Hoe dat voor voorraad en levertijden werkt, staat op voorraad van je leverancier koppelen. Stuur een voorbeeld van een feed mee in het formulier, dan hoor je wat erin bruikbaar is.

Veelgestelde vragen

Is een datafeed hetzelfde als een productfeed?

Een productfeed is een datafeed met productgegevens, meestal de feed die je webshop klaarzet voor Google Shopping, een vergelijkingssite of een marktplaats. Een voorraadfeed van een leverancier of een prijslijst in CSV is ook een datafeed. Het woord zegt iets over de vorm (een bestand dat op vaste tijden klaarstaat), niet over de inhoud.

Welk formaat is het beste: CSV, XML of JSON?

Het formaat dat de afzender betrouwbaar kan leveren. CSV is het kleinst en het makkelijkst te controleren, maar kent geen varianten binnen een artikel en geen getaltypen. XML en JSON kunnen een artikel met varianten in één blok beschrijven. Een koppeling leest alle drie; de regels voor wat erin staat maken meer verschil dan het formaat.

Hoe vaak wordt een datafeed ververst?

Zo vaak als de afzender exporteert en de ontvanger ophaalt. Bij leveranciers is één tot vier keer per dag gebruikelijk. In Google Merchant Center stel je zelf het schema in waarop Google je bestand ophaalt. Staan er meerdere feeds achter elkaar, dan tellen de wachttijden op, zoals het rekenvoorbeeld op deze pagina laat zien.

Kan ik een Excel-bestand als datafeed gebruiken?

Een koppeling kan een .xlsx-bestand lezen, maar Excel verandert bij openen en opslaan getallen en codes: voorloopnullen verdwijnen en een EAN wordt een getal met een E erin. Google Merchant Center accepteert alleen tab-gescheiden tekst en XML. Wat er in Excel-bestanden van leveranciers misgaat staat in CSV- en Excel-bestanden van leveranciers.

Wat is het verschil tussen een datafeed en een API?

Een feed is een bestand met alles erin dat op een vast moment klaarstaat. Een API beantwoordt één vraag per keer, op het moment dat je hem stelt, en kan ook gegevens ontvangen. Veel koppelingen gebruiken beide. De vergelijking staat in API of feed.

Vertel wat je nodig hebt

Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.

  • Je weet de prijs en de doorlooptijd voordat je iets toezegt
  • Wij zoeken uit welke koppeling het werk uit handen neemt
  • Wij verzorgen de bouw, hosting, bewaking en het onderhoud
  • Je team krijgt minder overtypwerk en minder uitzoekwerk

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com