Tabellen: aanbod
Het aanbod van de business: producten met varianten, voorraad en afbeeldingen, categorieën, diensten met hun onderdelen, en kortingen. Relaties met categorieën, klantgroepen en kortingen staan als lijst van kenmerken in de regel zelf. Terug naar het formaat.
CreatedByProfileId en UpdatedByProfileId verwijzen naar de medewerker in employees die het aanmaakte of het laatst wijzigde.
products
Bestand: aanbod/products.json. Eén regel per product. Sleutel: product_id.
Verwijst naar: product_type_id naar product_types, categories naar categories, visible_for_profile_types naar profile_types.
| Veld | Type | Betekenis |
|---|---|---|
| product_id | string | Kenmerk (uuid) |
| product_name | string | Naam |
| short_description, long_description | string | Korte en lange omschrijving |
| base_price | number | Basisprijs in euro's |
| tax_percentage | number | Btw-percentage |
| currency | string | Valuta, bijvoorbeeld EUR |
| status | string | Status |
| visibility | string | Zichtbaarheid |
| order | number | Volgorde |
| manage_stock | boolean | Voorraad bijhouden |
| has_config, has_complex_config | boolean | Heeft keuzeopties (varianten) |
| product_type_id | string | Producttype (uuid) |
| friendly_url | string | Deel van de url van de productpagina |
| attributes | object | Extra eigenschappen, volgens het producttype |
| created | string (datum-tijd, zonder tijdzone) | Aangemaakt |
| updated | string (datum-tijd, zonder tijdzone) | Gewijzigd |
| CreatedByProfileId, UpdatedByProfileId | string | Medewerker die het aanmaakte en die het laatst wijzigde |
| categories | array | Kenmerken van de categorieën |
| visible_for_profile_types | array | Klantgroepen voor wie het product zichtbaar is; leeg is voor iedereen |
{
"product_id": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
"product_name": "Shampoo 500 ml",
"short_description": "Milde shampoo",
"long_description": "<p>Geschikt voor dagelijks gebruik.</p>",
"base_price": 12.5,
"tax_percentage": 21,
"currency": "EUR",
"status": "active",
"visibility": "public",
"order": 1,
"manage_stock": true,
"has_config": false,
"has_complex_config": false,
"product_type_id": null,
"friendly_url": "shampoo-500-ml",
"attributes": {},
"created": "2025-05-01T09:00:00",
"updated": "2026-09-01T12:00:00",
"CreatedByProfileId": "e1e2e3e4-f5f6-4a7b-8c9d-0e1f2a3b4c5d",
"UpdatedByProfileId": "e1e2e3e4-f5f6-4a7b-8c9d-0e1f2a3b4c5d",
"categories": ["3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f"],
"visible_for_profile_types": []
}
product_types
Bestand: aanbod/product_types.json. Producttypes: welke extra eigenschappen een product heeft. Sleutel: producttypeid.
| Veld | Type | Betekenis |
|---|---|---|
| producttypeid | string | Kenmerk (uuid) |
| name | string | Naam |
| attributeset | object | De eigenschappen van dit type |
| attributesetui | object | Hoe de eigenschappen in het dashboard worden getoond |
{ "producttypeid": "4d5e6f7a-8b9c-4d0e-8f1a-2b3c4d5e6f7a", "name": "Haarproduct", "attributeset": { "inhoud": "string" }, "attributesetui": {} }
reference_products
Bestand: aanbod/reference_products.json. Relaties tussen producten, zoals "past hier ook bij". Sleutel: id.
Verwijst naar: rootproductid en targetproductid naar products.
| Veld | Type | Betekenis |
|---|---|---|
| id | string | Kenmerk (uuid) |
| rootproductid | string | Product waarbij de relatie hoort |
| targetproductid | string | Product waarnaar verwezen wordt |
| type | string | Soort relatie, bijvoorbeeld upsell of cross-sell |
{ "id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8c", "rootproductid": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "targetproductid": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a", "type": "upsell" }
configurations
Bestand: aanbod/configurations.json. Soorten keuzeopties, zoals maat of kleur. Sleutel: configuration_id.
| Veld | Type | Betekenis |
|---|---|---|
| configuration_id | string | Kenmerk (uuid) |
| configuration_type | string | Soort keuzeoptie |
| configuration_name | string | Naam |
{ "configuration_id": "6f7a8b9c-0d1e-4f2a-8b3c-4d5e6f7a8b9c", "configuration_type": "select", "configuration_name": "Maat" }
configuration_values
Bestand: aanbod/configuration_values.json. De waarden van een keuzeoptie, zoals S, M en L. Sleutel: configuration_value_id.
Verwijst naar: configuration_id naar configurations.
| Veld | Type | Betekenis |
|---|---|---|
| configuration_value_id | string | Kenmerk (uuid) |
| configuration_id | string | Keuzeoptie (uuid) |
| image_id | string | Afbeelding bij deze waarde (uuid) |
| value | object | De waarde |
| additional_cost | number | Meerprijs in euro's |
| order | number | Volgorde |
{ "configuration_value_id": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d", "configuration_id": "6f7a8b9c-0d1e-4f2a-8b3c-4d5e6f7a8b9c", "image_id": null, "value": { "label": "L" }, "additional_cost": 0, "order": 3 }
configurations_of_product
Bestand: aanbod/configurations_of_product.json. Welke keuzeopties en waarden een product heeft. Sleutel: configuration_of_product_id.
Verwijst naar: configuration_id naar configurations, product_id naar products, configuration_value_id naar configuration_values.
| Veld | Type | Betekenis |
|---|---|---|
| configuration_of_product_id | string | Kenmerk (uuid) |
| configuration_id | string | Keuzeoptie (uuid) |
| product_id | string | Product (uuid) |
| configuration_value_id | string | Waarde (uuid) |
| mandatory | boolean | Verplicht om te kiezen |
| ORDER | number | Volgorde |
| is_repeating_step | boolean | Stap die herhaald kan worden |
| image_id | string | Afbeelding (uuid) |
{ "configuration_of_product_id": "8b9c0d1e-2f3a-4b4c-8d5e-6f7a8b9c0d1e", "configuration_id": "6f7a8b9c-0d1e-4f2a-8b3c-4d5e6f7a8b9c", "product_id": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "configuration_value_id": null, "mandatory": true, "ORDER": 1, "is_repeating_step": false, "image_id": null }
stock
Bestand: aanbod/stock.json. Voorraad per product, per vestiging en eventueel per variant. Sleutel: stock_id.
Verwijst naar: product_id naar products, address_of_business_id naar addresses.
| Veld | Type | Betekenis |
|---|---|---|
| stock_id | string | Kenmerk (uuid) |
| product_id | string | Product (uuid) |
| address_of_business_id | string | Vestiging |
| qty | number | Aantal op voorraad |
| configuration | object | De variant waarvoor deze voorraad geldt |
{ "stock_id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b", "product_id": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "address_of_business_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "qty": 14, "configuration": null }
stock_of_configuration
Bestand: aanbod/stock_of_configuration.json. Bij welke keuzeopties van een product een voorraad hoort.
Verwijst naar: stock_id naar stock, configuration_of_product_id naar configurations_of_product.
| Veld | Type | Betekenis |
|---|---|---|
| stock_id | string | Voorraad (uuid) |
| configuration_of_product_id | string | Keuzeoptie van het product (uuid) |
{ "stock_id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b", "configuration_of_product_id": "8b9c0d1e-2f3a-4b4c-8d5e-6f7a8b9c0d1e" }
categories
Bestand: aanbod/categories.json. Categorieën van producten en diensten. Sleutel: category_id.
Verwijst naar: parent_category_id naar een andere regel in categories, visible_for_profile_types naar profile_types.
| Veld | Type | Betekenis |
|---|---|---|
| category_id | string | Kenmerk (uuid) |
| category_name | string | Naam |
| category_description | string | Omschrijving |
| is_toplevel | boolean | Hoofdcategorie |
| parent_category_id | string | Bovenliggende categorie (uuid) |
| visibility | string | Zichtbaarheid |
| order | number | Volgorde |
| status | string | Status |
| friendly_url | string | Deel van de url van de categoriepagina |
| created | string (datum-tijd, zonder tijdzone) | Aangemaakt |
| updated | string (datum-tijd, zonder tijdzone) | Gewijzigd |
| visible_for_profile_types | array | Klantgroepen voor wie de categorie zichtbaar is; leeg is voor iedereen |
{
"category_id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
"category_name": "Haarverzorging",
"category_description": null,
"is_toplevel": true,
"parent_category_id": null,
"visibility": "public",
"order": 1,
"status": "active",
"friendly_url": "haarverzorging",
"created": "2025-05-01T09:00:00",
"updated": "2025-05-01T09:00:00",
"visible_for_profile_types": []
}
images_of_product
Bestand: aanbod/images_of_product.json. Afbeeldingen van producten. Sleutel: image_id. Dezelfde velden als images_of_service en images_of_category.
Verwijst naar: owner_id naar products. imageurl is het pad van het bestand onder bestanden/.
| Veld | Type | Betekenis |
|---|---|---|
| image_id | string | Kenmerk (uuid) |
| imageurl | string | Pad van het bestand |
| owner_id | string | Product (uuid) |
| index | number | Volgorde |
| imagedescription | string | Omschrijving |
| alt_text | string | Alternatieve tekst |
| width, height | number | Breedte en hoogte in pixels |
| mime_type | string | Soort bestand |
| file_size_bytes | number | Grootte in bytes |
| original_filename | string | Oorspronkelijke bestandsnaam |
| dominant_color | string | Overheersende kleur, als hexcode |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
{
"image_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5e",
"imageurl": "media/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5e.jpg",
"owner_id": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
"index": 0,
"imagedescription": null,
"alt_text": "Fles shampoo",
"width": 1200,
"height": 1200,
"mime_type": "image/jpeg",
"file_size_bytes": 98211,
"original_filename": "shampoo.jpg",
"dominant_color": "#e5e7eb",
"created": "2025-05-01T09:00:00Z",
"updated": "2025-05-01T09:00:00Z"
}
images_of_service
Bestand: aanbod/images_of_service.json. Afbeeldingen van diensten, met dezelfde velden als images_of_product. owner_id verwijst naar services.
| Veld | Type | Betekenis |
|---|---|---|
| owner_id | string | Dienst (uuid) |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
De overige velden: zie images_of_product.
images_of_category
Bestand: aanbod/images_of_category.json. Afbeeldingen van categorieën, met dezelfde velden als images_of_product. owner_id verwijst naar categories.
| Veld | Type | Betekenis |
|---|---|---|
| owner_id | string | Categorie (uuid) |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
De overige velden: zie images_of_product.
services
Bestand: aanbod/services.json. Eén regel per dienst: een behandeling, sessie, kamer of andere boekbare dienst. Sleutel: ServiceId.
Verwijst naar: producttypeid naar product_types, categories naar categories, discounts naar discounts, visible_for_profile_types naar profile_types.
| Veld | Type | Betekenis |
|---|---|---|
| ServiceId | string | Kenmerk (uuid) |
| ServiceName | string | Naam |
| Type | string | Soort dienst, bijvoorbeeld ServiceTypeAppointment, ServiceTypeAppointmentSession of ServiceTypeOnlineAppointment |
| ShortDescription, LongDescription | string | Korte en lange omschrijving |
| BasePrice | number | Prijs in euro's |
| TaxPercentage | number | Btw-percentage |
| Currency | string | Valuta, bijvoorbeeld EUR |
| PriceInterpretation | string | ExactAmount (vaste prijs) of StartsAt (vanaf-prijs) |
| Status, Visibility | string | Status en zichtbaarheid |
| Order | number | Volgorde |
| FriendlyUrl | string | Deel van de url van de dienstpagina |
| AvailabilityViewInterval | number | Stapgrootte van de beschikbaarheid in minuten |
| CapacityMin, CapacityMax, CapacityMaxKids, CapacityMaxBabies | number | Capaciteit |
| CheckInTime, CheckOutTime | string (tijd) | In- en uitchecken, als HH:mm:ss (kamers) |
| MinLengthStayInNights, MaxLengthStayInNights | number | Minimaal en maximaal aantal nachten (kamers) |
| MinAdvanceBookingInSeconds | number | Zoveel seconden vooraf moet minstens geboekt worden |
| MinBookingBufferBeforeEndTimeInSeconds | number | Tot zoveel seconden voor het einde kan nog geboekt worden |
| MinAdvanceOnlineCanceling | number | Zoveel seconden vooraf kan online geannuleerd worden |
| AdmissionPolicy | string | TimeStrict, TimeFlexible of TimedEntryWithFlexibleDuration |
| PrePaymentType | string | Vooruitbetalen: Required, Optional of NotSupported |
| LateCancellationFee, NoShowFee | number | Kosten bij laat annuleren en bij niet komen, in euro's |
| VirtualSessionInstructions, VirtualSessionRequirements | string | Instructies en benodigdheden voor een online sessie |
| VirtualSessionVirtualPlatformInfo | string | Platform: Flexible, GoogleHangouts, GoogleMeet, Zoom, Skype, YouTube of Other |
| VirtualSessionOtherPlatformName | string | Naam van het platform bij Other |
| VirtualSessionIsSessionPrerecorded | boolean | De sessie is vooraf opgenomen |
| LocationName, LocationAddressLine, LocationPostalCode, LocationCity, LocationCountry | string | Locatie van de dienst, als die afwijkt van de vestiging |
| attributes | object | Extra eigenschappen |
| producttypeid | string | Producttype (uuid) |
| created | string (datum-tijd, zonder tijdzone) | Aangemaakt |
| updated | string (datum-tijd, zonder tijdzone) | Gewijzigd |
| CreatedByProfileId, UpdatedByProfileId | string | Medewerker die het aanmaakte en die het laatst wijzigde |
| categories | array | Kenmerken van de categorieën |
| discounts | array | Kenmerken van de kortingen |
| visible_for_profile_types | array | Klantgroepen voor wie de dienst zichtbaar is; leeg is voor iedereen |
{
"ServiceId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
"ServiceName": "Knippen",
"Type": "ServiceTypeAppointment",
"ShortDescription": "Wassen, knippen en drogen",
"LongDescription": null,
"BasePrice": 32.5,
"TaxPercentage": 21,
"Currency": "EUR",
"PriceInterpretation": "ExactAmount",
"Status": "active",
"Visibility": "public",
"Order": 1,
"FriendlyUrl": "knippen",
"AvailabilityViewInterval": 15,
"CapacityMin": 1,
"CapacityMax": 1,
"CapacityMaxKids": null,
"CapacityMaxBabies": null,
"CheckInTime": null,
"CheckOutTime": null,
"MinLengthStayInNights": null,
"MaxLengthStayInNights": null,
"MinAdvanceBookingInSeconds": 3600,
"MinBookingBufferBeforeEndTimeInSeconds": null,
"MinAdvanceOnlineCanceling": 86400,
"AdmissionPolicy": null,
"PrePaymentType": "Optional",
"LateCancellationFee": null,
"NoShowFee": null,
"VirtualSessionInstructions": null,
"VirtualSessionRequirements": null,
"VirtualSessionVirtualPlatformInfo": null,
"VirtualSessionOtherPlatformName": null,
"VirtualSessionIsSessionPrerecorded": null,
"LocationName": null,
"LocationAddressLine": null,
"LocationPostalCode": null,
"LocationCity": null,
"LocationCountry": null,
"attributes": {},
"producttypeid": null,
"created": "2025-05-01T09:00:00",
"updated": "2026-09-01T12:00:00",
"CreatedByProfileId": "e1e2e3e4-f5f6-4a7b-8c9d-0e1f2a3b4c5d",
"UpdatedByProfileId": "e1e2e3e4-f5f6-4a7b-8c9d-0e1f2a3b4c5d",
"categories": [],
"discounts": [],
"visible_for_profile_types": []
}
service_extra_options
Bestand: aanbod/service_extra_options.json. Extra opties die een klant bij een dienst kan kiezen. Sleutel: Id.
Verwijst naar: ServiceId naar services.
| Veld | Type | Betekenis |
|---|---|---|
| Id | string | Kenmerk (uuid) |
| ServiceId | string | Dienst (uuid) |
| Name | string | Naam |
| Description | string | Omschrijving |
| Mandatory | boolean | Verplicht |
| PricePerNight | boolean | De prijs geldt per nacht |
| Price, KidsPrice, BabyPrice | number | Prijs voor volwassenen, kinderen en baby's in euro's |
{ "Id": "2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f", "ServiceId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "Name": "Hoofdmassage", "Description": null, "Mandatory": false, "PricePerNight": false, "Price": 7.5, "KidsPrice": null, "BabyPrice": null }
service_price_matrix
Bestand: aanbod/service_price_matrix.json. Nachtprijzen per periode en per nacht van de week (kamers). Sleutel: Id.
Verwijst naar: ServiceId naar services.
| Veld | Type | Betekenis |
|---|---|---|
| Id | string | Kenmerk (uuid) |
| ServiceId | string | Dienst (uuid) |
| StartDate | string (datum-tijd, zonder tijdzone) | Geldt vanaf |
| EndDate | string (datum-tijd, zonder tijdzone) | Geldt tot |
| MaDi, DiWo, WoDo, DoVr, VrZa, ZaZo, ZoMa | number | Prijs in euro's voor de nacht van maandag op dinsdag, dinsdag op woensdag, enzovoort |
{ "Id": "3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a", "ServiceId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "StartDate": "2026-06-01T00:00:00", "EndDate": "2026-08-31T00:00:00", "MaDi": 95, "DiWo": 95, "WoDo": 95, "DoVr": 110, "VrZa": 125, "ZaZo": 125, "ZoMa": 95 }
service_questions
Bestand: aanbod/service_questions.json. Vragen die een klant bij het boeken van een dienst beantwoordt. De antwoorden staan in Answers van items_of_appointment. Sleutel: Id.
Verwijst naar: ServiceId naar services.
| Veld | Type | Betekenis |
|---|---|---|
| Id | string | Kenmerk (uuid) |
| ServiceId | string | Dienst (uuid) |
| Key | string | Sleutel van de vraag, dezelfde als in de antwoorden |
| Label | string | De vraag |
| Type | string | Soort vraag, bijvoorbeeld text |
| Required | boolean | Verplicht |
| Options | array | Keuzemogelijkheden, bij een keuzevraag |
| Order | number | Volgorde |
{ "Id": "4e5f6a7b-8c9d-4e0f-8a1b-2c3d4e5f6a7b", "ServiceId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "Key": "haarlengte", "Label": "Hoe lang is je haar?", "Type": "text", "Required": false, "Options": [], "Order": 1 }
timeslots
Bestand: aanbod/timeslots.json. Tijdvakken van een dienst, zoals een duur van 30 of 60 minuten. Sleutel: timeslot_id.
Verwijst naar: service_id naar services.
| Veld | Type | Betekenis |
|---|---|---|
| timeslot_id | string | Kenmerk (uuid) |
| service_id | string | Dienst (uuid) |
| duration_in_minutes | number | Duur in minuten |
| index | number | Volgorde |
| available | boolean | Beschikbaar |
| name | string | Naam |
{ "timeslot_id": "5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c", "service_id": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "duration_in_minutes": 30, "index": 0, "available": true, "name": null }
session_services
Bestand: aanbod/session_services.json. Vaste sessies van een dienst, zoals een les op een bepaalde datum. Sleutel: Id.
Verwijst naar: ServiceId naar services.
| Veld | Type | Betekenis |
|---|---|---|
| Id | string | Kenmerk (uuid) |
| ServiceId | string | Dienst (uuid) |
| StartDateTime | string (datum-tijd, zonder tijdzone) | Begin |
| EndDateTime | string (datum-tijd, zonder tijdzone) | Einde |
| NameOverride | string | Eigen naam van deze sessie |
| PriceOverride | number | Eigen prijs van deze sessie in euro's |
| TimeZone | string | Tijdzone, bijvoorbeeld Europe/Amsterdam |
{ "Id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9e", "ServiceId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "StartDateTime": "2026-10-10T08:00:00", "EndDateTime": "2026-10-10T10:00:00", "NameOverride": null, "PriceOverride": null, "TimeZone": "Europe/Amsterdam" }
service_blocks
Bestand: aanbod/service_blocks.json. Periodes waarin een dienst niet te boeken is. Sleutel: ServiceBlockId.
Verwijst naar: ServiceId naar services.
| Veld | Type | Betekenis |
|---|---|---|
| ServiceBlockId | string | Kenmerk (uuid) |
| ServiceId | string | Dienst (uuid) |
| StartDateTime, EndDateTime | string (datum-tijd, UTC) | Begin en einde van de blokkade |
| TimeZone | string | Tijdzone, bijvoorbeeld Europe/Amsterdam |
| Reason | string | Reden |
| Created | string (datum-tijd, UTC) | Aangemaakt |
{ "ServiceBlockId": "7b8c9d0e-1f2a-4b3c-8d4e-5f6a7b8c9d0e", "ServiceId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d", "StartDateTime": "2026-12-24T12:00:00Z", "EndDateTime": "2026-12-26T23:00:00Z", "TimeZone": "Europe/Amsterdam", "Reason": "Kerst", "Created": "2026-09-01T12:00:00Z" }
product_translations
Bestand: aanbod/product_translations.json. Sinds formaat 1.1. De teksten van producten in de andere talen van de website; de standaardtaal staat in products. Een regel per product en taal. Een leeg veld betekent dat de website daar de tekst in de standaardtaal toont. Sleutel: product_id en language.
| Veld | Type | Betekenis |
|---|---|---|
| product_id | string | Het product (uuid), zie products |
| language | string | Taalcode, zie languages |
| name | string | Naam |
| short_description | string | Korte omschrijving |
| long_description | string | Lange omschrijving (HTML) |
| friendly_url | string | Gereserveerd; nu altijd leeg, de url is in alle talen gelijk |
| field_status | object | Per veld machine (automatisch vertaald) of reviewed (zelf ingevuld of nagekeken) |
| pending | object | Automatische vertalingen die nog op goedkeuren wachten, per veld { value, created }. Ze staan nog niet op de website |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
| updated_by_profile_id | string | De medewerker die het laatst wijzigde, zie employees |
{
"product_id": "7b1e2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"language": "en",
"name": "Shampoo for curly hair",
"short_description": "Mild shampoo",
"long_description": null,
"friendly_url": null,
"field_status": { "name": "reviewed", "short_description": "machine" },
"pending": { "long_description": { "value": "<p>Suitable for every day.</p>", "created": "2026-10-09T08:00:00Z" } },
"created": "2026-10-09T08:00:00Z",
"updated": "2026-10-09T08:05:00Z",
"updated_by_profile_id": "auth0|5f..."
}
service_translations
Bestand: aanbod/service_translations.json. Sinds formaat 1.1. De teksten van diensten in de andere talen; zelfde opbouw als product_translations. Sleutel: service_id en language.
| Veld | Type | Betekenis |
|---|---|---|
| service_id | string | De dienst (uuid), zie services |
| language | string | Taalcode |
| name | string | Naam |
| short_description | string | Korte omschrijving |
| long_description | string | Lange omschrijving (HTML) |
| virtual_session_instructions | string | Instructies voor de klant bij een online sessie |
| virtual_session_requirements | string | Wat de klant nodig heeft bij een online sessie |
| location_name | string | Naam van de locatie |
| friendly_url | string | Gereserveerd; nu altijd leeg |
| field_status | object | Per veld machine (automatisch vertaald) of reviewed (zelf ingevuld of nagekeken) |
| pending | object | Automatische vertalingen die nog op goedkeuren wachten, per veld { value, created }. Ze staan nog niet op de website |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
| updated_by_profile_id | string | De medewerker die het laatst wijzigde, zie employees |
service_extra_option_translations
Bestand: aanbod/service_extra_option_translations.json. Sinds formaat 1.1. Naam en omschrijving van de extra opties van diensten in de andere talen; zelfde opbouw als product_translations. Sleutel: extra_option_id en language.
| Veld | Type | Betekenis |
|---|---|---|
| extra_option_id | string | De extra optie (uuid), zie service_extra_options |
| language | string | Taalcode |
| name | string | Naam |
| description | string | Omschrijving |
| field_status | object | Per veld machine (automatisch vertaald) of reviewed (zelf ingevuld of nagekeken) |
| pending | object | Automatische vertalingen die nog op goedkeuren wachten, per veld { value, created } |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
| updated_by_profile_id | string | De medewerker die het laatst wijzigde |
configuration_translations
Bestand: aanbod/configuration_translations.json. Sinds formaat 1.1. De naam van keuzeopties in de andere talen; zelfde opbouw als product_translations. Een vertaling geldt voor alle producten die de keuzeoptie gebruiken. Sleutel: configuration_id en language.
| Veld | Type | Betekenis |
|---|---|---|
| configuration_id | string | De keuzeoptie (uuid), zie configurations |
| language | string | Taalcode |
| name | string | Naam |
| field_status | object | Per veld machine (automatisch vertaald) of reviewed (zelf ingevuld of nagekeken) |
| pending | object | Automatische vertalingen die nog op goedkeuren wachten, per veld { value, created } |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
| updated_by_profile_id | string | De medewerker die het laatst wijzigde |
configuration_value_translations
Bestand: aanbod/configuration_value_translations.json. Sinds formaat 1.1. De teksten van de waarden van keuzeopties in de andere talen: name, description en unit uit de value van configuration_values. Getallen, kleuren en andere instellingen in die value worden niet vertaald. Sleutel: configuration_value_id en language.
| Veld | Type | Betekenis |
|---|---|---|
| configuration_value_id | string | De waarde (uuid), zie configuration_values |
| language | string | Taalcode |
| name | string | Naam |
| description | string | Omschrijving |
| unit | string | Eenheid |
| field_status | object | Per veld machine (automatisch vertaald) of reviewed (zelf ingevuld of nagekeken) |
| pending | object | Automatische vertalingen die nog op goedkeuren wachten, per veld { value, created } |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
| updated_by_profile_id | string | De medewerker die het laatst wijzigde |
category_translations
Bestand: aanbod/category_translations.json. Sinds formaat 1.1. De naam en omschrijving van categorieën in de andere talen; zelfde opbouw als product_translations. Sleutel: category_id en language.
| Veld | Type | Betekenis |
|---|---|---|
| category_id | string | De categorie (uuid), zie categories |
| language | string | Taalcode |
| name | string | Naam |
| description | string | Omschrijving |
| friendly_url | string | Gereserveerd; nu altijd leeg |
| field_status | object | Per veld machine (automatisch vertaald) of reviewed (zelf ingevuld of nagekeken) |
| pending | object | Automatische vertalingen die nog op goedkeuren wachten, per veld { value, created }. Ze staan nog niet op de website |
| created | string (datum-tijd, UTC) | Aangemaakt |
| updated | string (datum-tijd, UTC) | Gewijzigd |
| updated_by_profile_id | string | De medewerker die het laatst wijzigde, zie employees |
discounts
Bestand: aanbod/discounts.json. Kortingen en acties op het aanbod. Sleutel: discount_id.
Verwijst naar: profile_types naar profile_types. Diensten verwijzen hiernaar met discounts.
| Veld | Type | Betekenis |
|---|---|---|
| discount_id | string | Kenmerk |
| name | string | Naam |
| discount_start_date | string (datum-tijd, zonder tijdzone) | Geldt vanaf |
| discount_end_date | string (datum-tijd, zonder tijdzone) | Geldt tot |
| discount_percentage | number | Korting in procenten |
| discount_amount | number | Korting in euro's |
| discount_price | number | Actieprijs in euro's |
| profile_types | array | Klantgroepen voor wie de korting geldt; leeg is voor iedereen |
{ "discount_id": "najaarsactie", "name": "Najaarsactie", "discount_start_date": "2026-10-01T00:00:00", "discount_end_date": "2026-10-31T00:00:00", "discount_percentage": 10, "discount_amount": 0, "discount_price": 0, "profile_types": [] }
discount_codes
Bestand: aanbod/discount_codes.json. Kortingscodes voor de webshop. Sleutel: DiscountId.
| Veld | Type | Betekenis |
|---|---|---|
| DiscountId | string | Kenmerk (uuid) |
| DiscountCode | string | De code |
| DiscountPercentage | number | Korting in procenten |
| DiscountAmount | number | Korting in euro's |
| DiscountStart | string (datum-tijd, zonder tijdzone) | Geldig vanaf |
| DiscountEnd | string (datum-tijd, zonder tijdzone) | Geldig tot |
| MinimumOrderAmount | number | Minimaal orderbedrag in euro's |
| MaxTimesUsages | number | Hoe vaak de code gebruikt mag worden |
| Created | string (datum-tijd, zonder tijdzone) | Aangemaakt |
{ "DiscountId": "77665544-3322-4110-8ffe-ddccbbaa9988", "DiscountCode": "WELKOM10", "DiscountPercentage": 10, "DiscountAmount": null, "DiscountStart": "2026-09-01T00:00:00", "DiscountEnd": null, "MinimumOrderAmount": 25, "MaxTimesUsages": 100, "Created": "2026-08-30T10:00:00" }