Naar de inhoud
SyncMyShop

Kennisbank

Straat, huisnummer en toevoeging: één veld, twee of drie?

Webshops bewaren straat, huisnummer en toevoeging in één adresregel. ERP-systemen en vervoerders vragen ze vaak als drie losse velden. De koppeling moet de regel dus splitsen, en een vaste splitsregel gaat bij een deel van de adressen fout.

Bijgewerkt op

Het probleem in één voorbeeld

Een klant vult in de checkout Peizerweg 97 A in. De webshop bewaart dat als één tekst. Het ERP wil drie velden: straat Peizerweg, huisnummer 97, toevoeging A.

De voor de hand liggende regel is: alles voor het eerste getal is de straat, het eerste getal is het huisnummer, de rest is de toevoeging. Die regel werkt voor dit adres. Hieronder staat wat hij met dit adres en zeven andere doet.

Adresregel Straat, nummer, toevoeging volgens de regel Wat er misgaat
Peizerweg 97 A Peizerweg, 97, A niets
Kerkstraat 12 3 hoog Kerkstraat, 12, 3 hoog niets
Plein 1945 12 Plein, 1945, 12 het jaartal hoort bij de straatnaam, het huisnummer is 12
Laan 1940-1945 27 Laan, 1940, -1945 27 zelfde fout, met een onbruikbare toevoeging
Industrieweg 14-16 Industrieweg, 14, -16 een dubbel nummer past niet in een numeriek veld
10 Downing Street geen uitkomst het nummer staat vooraan, zoals in het Verenigd Koninkrijk en Frankrijk
De Hoef geen uitkomst het nummer staat in de tweede adresregel, of ontbreekt
Postbus 123 Postbus, 123, leeg klopt als tekst, maar een pakket gaat niet naar een postbus

Zes van de acht gaan fout of vragen een besluit. Terug samenvoegen is ook niet zonder verlies. Huisnummer 1 met toevoeging 2 wordt aan elkaar geschreven 12, en dat is een ander adres. Met een spatie ertussen staat er 1 2, en de volgende koppeling in de keten weet niet of de 2 een toevoeging of een verdieping is.

Wat systemen verwachten

De veldnamen hieronder komen uit de documentatie van de leveranciers, gecontroleerd op 3 oktober 2026.

Systeem Velden voor straat en nummer Bijzonderheid
Shopify address1, address2 geen huisnummerveld. Land als country_code, twee letters
WooCommerce address_1, address_2 geen huisnummerveld. country als ISO-code van twee letters
Magento 2 street, een lijst van regels 1 tot 4 regels, instelbaar
Exact Online AddressLine1, AddressLine2, AddressLine3 geen huisnummerveld. Adrestype als getal: 1 bezoek, 2 post, 3 factuur, 4 levering
AFAS Profit Ad, HmNr, HmAd drie velden. HmNr is een geheel getal, HmAd maximaal 30 tekens
PostNL Street, HouseNr, HouseNrExt HouseNr alleen cijfers en maximaal 5 voor de Benelux
Sendcloud address, house_number huisnummer als apart veld naast de adresregel

Tussen twee systemen met dezelfde vorm is er weinig aan de hand: van Shopify naar Exact Online gaat de regel ongesplitst over. Het splitsen begint zodra het doel drie velden heeft. Een order uit WooCommerce naar AFAS Profit heeft een geheel getal nodig in HmNr. 14-16 past daar niet in, en 12a ook niet.

Een adres uit Shopify splitsen en normaliseren voor een verzendlabel van PostNL Shopify levert straat, huisnummer en toevoeging in address1. De koppeling splitst dat naar Street, HouseNr en HouseNrExt bij PostNL, zet de postcode in hoofdletters zonder spatie en kapt een bedrijfsnaam van 51 tekens af op 35. Shopify, shipping_address PostNL, Address address1 Peizerweg 97 A zip 9727 aj country_code NL company Bakker Installatietechniek en Duurzame Energie B.V. 51 tekens Street Peizerweg HouseNr 97 alleen cijfers, max. 5 HouseNrExt A Zipcode 9727AJ 6 tekens, zonder spatie Countrycode NL CompanyName Bakker Installatietechniek en Duurz afgekapt op 35 tekens splitsen op nummer hoofdletters, geen spatie
Eén adres uit Shopify naar de velden van PostNL: splitsen, de postcode normaliseren, en een bedrijfsnaam die 16 tekens te lang is.

In de tweede adresregel staat van alles. Klanten zetten er de verdieping in, de afdeling, t.a.v. inkoop, een afleverinstructie of het huisnummer dat ze in regel 1 vergaten. Een koppeling die address2 standaard weggooit, verliest bij een deel van de orders het huisnummer. Een koppeling die het altijd achter de straat plakt, zet achterom bij de loods in het straatveld van het ERP.

Zo komt een afleveradres uit Shopify:

{
  "shipping_address": {
    "company": "Bakker Installatietechniek en Duurzame Energie B.V.",
    "first_name": "Jan",
    "last_name": "Bakker",
    "address1": "Peizerweg 97 A",
    "address2": "t.a.v. inkoop",
    "zip": "9727 aj",
    "city": "Groningen",
    "country_code": "NL"
  }
}

De rest van het adres

Straat en nummer zijn het bekendste probleem. De andere velden hebben elk een eigen variant.

Postcode. Klanten typen 9727AJ, 9727 AJ en 9727 aj. De API van PostNL wil voor Nederland 6 tekens, dus zonder spatie: 9727AJ. Een ERP toont hem meestal met spatie. De koppeling bewaart één vorm en zet die per doel om. Dat geldt alleen voor Nederlandse adressen: een Belgische postcode heeft 4 cijfers.

