Live data uit een extern systeem

De situatie

Stel: je bouwt voor een fietsengroothandel een online catalogus. De productgegevens — modellen, specificaties, prijzen en voorraad — staan al in een centraal systeem (een PIM), en dat systeem is de baas. Niemand gaat honderden producten óók nog eens met de hand in je website overtypen; dat loopt gegarandeerd uit de pas. (Hetzelfde patroon geldt voor vacatures uit een ATS, woningen uit een makelaarspakket of beschikbaarheid uit een agenda-API.)

Je wilt drie dingen tegelijk:

  1. De data komt uit het externe systeem en blijft daar leidend — jij onderhoudt niets dubbel.
  2. Toch wil je een volwaardige website: een overzicht met filter, en een eigen detailpagina per product.
  3. En Google moet elk product netjes herkennen, met een nette URL die blijft werken.

De valkuil is denken dat "externe data" iets tweederangs is — een lijstje dat je ergens inplakt. In Mach3Blocks is een externe bron gewoon een volwaardige collectie, alleen dan read-only: alles wat een normale collectie kan (template, filter, SEO, structured data) kan dit ook.

Het principe: één externe-data-collectie, altijd actueel

Je maakt een collectie en wijst die naar een externe data-URL (JSON). Vanaf dat moment is die collectie je databron, precies zoals in De filterbare catalogus die scoort in Google — met één belangrijk verschil: je bewerkt de items niet in Mach3Blocks, want het externe systeem is leidend.

Het grote voordeel: externe JSON-data wordt bij elke paginalading ververst. Bij een gewone collectie zie je wijzigingen pas na publiceren; bij externe data zie je een prijs- of voorraadwijziging meteen. Je bouwt de presentatie één keer; de inhoud stroomt vanzelf mee.

Stap voor stap

1. Koppel de externe bron

Ga naar de collectie-instellingen → tab Data en vul bij Externe data de URL van je bron in. De data moet JSON zijn. Zodra dit staat, is de collectie alleen-lezen.

Waarom read-only: je bron is de enige waarheid. Kon je hier items bewerken, dan zou je twee versies van de waarheid krijgen die uit elkaar lopen. Read-only is dus geen beperking maar een garantie. Interne en externe items kun je daarom ook niet mengen in één collectie. Zie Collecties: complete handleiding voor de volledige opzet.

2. Koppel de externe velden

Heb je de URL ingevuld, dan verschijnt bij de velden een lijst Externe velden: de velden die wél in de bron zitten maar nog niet in je collectie. Voeg ze toe (in één keer of per veld).

Waarom dit de kern is: pas gekoppelde velden kun je in de editor aan elementen hangen — op het overzicht én op de detailpagina. Een veld dat je hier vergeet, mist straks overal. Denk dus vooraf na welke velden je nodig hebt voor je kaartje, je detailpagina én je structured data. Bijvoorbeeld: modelnaam, prijs, voorraad, framemaat en een afbeelding.

3. Bouw overzicht, detailpagina en filter

Zet Detailpagina aan en richt de Template in: je bouwt één pagina die zich voor elk product vult. Plaats het collectieblok op je overzicht en voeg een filter-element toe zodat bezoekers op tags kunnen filteren (bijvoorbeeld op merk of framemaat).

Concreet: koppel op de template het veld modelnaam aan de kop, de afbeelding aan het beeld en prijs aan een tekst. Elementen waarvan het veld leeg is, verbergen zich automatisch — de pagina blijft altijd netjes. Zie Filteropties voor collecties op je website.

4. Zet de SEO neer — ook bij data die je niet zelf beheert

  • Per-item meta met objectwaardes. Vul de meta-titel van de detailpagina met {{ Collectieveld: Modelnaam }}, zodat elk product automatisch een eigen, kloppende titel krijgt.
  • Stabiele URL's met nano-ID's. Zet Item-URL nano-ID's aan, zodat een gedeelde productlink blijft werken, ook als de modelnaam in de bron verandert. Zie Collectie SEO-instellingen: URL en nano-ID's.
  • 301-redirects voor externe URL's. Bij externe data kun je aanzetten dat oude URL's uit de bron automatisch een 301 krijgen als ze wijzigen. Zo lopen gedeelde links en zoekmachine-posities niet dood wanneer het bronsysteem een URL verandert. Zie 301 redirects instellen.

5. Structured data per product

Vul bij de collectie het veld Structured data (detailpagina) met een schema voor één item — bijvoorbeeld type Product — en gebruik daarin je collectievelden voor naam en prijs. Mach3Blocks plaatst dat automatisch in de juiste <script type="application/ld+json">-tag op elke detailpagina. Je typt het type zelf in het schema; er is geen keuzelijst met types. Zie Structured data op collecties (overzicht en detailpagina).

Het onderste uit de pan

  • Externe data is read-only — bewust. Wil je toch een enkel veld redactioneel aanvullen (bijvoorbeeld een wervende tekst), dan kan dat niet in dezelfde collectie. Regel zulke tekst in de bron, of accepteer dat de bron leidend is. Verwacht je hier bewerkbaarheid, dan loop je vast.
  • "Items in menu" werkt niet bij externe data. Reken er dus niet op dat externe producten automatisch in je navigatiemenu verschijnen; gebruik het overzicht met filter als ingang.
  • Velden koppel je vooraf. Vergeet je een veld te koppelen, dan is het onzichtbaar op je site én in je structured data — ook al staat het gewoon in de bron.
  • Structured data koppel je aan velden, niet met de hand. Bij honderden producten die dagelijks wijzigen is handmatige structured data kansloos; via {{ Collectieveld: ... }} blijft het per item kloppen.
  • De bron bepaalt je snelheid en betrouwbaarheid. Ligt de externe URL eruit of is de JSON ongeldig, dan heeft je pagina geen data. Zorg voor een stabiele, snelle bron.

Wanneer welke keuze?

  • Zelf beheren of externe data? Beheer je de content redactioneel in Mach3Blocks → gewone collectie (zie De filterbare catalogus die scoort in Google). Is een ander systeem leidend → externe-data-collectie.
  • Wel of geen detailpagina? Wil je deelbare links en structured data per item → detailpagina aan. Heb je alleen een compacte lijst nodig → een overzicht zonder detailpagina volstaat.
  • Publiceren of live verversen? Redactionele wijzigingen worden pas zichtbaar na publiceren; externe JSON ververst bij elke paginalading — ideaal voor prijzen en voorraad.

Het resultaat

Eén read-only collectie die je catalogus volledig verzorgt: een gefilterd overzicht, een detailpagina per product met een stabiele URL, en per-item structured data — allemaal gevoed door het bronsysteem en bij elke paginalading actueel. Verandert er morgen een prijs of komt er een model bij in de PIM, dan staat het meteen goed op je website, zonder dat je één item overtypt.