Producten¶
Huidige versie: 1.0.0
Create¶
- POST /api2/producten¶
Maak een nieuw product
Voorbeeld request:
POST /api2/producten HTTP/1.1 Host: demo.recras.nl Accept: application/json { "aantal": 1, "aantalbepaling": "per_x_personen", "beschrijving_klant": "Lekker een uur klimmen in ons prachtige klimbos", "btw": 21, "duur": "PT1H", "extra": { "tag": "klimmen" } "inkoop": 0, "leverancier_id": 3, "locatie_verplicht": true, "Locaties": [ { "id": 27, "naam": "Klimbos", "kleur": "#40ed21", "weergavenaam": "Klimbos", "adres": "Steenhopenweg 4", "postcode": "9533PN", "plaats": "Drouwen", "telefoonnummer": "", "latitude": 52.95123, "longitude": 6.746721, "capaciteit": null, "aantal_groepen": null, "uitgebreide_omschrijving": "", "image_filename": "", "parent_id": 28 }, { "id": 28, } ], "Materialen": [ { "materiaal_id": 3, "aantal": 1, "per_x_aantal": 1, "afronding": "boven" } ], "los_op_planning": true, "minimum_aantal": 1, "naam": "Klimmen 1u kind", "per_x_personen": 1, "per_x_personen_afronding": "boven", "personeelsinstructie": "Let goed op de jongste kinderen", "planstrategie": null, "productgroep_id": 1, "Standaardbijlagen": [], "uitgebreide_omschrijving": "Nadat je instructies hebt gekregen kun je lekker een uur vrij klimmen in ons klimbos.", "verkoop": 15, "weergavenaam": "1 uur klimmen voor kinderen", "ProductPrice": [ { "btw": 21, "verkoop": 15, } ] }
Voorbeeld response:
HTTP/1.1 201 Created Content-Type: application/json Location: /api2/producten/5 { "aantal": 1, "aantalbepaling": "per_x_personen", "beschrijving_klant": "Lekker een uur klimmen in ons prachtige klimbos", "btw": 21, "duur": "PT1H", "extra": { "tag": "klimmen" } "inkoop": 0, "leverancier_id": 3, "locatie_verplicht": true, "Locaties": [ { "id": 27, "naam": "Klimbos", "kleur": "#40ed21", "weergavenaam": "Klimbos", "adres": "Steenhopenweg 4", "postcode": "9533PN", "plaats": "Drouwen", "telefoonnummer": "", "latitude": 52.95123, "longitude": 6.746721, "capaciteit": null, "aantal_groepen": null, "uitgebreide_omschrijving": "", "image_filename": "", "parent_id": 28 }, { "id": 28, } ], "los_op_planning": true, "minimum_aantal": 1, "naam": "Klimmen 1u kind", "per_x_personen": 1, "per_x_personen_afronding": "boven", "personeelsinstructie": "Let goed op de jongste kinderen", "planstrategie": null, "productgroep_id": 1, "Standaardbijlagen": [], "uitgebreide_omschrijving": "Nadat je instructies hebt gekregen kun je lekker een uur vrij klimmen in ons klimbos.", "verkoop": 15, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "weergavenaam": "1 uur klimmen voor kinderen", }
- JSON Parameters:
duur (string) – Een ISO8601-duur
extra (object) – Een key-value-object met extra velden
Locaties (array) – Een array van alle locaties waarop dit product mag plaatsvinden. Alleen het veld id hierin is vereist.
inkoop (float) – Verplicht de inkoopprijs van het product. Mag wel 0 zijn.
verkoop (float) – Deprecated de verkoopprijs van het product (use ProductPrice instead)
leverancier_id (int) – Verplicht het id van de leverancier
minimum_aantal (int) – Verplicht het minimumaantal dat van dit product moet worden afgenomen
naam (string) – Verplicht De interne naam van het product
weergavenaam (string) – De naam van het product zoals die aan klanten wordt getoond
Materialen (array) – A list of material usage objects. Example: tandem bikes: use
{"id": 2, "aantal": 1, "per_x_aantal": 2, "afronding": "boven"}
to require 1 unit of material2
per 2 units (rounded up) of this product booked.Materialen.materiaal_id (int) – Required A reference to a material
id
Materialen.aantal (float) – Required The amount of material that this product uses
Materialen.per_x_aantal (int) – Required With which amount of this product the material use increases
Materialen.afronding (string) – Required Rounding of the number of products. Possible values are
boven
(for rounding up to the nearest multiple ofper_x_aantal
) andniet
(for no rounding)ProductPrice (array) – A list of prices for this product, allows to use multiple vat tariffs. Example:
"ProductPrice": [{"btw": 21,"verkoop": 15,}]
- Response Headers:
Location – De locatie van het nieuwe product
- Status Codes:
201 Created – Product gemaakt
406 Not Acceptable – Fout in de invoer
403 Forbidden – Gebruiker heeft het recht
editProducten
niet
Read¶
- GET /api2/producten¶
De producten in Recras
Voorbeeld request:
GET /api2/producten HTTP/1.1 Host: demo.recras.nl Accept: application/json
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json [ { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "minimum_aantal": 8, "duur": "PT2H30M00S", "btw": 6, "beschrijving_klant": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "uitgebreide_omschrijving": "<p>Waan jezelf Tarzan, Jane in ons 20 hectare grote klimbos. In het klimbos zijn 12 verschillende routes met in totaal 124 hindernissen, voor elk wat wils!</p> <p> </p> <p><strong>Instructie:</strong></p> <p>Na de uitgebreide instructie op het instructieparcours, door 1 van onze gediplomeerde instructeurs, is het tijd om zelf de bomen in te gaan. Tijdens de eerste routes zullen de begeleiders u nog goed in de gaten houden, indien u heeft laten zien dat u het klimmen goed onder de knie heeft mag u zelfstandig de laatste parcoursen afleggen!</p>", "productgroep_id": 3, "mag_api": true, "los_op_planning": true, "planstrategie": "drukte", "personeelsinstructie": "", "locatie_verplicht": true, "extra": null, "aantalbepaling": "per_x_personen", "aantal": 1, "per_x_personen": 1, "per_x_personen_afronding": "boven", "is_deleted": false, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "afbeelding_href": "/api2/producten/6/afbeelding" } ]
- Status Codes:
200 OK – no error
- GET /api2/producten/(int: id)¶
Een specifiek product
Example request:
GET /api2/producten/6 HTTP/1.1 Host: demo.recras.nl Accept: application/json
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "minimum_aantal": 8, "duur": "PT2H30M00S", "btw": 6, "beschrijving_klant": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "uitgebreide_omschrijving": "<p>Waan jezelf Tarzan, Jane in ons 20 hectare grote klimbos. In het klimbos zijn 12 verschillende routes met in totaal 124 hindernissen, voor elk wat wils!</p> <p> </p> <p><strong>Instructie:</strong></p> <p>Na de uitgebreide instructie op het instructieparcours, door 1 van onze gediplomeerde instructeurs, is het tijd om zelf de bomen in te gaan. Tijdens de eerste routes zullen de begeleiders u nog goed in de gaten houden, indien u heeft laten zien dat u het klimmen goed onder de knie heeft mag u zelfstandig de laatste parcoursen afleggen!</p>", "productgroep_id": 3, "mag_api": true, "los_op_planning": true, "planstrategie": "drukte", "personeelsinstructie": "", "locatie_verplicht": true, "extra": null, "aantalbepaling": "per_x_personen", "aantal": 1, "per_x_personen": 1, "per_x_personen_afronding": "boven", "is_deleted": false, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "afbeelding_href": "/api2/producten/6/afbeelding" }
- Status Codes:
200 OK – OK
404 Not Found – Geen product met dit
id
Update¶
- PUT /api2/producten/(int: id)¶
Voorbeeld request:
PUT /api2/producten/6 HTTP/1.1 Host: demo.recras.nl Accept: application/json { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "minimum_aantal": 8, "duur": "PT2H00M00S", }
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "minimum_aantal": 8, "duur": "PT2H00M00S", "btw": 6, "beschrijving_klant": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "uitgebreide_omschrijving": "<p>Waan jezelf Tarzan, Jane in ons 20 hectare grote klimbos. In het klimbos zijn 12 verschillende routes met in totaal 124 hindernissen, voor elk wat wils!</p> <p> </p> <p><strong>Instructie:</strong></p> <p>Na de uitgebreide instructie op het instructieparcours, door 1 van onze gediplomeerde instructeurs, is het tijd om zelf de bomen in te gaan. Tijdens de eerste routes zullen de begeleiders u nog goed in de gaten houden, indien u heeft laten zien dat u het klimmen goed onder de knie heeft mag u zelfstandig de laatste parcoursen afleggen!</p>", "productgroep_id": 3, "mag_api": true, "los_op_planning": true, "planstrategie": "drukte", "personeelsinstructie": "", "locatie_verplicht": true, "extra": null, "aantalbepaling": "per_x_personen", "aantal": 1, "per_x_personen": 1, "per_x_personen_afronding": "boven", "is_deleted": false, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "afbeelding_href": "/api2/producten/6/afbeelding" }
- JSON Parameters:
id (int) – ID-nummer, mag niet veranderd worden
- Status Codes:
200 OK – Product aangepast
406 Not Acceptable – Fout in de invoer
403 Forbidden – Gebruiker heeft het recht
editProducten
niet
Delete¶
- DELETE /api2/producten/(int: id)¶
Voorbeeld request:
DELETE /api2/producten/6 HTTP/1.1 Host: demo.recras.nl
Voorbeeld response:
HTTP/1.1 200 OK
- Status Codes:
200 OK – Product verwijderd
403 Forbidden – Gebruiker heeft het recht
editProducten
niet