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 material 2 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 of per_x_aantal) and niet (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:

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>&nbsp;</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:
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>&nbsp;</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:

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>&nbsp;</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:

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: