Naar hoofdinhoud

KoppelingenCycleSoftware

CycleSoftware API koppelen aan je webshop.

Met de CycleSoftware API staan je fietsen en artikelen met de voorraad van dat moment op je webshop, en komt een bestelling terug in het systeem waar je toch al in werkt. CycleSoftware is het kassa-, voorraad- en werkplaatssysteem van de tweewielerbranche.

Vertrouwd door

200+ bedrijven en webshops

Dux
Swim Essentials
Vouwwagenspecialist
Fit Preps
Fysio Moov
Mörgenn
MBST
Sunwave Brands
Flaske
Boumij Makelaars

Wat het oplevert

Wat een koppeling met CycleSoftware je oplevert.

Voorraad van dat moment. Fietsen en artikelen staan op je site met de voorraad zoals die in de winkel is, en met de voorraad van je leverancier erbij.

Bestellingen in je kassa. Een order uit je webshop komt binnen in CycleSoftware, met de producten en de klantgegevens erbij.

Filters die echt werken. De artikeldata komt uit de branchestandaard DST, dus maat, kleur, merk en motorvermogen zijn losse velden.

Technisch

De koppeling in het kort.

Vorm van de koppeling
REST met JSON via CS Connect, daarnaast oudere SOAP-webservices
Authenticatie
HTTP Basic met gebruikersnaam, wachtwoord en api-key, per vestiging
Richting
Beide kanten op
Verversing
Voorraad bij het opvragen; wijzigingen in orders, offertes, werkplaats en facturen via webhooks
Wij bouwen het op
WordPress, Next.js, Maatwerk

Waar het misgaat

  • De API’s zitten achter CS Connect. Daarmee komen de scopes e-commerce, resources, stock-export, sales-export, rental en webhooks beschikbaar. Staat CS Connect niet op het account, dan kan er niets worden opgehaald en niets worden getest. Dat is dus de eerste stap van het traject en niet iets wat je onderweg regelt.
  • Er zit een limiet per minuut en per dag. Sinds mei 2022 geeft elk antwoord headers mee met wat je nog over hebt, en bij overschrijding volgt een 429. Dat bepaalt hoe je het bouwt: je haalt periodiek op en slaat lokaal op, en je vraagt niet bij elke bezoeker live aan CycleSoftware. Bij een winkel met duizenden artikelen is dat het verschil tussen een site die het houdt en een site die halverwege de middag stilvalt.
  • Paginering gaat op twee manieren. De meeste lijsten werken met een offset, de nieuwere artikeldata met een adres naar de volgende pagina. Bouw je op offset terwijl de bron het andere gebruikt, dan sla je stilletjes artikelen over zodra de lijst verandert terwijl je hem doorloopt. Kijk dus per endpoint wat er staat.
  • De artikeldata komt uit DST, de branchestandaard voor tweewielers, en dat is de reden dat filteren op een fietsenwebshop überhaupt werkt. Maar niet elk merk levert volledig aan. Reken erop dat een deel van je aanbod minder velden heeft en bouw je filters zo dat een leeg veld een fiets niet laat verdwijnen uit de resultaten.

Bron: documentatie van CycleSoftware B.V., Nistelrode

Wat is CycleSoftware?

CycleSoftware is bedrijfssoftware voor de tweewielerbranche, gemaakt door CycleSoftware B.V. in Nistelrode. Het is geen voorraadpakket alleen: kassa, voorraad, pakbonverwerking, verkoopregistratie, werkplaatsplanning en verhuur zitten er allemaal in, en het draait online.

Voor een fietsenwinkel is dat het systeem waar de dag in begint en eindigt. Dat is ook meteen het uitgangspunt van een koppeling: de winkel blijft in CycleSoftware werken en de website haalt op wat daar staat. Twee plekken waar je voorraad bijhoudt is geen koppeling maar een probleem.

Welke data de API met je webshop uitwisselt

Twee kanten op, en dat is wat deze koppeling anders maakt dan een gewone voorraadfeed.

Naar je site gaan de tweewielers en de artikelen, met de voorraadstand van dat moment, de voorraadindicatie van je leverancier, je winkel- of webshopprijs en de volledige productinformatie met foto’s en de DST-productcategorieën. Dat laatste is wat je zoekfilters en je categoriepagina’s voedt.

Terug komen de bestellingen. Een order uit je webshop verschijnt in CycleSoftware met de producten en de klantgegevens erbij, zodat je hem afhandelt vanuit hetzelfde systeem als een verkoop aan de balie. Met de webhooks-API krijg je daarnaast bericht bij wijzigingen in orders, offertes, werkplaats en facturen, zodat je site niet hoeft te blijven vragen of er al iets is.

Stappen om je webshop via de CycleSoftware API te koppelen

De toegangsgegevens komen van CycleSoftware zelf of staan in de gebruikersaccounts; heb je ze niet, dan vraag je ze aan bij support@cyclesoftware.nl. Je meldt je aan met HTTP Basic Authentication, met gebruikersnaam en wachtwoord, en de api-key erbij. Alles gaat over HTTPS, en CycleSoftware raadt gzip aan.

Let op het land. Er zijn aparte adressen voor Nederland, België en Frankrijk: api.cyclesoftware.nl, api.cyclesoftware.be en api.cyclesoftware.fr. Heeft een account meer dan één winkel, dan geef je met dealer_id aan om welke winkel het gaat.