Land. NL, NLD, Netherlands, Nederland en The Netherlands zijn vijf schrijfwijzen van hetzelfde land. Shopify en WooCommerce leveren de tweeletterige ISO-code. Een ERP dat de volledige naam of een eigen landcode verwacht, heeft een vertaaltabel nodig met elke waarde die in de praktijk voorkomt.

Bedrijf, contactpersoon en t.a.v. Het label van de vervoerder heeft een bedrijfsnaam en een naam nodig, elk met een maximale lengte. PostNL accepteert 35 tekens voor CompanyName en 35 voor Name. DPD hanteert 35 tekens voor de naam en 8 voor het huisnummer. De bedrijfsnaam uit het voorbeeld telt 51 tekens: 51 min 35 is 16 tekens die wegvallen. Op het label staat Bakker Installatietechniek en Duurz. Bij een bedrijfsverzamelgebouw met drie bedrijven die Bakker heten, weet de bezorger niet meer welke.

Drie soorten adressen. Factuuradres, afleveradres en bezoekadres zijn in een ERP losse records. Exact Online geeft elk adres een type, van 1 tot en met 4. Een koppeling maakt een afleveradres alleen aan als het afwijkt van het factuuradres. Vergelijkt hij de ruwe tekst, dan zijn Peizerweg 97 A en Peizerweg 97a twee adressen en krijgt de debiteur bij elke order een nieuw afleveradres. Vergelijken gebeurt dus na het normaliseren. Hetzelfde speelt bij debiteuren, zie dubbele klanten en debiteuren.

Hoe een koppeling dit oplost

Per veld ligt vast welk systeem de waarde bepaalt, hoe de waarde genormaliseerd wordt en wat er gebeurt als hij nergens past. Dat is veldmapping, toegepast op het adres.

Veld Normalisatie Als de waarde niet past
Straat, nummer, toevoeging splitsen per land, met een lijst van straatnamen die een getal bevatten order naar de controlelijst, geen label
Postcode hoofdletters, spatie weg of erbij per doelsysteem controlelijst als het patroon van het land niet klopt
Land vertaaltabel naar de code van het doelsysteem controlelijst bij een onbekende waarde
Bedrijfsnaam lengte meten tegen de limiet van het doel verdelen over twee velden, of controlelijst
Tweede adresregel herkennen: nummer, verdieping of instructie meesturen als opmerking op de order

Voor Nederlandse adressen is er een controle die de splitsing sluitend maakt. Een postcode met een huisnummer hoort bij precies één straat. De koppeling zoekt bij 9727 AJ en nummer 97 de straat op. Is dat de Peizerweg, dan klopt de splitsing. Komt er een andere straat uit, of bestaat het nummer niet bij die postcode, dan gaat de order naar de controlelijst.

De betrouwbaarste oplossing zit aan het begin van de keten. Een checkout met drie velden levert straat, huisnummer en toevoeging gescheiden aan, en dan hoeft niemand te raden. De koppeling leest die velden uit de order en gebruikt de splitsregel alleen voor orders die nog in de oude vorm binnenkomen, zoals orders van marktplaatsen.

Wat betekent dit voor je koppeling?

Wij leggen per adresveld vast hoe het van je webshop naar je ERP en je vervoerder gaat: welke vorm de bron levert, welke vorm het doel vraagt en hoe lang elk veld daar mag zijn. Bij de proefronde voor de livegang lopen je bestaande orders door de splitsregel. Je ziet dan welke adressen niet passen voordat er één label is geprint. Daarna staat elk adres dat de koppeling niet kan plaatsen op een controlelijst in het dashboard, met de oorspronkelijke regel erbij.

De hele orderstroom staat op orders koppelen. Hoe adressen passen in de koppeling met je ERP lees je in je webshop koppelen aan je ERP. Wil je weten wat dit voor jouw systemen betekent, stuur ze dan in.

Veelgestelde vragen

Waarom splitst een koppeling het huisnummer niet gewoon op het eerste cijfer?

Omdat straatnamen ook cijfers bevatten. Bij Plein 1945 12 levert die regel huisnummer 1945 op en toevoeging 12. Bij een Brits adres staat het nummer vooraan en vindt de regel niets. De splitsing heeft daarom een controle nodig, bijvoorbeeld tegen de postcode.

Moet ik mijn checkout aanpassen met een apart veld voor het huisnummer?

Het is de betrouwbaarste oplossing. Vult de klant straat, huisnummer en toevoeging in drie velden in, dan hoeft de koppeling niets te raden. Shopify en WooCommerce hebben standaard alleen twee adresregels, dus de losse velden komen uit een aanpassing van de checkout en reizen als extra velden met de order mee.

Wat gebeurt er met een adres dat de koppeling niet kan splitsen?

De order komt op een controlelijst met de oorspronkelijke adresregel erbij en gaat niet naar de vervoerder. Iemand vult het huisnummer aan en de order loopt door. De order blijft niet hangen zonder melding, en er gaat geen label de deur uit met een leeg of verkeerd huisnummer.

Waarom wordt een lange bedrijfsnaam afgekapt op het verzendlabel?

Omdat het veld bij de vervoerder korter is dan het veld in de webshop. PostNL accepteert 35 tekens voor een bedrijfsnaam, DPD ook. Een naam van 51 tekens verliest 16 tekens. De koppeling meet de lengte vooraf en verdeelt de naam over twee velden of zet de order op de controlelijst.

Hoe gaat een koppeling om met buitenlandse adressen?

Per land met een eigen regel. In Nederland, België en Duitsland staat het nummer achter de straat, in het Verenigd Koninkrijk en Frankrijk ervoor. Een Belgische postcode heeft 4 cijfers en geen letters. De koppeling kiest de splitsregel en de postcodecontrole op basis van de landcode van de order.

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