Hier vind je een uitgebreide handleiding over hoe je een Order aanmaakt in Skyplanner met alle bijbehorende gegevens. Een deel hiervan is al behandeld in de integratietutorial, maar hier gaan we dieper in op de gegevensstructuur en het integratieproces van Skyplanner.
Gegevensstructuur #
Eerst bekijken we hoe een Skyplanner-bestelling is opgebouwd. De API-endpoints voor de hier genoemde data-entiteiten zijn als volgt gemarkeerd: /phaser-orders
Op het hoogste niveau hebben we de bestelling(/phaser-orders)
Elke bestelling moet een klant(/klanten) hebben.
Elke Order kan meerdere Order-items hebben(/phaser-Order-items)
Aan elk orderitem kan een Product(/products) worden gekoppeld, maar dat is niet verplicht. Elk Product heeft een voorraad(/saldos). Merk op dat de voorraadentiteit automatisch wordt aangemaakt wanneer een Product wordt aangemaakt met de API.
Elk orderitem kan meerdere jobs hebben (ook wel processtappen genoemd)(/phaser-jobs).
Elke taak moet een workstage(/workstages) hebben.
Integratie workflow #
Hier is een stap-voor-stap voorbeeld van hoe je de integratie van je ERP-systeem naar Skyplanner zou kunnen structureren.
- Verkoop-/werkorder ophalen uit ERP
- Creëer klant (krijg klant id in antwoord)
- Maak Order aan met klant id (krijg Order id in antwoord)
- Verkoop-/werkorderorderitemgegevens ophalen uit ERP
- Product maken (krijg Product id in antwoord)
- Bestelitem maken met bestelid en andere gegevens (bestelitem id krijgen in antwoord)
- Gegevens van processtappen ophalen uit ERP
- Maak workstage (krijg workstage id in antwoord)
- Taak aanmaken met workstage id en andere gegevens
Extra tips #
Bij het verwijderen #
Het verwijderen van phaser-orders, phaser-Order-items of phaser-jobs via de API (en vanuit de UI) gebeurt op een soft delete manier. Dit betekent dat de gegevens niet daadwerkelijk uit de database worden verwijderd, maar worden gemarkeerd als gearchiveerd. In feite wordt het is_archive attribuut van de entiteit op true gezet wanneer deze wordt verwijderd. De gearchiveerde/verwijderde entiteiten zijn nog steeds toegankelijk met de API met behulp van de include_archived parameter. Wanneer include_archived=true, zal een GET-verzoek de entiteit ophalen, zelfs als deze gearchiveerd is.
Merk op dat zacht verwijderen niet beschikbaar is in elk API-eindpunt! Je moet dus voorzichtig zijn, want het verwijderen van bijvoorbeeld klanten, mensen etc. is permanent!
Standaard processtappen gebruiken voor je bestelitem #
Als je een aantal standaard processtappen hebt gemaakt voor het Product dat je bestelitem produceert, kun je het systeem vertellen om de standaardstappen naar het bestelitem te brengen met de API door het get_default_steps attribuut te gebruiken.
Materialen toevoegen aan bestelitem #
Als je materialen hebt gekoppeld aan het geproduceerde Product, worden ze automatisch gekoppeld aan de bestelrij.
Als je echter niet de materialen wilt gebruiken die aan het Product zijn gekoppeld (bijvoorbeeld als het artikel een speciale bestelling is en je andere materialen wilt gebruiken), kun je het kenmerk use_custom_materials gebruiken.