Voor een webshop tellen drie onderdelen. De artikeldata voor e-commerce komt uit versie 4 van de API, met de voorraad erbij. Een bestelling gaat terug met saveorder, en met getorderstatus vraag je op hoe het met die order staat.

Een testomgeving noemt de documentatie niet. Wij beginnen daarom met alleen ophalen, zodat er niets in de kassa verandert, en zetten het wegschrijven van orders pas aan als artikelen en voorraad kloppen. Een geweigerde aanroep komt terug met een veld error en een error_message; die loggen we, want daar staat in waarom. Of de webshop daarna op WooCommerce, Shopify of maatwerk draait, staat bij Design & Development.

De limiet van de CycleSoftware API bepaalt hoe je bouwt

Dit is het punt waar een integratie misgaat, en het is geen detail. De CycleSoftware API limiteert het aantal aanvragen per endpoint: 360 per minuut en 15.000 per dag. Elk antwoord vertelt in de headers X-RateLimit-Minutely-Remaining en X-RateLimit-Daily-Remaining hoeveel je er nog over hebt, en ga je eroverheen dan krijg je een 429 terug en niets anders.

De verleiding is om de voorraad live op te vragen bij elke bezoeker, want dan klopt hij altijd. Dat gaat goed tot de eerste drukke dag. Wij halen daarom periodiek op en bewaren het aan onze kant, en vragen alleen de voorraadstand van één artikel live op waar dat echt uitmaakt, zoals op de productpagina zelf.

Hoe vaak dat moet hangt af van je winkel. Een fiets die één keer verkocht wordt vraagt iets anders dan een band die je met tientallen tegelijk hebt liggen. Die afweging maken we per klant, en we zetten er een melding op als het ophalen stilvalt. Niet elk systeem telt zo: de Itsperfect API rekent per uur, met 750 aanroepen, en daar hoort een ander ophaalritme bij.

Waarom DST-data het verschil maakt

DST is de branchestandaard voor artikeldata in de tweewielerbranche. Leveranciers leveren hun producten daar op één manier aan, en CycleSoftware gebruikt die data.

Voor een webshop is dat precies wat je nodig hebt. Merk, maat, kleur, framehoogte en motorvermogen zijn losse velden en geen zinnen in een omschrijving, dus je kunt er echt op filteren. Zonder zo’n standaard eindig je met filters die op tekst zoeken en dan valt de helft van je aanbod eruit omdat de ene leverancier "28 inch" schrijft en de andere "28".

Eén ding om rekening mee te houden: niet elk merk levert volledig aan. Wij bouwen de filters daarom zo dat een ontbrekend veld een product niet uit de resultaten haalt, want anders verdwijnt precies het aanbod waar de gegevens nog niet compleet van zijn.

Bijgewerkt op

Specialist voor koppelingen

Portret van Jos van der Pluijm tussen de stellingen van een magazijnJosDesign & Development085 83 30 533jos@klubb.nl

Veelgestelde vragen

Kan ik mijn CycleSoftware-voorraad op mijn eigen webshop tonen?

Ja. CycleSoftware heeft daar een webshopkoppeling voor: je tweewielers en artikelen verschijnen op je site met de voorraad van dat moment, je prijs en de productinformatie met foto’s. De koppeling kan door elke webshopbouwer worden ingebouwd, dus je zit niet vast aan één leverancier.

Komen bestellingen uit mijn webshop in CycleSoftware terecht?

Ja, dat is de andere kant van dezelfde koppeling. Een order verschijnt in CycleSoftware met de producten en de klantgegevens erbij, zodat je hem afhandelt vanuit je eigen kassasysteem en je voorraad blijft kloppen. Je hoeft niets over te typen.

Heeft CycleSoftware een API?

Ja, en de documentatie is openbaar. Het zijn REST-endpoints die JSON teruggeven, met scopes voor e-commerce, voorraad, verkoop, verhuur en webhooks. Je hebt er wel CS Connect voor nodig op je account; dat is wat die scopes vrijgeeft.

Hoe actueel is de voorraad op mijn site?

Dat is een keuze en geen vaststaand gegeven. CycleSoftware limiteert het aantal aanvragen per minuut en per dag, dus live opvragen bij elke bezoeker kan niet. Wij halen periodiek op en vragen de stand van één artikel live op waar dat uitmaakt, zoals op de productpagina.

Werkt een CycleSoftware-koppeling ook op WordPress?

Ja. We slaan de opgehaalde fietsen en artikelen op als eigen berichttype in WordPress, zodat zoeken, filteren en losse productpagina’s werken zoals de rest van je site. CycleSoftware blijft leidend: je beheert de producten daar en niet in WordPress.

Wat betekent een 429 van de CycleSoftware API?

Dat de limiet is bereikt: 360 aanvragen per minuut of 15.000 per dag, per endpoint. In de headers van elk antwoord staat hoeveel je er nog over hebt, en bij de daglimiet ook wanneer de teller opnieuw begint. Wij lezen die headers mee en remmen het ophalen af voordat de grens in zicht komt, zodat de voorraad op je site bijgewerkt blijft.

Wat kost een CycleSoftware-koppeling met mijn webshop?

Een CycleSoftware-koppeling krijgt bij ons een vaste prijs in de offerte, nadat we de scope hebben uitgezocht. Omdat bestellingen ook terug naar de kassa gaan, komt er naast het ophalen van voorraad testen bij. Reken ook op CS Connect op je account; zonder dat is er geen toegang.

Let's work together.

Je winkelvoorraad en je webshop uit één systeem.