Kade-171
Eén serviesset, dertig onderdelen op voorraad.
Kade-171 verkoopt servies in sets én los. Voor hen bouwden we een custom Shopify-app die beide voorraden automatisch gelijk houdt: een set staat alleen te koop als alle onderdelen er echt zijn, en elke verkoop boekt de losse borden en mokken af.
Bekijk de website

Twee voorraden die uit elkaar liepen
Zonder app
In Shopify is een set een los product met een eigen voorraad. Verkoop je een set, dan weten de losse borden dat niet. Verkoop je een los bord, dan staat de set gewoon nog te koop. Alles bijhouden was handwerk.
Met de app
Elke set weet uit welke onderdelen hij bestaat en hoeveel van elk. Een bestelling boekt de onderdelen af, en de voorraad van elke set wordt opnieuw berekend uit wat er echt op de plank ligt.
Reken zelf mee
Zo rekent de app voor de Luca-set van 30 delen: 6 stuks van elk onderdeel per set. Pas de voorraad van de onderdelen aan of verkoop een set: het onderdeel waar het eerst op stokt, bepaalt hoeveel sets er te koop staan.
Rekenvoorbeeld. De voorraadaantallen zijn verzonnen; de rekenregel is die van de app.
4sets te koop
Beperkt door de diepe borden.
Wat de app doet
Een order boekt de onderdelen af
Wordt een set besteld, dan gaat elk onderdeel eraf, ook in sets die weer uit sets bestaan. Een order wordt nooit twee keer verwerkt.
Webhooks orders/create en orders/paid, Shopify Flow
Elke set opnieuw berekend
Na een order met een set rekent de app de voorraad van alle sets opnieuw uit en schrijft alleen weg wat afwijkt.
Shopify GraphQL, inventorySetQuantities
Annuleren zet terug
Een geannuleerde order brengt de onderdelen terug op voorraad, tenzij de terugbetaling zegt dat het niet hoeft.
Webhook orders/cancelled
Handmatig bijgewerkt, toch klopt het
Past iemand de voorraad van een los bord aan, dan worden alleen de sets bijgewerkt die dat bord gebruiken.
Webhook inventory_levels/update, wachtrij
Een set anders samengesteld
Verandert de inhoud van een set, dan rekent de app die set en de sets erboven direct opnieuw uit.
Webhook products/update
Elk kwartier een controle
Een vaste taak rekent elke 15 minuten alle sets na, als vangnet voor wat er onderweg misging.
Geplande taak in Laravel
In de Shopify-admin
Kade-171 beheert alles vanuit een eigen scherm in Shopify, in het Nederlands, Engels, Duits en Frans. Het startscherm legt in een paar zinnen uit wat de app op de achtergrond doet, met de weg naar de sets en het logboek.
- Fouten vooraf zichtbaar: onderdelen die in een set staan maar niet in de winkel bestaan, of naar hun eigen set verwijzen, staan bovenaan, met een link naar de plek in Shopify waar je ze herstelt.
- Sets in Shopify zelf: welke onderdelen in een set zitten, legt Kade-171 vast in Shopify met metaobjecten, niet in een apart systeem.
- Een logboek: de activiteit van de afgelopen week, achter Geschiedenis bekijken.

Alle sets in één overzicht
Per set zie je de huidige voorraad, uit hoeveel onderdelen hij bestaat, hoeveel sets er met de losse voorraad te maken zijn en of die twee gelijklopen. Filteren kan op titel, SKU en status.
- Welk onderdeel beperkt: per set staat welk onderdeel de voorraad beperkt, zodat je ziet wat je moet bijbestellen.
- Eén klik: één set of alle sets tegelijk opnieuw synchroniseren.
- Activiteit bovenaan: het aantal synchronisaties van de afgelopen week en welke producten het vaakst worden bijgewerkt.

- 6
- webhooks die de voorraad bijhouden
- 15
- minuten tussen elke controle van alle sets
- 5
- niveaus diep: sets in sets in sets
- 4
- talen in het beheerscherm
Gebouwd met Laravel, React en Polaris, de Shopify GraphQL Admin API en Shopify Flow.
Diensten in deze case
Verkoop jij ook sets?
Of het nu servies, verzorging of onderdelen zijn: we laten je voorraad kloppen, hoe je producten ook gecombineerd worden.