Systemen
SW-Retail koppeling met je webshop: maatlijnen, voorraad en orders binnen het dagbudget
Een SW-Retail koppeling zet artikelen met hun maatlijn en de voorraad per magazijn uit SW-Retail in je webshop, en schrijft webshoporders terug. De REST-API staat standaard op 2.400 verzoeken per dag, 1 per seconde en alleen na elkaar. De koppeling is gebouwd op die rekensom.
Wat is SW-Retail en wie gebruikt het?
SW-Retail is een kassasysteem met voorraadbeheer voor winkels, in de cloud. Het pakket heeft kassa, voorraad per magazijn, inkoop, relatiebeheer en een eigen PIM, en abonnementen voor een winkel en voor winkel plus webshop (omnichannel). De gebruikers zijn winkeliers met een of meer vestigingen. Voor artikelen in maten heeft SW-Retail maatlijnen, en dat bepaalt hoe een artikel in de webshop terechtkomt.
SW-Retail heeft eigen webshopkoppelingen, onder meer met WooCommerce, Magento, Shoptrader en MyShop, en daarnaast een REST-API voor andere systemen. Voor een eigen koppeling, een webshop buiten die lijst of regels die de standaardkoppeling niet heeft, loopt het over die API.
Wat je met SW-Retail koppelt
SW-Retail is leidend voor artikelen, prijzen en voorraad. De webshop is leidend voor de online order.
| Stroom | Richting | Endpoint in de SW-Retail API |
|---|---|---|
| Artikelen met maatlijn | SW-Retail naar webshop | article, article_changed |
| Voorraad per magazijn | SW-Retail naar webshop | article_stock_changed, article_stock |
| Klanten | webshop naar SW-Retail | relation |
| Orders en retouren | webshop naar SW-Retail | order, sleutel inetnumber |
| Orderstatus en trackingcode | SW-Retail naar webshop | order/changed_since, veld tracker |
| Kassabonnen | SW-Retail naar boekhouding | receipts, 200 per verzoek |
Een webshoporder gaat SW-Retail in met het webshopordernummer in inetnumber. Dat veld is volgens de documentatie de sleutel: een tweede POST of PUT met hetzelfde nummer werkt de order bij in plaats van een nieuwe te maken. Daarmee is een herhaalde poging na een time-out geen dubbele order. De klant moet al bestaan voordat de order binnenkomt: relation_code_invoice en relation_code_ship verwijzen naar een relatie die eerst wordt aangemaakt.
Hoe SW-Retail data vrijgeeft
REST, JSON en een API-sleutel
SW-Retail publiceert zijn API als OpenAPI-specificatie (versie 2.6.2, bekeken op 3 oktober 2026). Elke klant heeft een eigen instantie, en de koppeling praat met {instantie}.cloud.swretail.nl/swcloud, niet met het algemene adres. Inloggen gaat met een API-sleutel in de header X-Auth. Die sleutel maak je in SW-Retail onder Modules, Instellingen, Koppelingen, API Keys, met de machtigingsgroep SW-Retail Webservices. De machtigingen in SW-Retail bepalen ook wat de sleutel mag. Alles gaat als JSON in UTF-8, bedragen met een punt en twee decimalen, datums als yyyy-mm-dd.
De limieten
| Limiet | Waarde |
|---|---|
| Verzoeken per dag | 2.400 standaard, meer op aanvraag |
| Verzoeken per seconde | 1, leaky bucket van 40 |
| Parallel | niet toegestaan, alleen na elkaar |
article_stock_changed |
60 keer per uur, terugkijken tot 1.500 minuten |
article_changed en volledige artikellijst |
2 keer per dag |
| Artikelen per verzoek | 10 |
| Bij overschrijding | foutcode 13, bucket vol |
De volledige lijst staat in de REST-API-documentatie van SW-Retail.
De rekensom
De volledige artikellijst komt in pagina's van 10. Een winkel met 8.000 artikelen kost 800 verzoeken om die in te lezen: een derde van het dagbudget, en de volledige lijst mag maar twee keer per dag. Daarna werkt de koppeling met wijzigingen.
De keuze die het meest scheelt, is hoe vaak de koppeling naar voorraadwijzigingen vraagt. Elke 5 minuten is 288 verzoeken per dag. Elke minuut, het maximum van 60 per uur, is 1.440: 60% van het budget, voordat er een artikel of order is opgehaald. Met 900 gewijzigde artikelen per dag, 10 per verzoek, is het ophalen 90 verzoeken, en 150 orders met elk een klant en een order zijn er 300. Bij elke 5 minuten blijft er 1.722 over; bij elke minuut 570.
Waar het bij SW-Retail op vastloopt
Maatlijnen en posities
Een artikel met maten heeft in SW-Retail een maatlijn (sizeruler) met posities. Elke positie heeft een eigen barcode en een eigen voorraad, en kan een prijsverschil hebben: salepricedelta is bijvoorbeeld 4,00 goedkoper voor de kleinste maat. Een order wijst een maat aan met size_pos of met de barcode.
De webshop kent een variant met een eigen SKU en een eigen prijs. De koppeling maakt per positie een variant, zet de barcode als sleutel en rekent de prijs uit: een basisprijs van 89,95 met een delta van min 4,00 wordt 85,95 voor die maat. Een positienummer zegt alleen iets binnen één maatlijn, dus de koppeling matcht een variant op barcode en niet op positie.
Artikelnummer en seizoen
Het artikelnummer is in SW-Retail alleen uniek in combinatie met het seizoen: article_number plus article_season. Hetzelfde nummer kan in de zomer- en wintercollectie een ander artikel zijn. De webshop kent maar één SKU. De koppeling bouwt de sleutel daarom uit beide velden, bijvoorbeeld 4410-261 voor artikel 4410 in seizoen 261, of gebruikt het article_id van SW-Retail. Zie SKU of EAN.
Prijzen inclusief en exclusief btw
article_baseprice, de adviesprijs, is inclusief btw; article_basepurprice, de inkoopprijs, exclusief. Er is een aparte article_price_web en een article_price_wholesale. Een order met wholesale op 1 is een B2B-order en gebruikt de groothandelsprijs exclusief btw als de orderregels geen prijs meegeven. Verzendkosten gaan in shipping_value inclusief btw. De koppeling legt per webshop vast welke prijs de webshop toont en of de orderregels hun eigen prijs meesturen; anders rekent SW-Retail met zijn eigen kortingsregels en wijkt het ordertotaal af van wat de klant betaalde. Zie bedragen en btw mappen.
Platformen die we aan SW-Retail koppelen
Per combinatie zijn er nog geen eigen pagina's. De webshopkant staat per platform beschreven: WooCommerce koppeling, Shopify koppeling, Magento koppeling en PrestaShop koppeling. Andere kassasystemen: Lightspeed Kassa koppeling en Mplus koppeling. Het overzicht van de voorraadstromen staat op voorraad koppelen.
Wij bouwen de koppeling voor een vaste prijs en hosten, draaien en bewaken hem daarna voor een vast bedrag per maand. Voor de livegang draait hij als dry run: je ziet per artikel welke varianten, prijzen en voorraad de webshop zou krijgen, en hoeveel van het dagbudget de koppeling gebruikt. Vertel hoeveel artikelen en orders per dag je hebt, dan rekenen we het budget voor jouw winkel uit.
Veelgestelde vragen
Zit de REST-API in elk SW-Retail-abonnement?
Nee. Op de prijspagina van SW-Retail staat de REST-API aangevinkt bij Winkel uitgebreid en Omnichannel uitgebreid, en niet bij de basis- en complete abonnementen (bekeken op 3 oktober 2026). De webshopkoppeling staat bij de winkelabonnementen ook alleen bij Winkel uitgebreid. Controleer je abonnement voordat de koppeling gebouwd wordt.
Is 2.400 verzoeken per dag genoeg?
Voor de meeste winkels met een webshop wel, als de koppeling er zuinig mee omgaat: voorraadwijzigingen elke 5 minuten, artikelen in groepjes van 10 en per order twee verzoeken. Dan blijft er bij 150 orders per dag ruim 1.700 over. Wie meer nodig heeft, vraagt SW-Retail om een hogere limiet; de documentatie noemt dat expliciet.
Hoe komen maten en kleuren in de webshop?
Een artikel in SW-Retail heeft een maatlijn met posities. Elke positie is een maat met een eigen barcode, een eigen voorraad en eventueel een prijsverschil. De koppeling maakt van het artikel één product en van elke positie een variant. Zie varianten.
Hoe gaan retouren uit de webshop naar SW-Retail?
Als order met negatieve aantallen. Het veld linked_id verwijst naar de oorspronkelijke order. De koppeling vult het bij elke retour, zodat de retour aan de juiste verkoop hangt. Zie retouren en creditnota's.
Wat als SW-Retail de API verandert?
SW-Retail schrijft dat de API kan veranderen, dat ze hun best doen niets te breken en dat ze een brekende wijziging vroeg aankondigen. Wij volgen die aankondigingen en passen de koppeling aan als een veld of endpoint verandert.
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