Sessie-gebaseerde SOAP API. Base URL: https://acc.configurator.avzgroup.nl/econ-acc-api/EConWebServiceEx.asmx
Start een sessie. Retourneert een connectionId voor alle vervolgcalls.
| Parameter | Type | Beschrijving |
|---|---|---|
| Environment | string | Omgeving identifier |
| Model | string | Model naam |
| Version | string | Model versie |
Haalt huidige waarden op. Response bevat HTML-encoded JSON — eerst decoden, dan parsen.
| Parameter | Type | Beschrijving |
|---|---|---|
| Id | string | connectionId |
| Names | array | Property namen |
Wijzigt property waarden. Voeg altijd generate: true toe als laatste item.
| Parameter | Type | Beschrijving |
|---|---|---|
| Id | string | connectionId |
| Names | array | Property namen of fullId's + generate |
| Values | array | Waarden (zelfde volgorde als Names) |
Sluit de sessie. Altijd aanroepen, ook bij errors.
GetValues retourneert een array van property-objecten. Elk object heeft:
| Veld | Type | Beschrijving |
|---|---|---|
id | string | Property identifier |
fullId | string | Volledig pad (punt-notatie voor objects, brackets voor arrays) |
label | string | Display label |
value | any | Primitief of array van child-properties |
dataType | string | string | boolean | number | long | double | array | object |
style | object | UI rendering metadata |
options | array | Keuzemogelijkheden (optioneel) |
| dataType | Control | Voorbeeld |
|---|---|---|
string | Tekstveld | Hoeklijn_toevoegen |
boolean | Checkbox | — |
number / long / double | Numeriek veld | Aantal, Breedte_totaal |
Wanneer options aanwezig is met id + label: dropdown/select.
"options": [
{ "id": "125", "label": "125" },
{ "id": "205", "label": "205" }
]
Voorbeelden: Kastmaat, Kleur_lamel, Toebehoren_bediening
dataType: "object" met options die elk een properties array bevatten. value is het ID van de geselecteerde optie (string) of null als niets gekozen. Properties van de geselecteerde optie worden als preview getoond.
{
"id": "Geleider_links",
"dataType": "object",
"value": "H25",
"options": [
{
"id": "H25", "label": "H25",
"properties": [
{ "id": "Geleider", "value": "H25" }
]
}
]
}
Properties van de geselecteerde optie worden als tekst-preview getoond.
Een veld met options en style.displayImage wordt als kleurkiezer met thumbnails gerenderd. displayImage bevat het pad van de geselecteerde waarde (as-is). De afbeelding per optie wordt afgeleid door de bestandsnaam in dat pad te vervangen door de id van de optie (zelfde map en extensie). Bestaat de afbeelding niet of is de waarde leeg, dan wordt enkel de label getoond.
{
"id": "Kleur_kast",
"value": "10 Donkerbruin",
"dataType": "string",
"style": { "displayImage": "images/webshop/kleuren/10 Donkerbruin.png" },
"options": [
{ "id": "01 Wit", "label": "01 Wit - RAL 9010" },
{ "id": "02 Grijs", "label": "02 Grijs - RAL 7038" }
]
}
Selectie -> basepad + images/webshop/kleuren/10 Donkerbruin.png. Optie 02 Grijs -> basepad + images/webshop/kleuren/02 Grijs.png.
dataType: "array": inklapbare groep met child-properties in value.
Elk item kan een visible boolean bevatten. Wanneer visible: false wordt het element verborgen. Dit werkt recursief: als een bovenliggend element onzichtbaar is, zijn alle onderliggende elementen dat ook.
De response bevat een aparte top-level Instructions array (dataType: "array", control: "instructions"). Elk item bevat een Code en een Instruction (HTML). Deze array wordt niet gerenderd maar dient als lookup: properties met style.help_code verwijzen naar een code in deze array.
{ "id": "Instructions", "dataType": "array", "value": [
{ "value": [
{ "id": "Code", "value": "breedte-rolluik" },
{ "id": "Instruction", "value": "<html>...</html>" }
]}
]}
| Property | Waarde | Effect |
|---|---|---|
control | instruction | Read-only instructie, toont help_content |
control | price | Prijsweergave |
control | action | Voert een actie uit wanneer via SetValues op true gezet |
control | validState | Boolean die aangeeft of de huidige configuratie geldig is |
displayImage | pad | Pad van de geselecteerde afbeelding (as-is). Maakt van een options-veld een kleurkiezer; per optie wordt de bestandsnaam vervangen door de optie-id (zelfde map). 404/leeg = geen afbeelding |
unit | mm | stuks | Eenheid achter het veld |
help_content | HTML string | Help-icoon met popup modal (inline HTML) |
help_code | string | Verwijst naar een code in de Instructions array. Toont help-icoon met de bijbehorende instructie-HTML. Werkt naast help_content: als één van beide aanwezig is verschijnt het i-icoon |
apiTab | string | Groepeert velden in visuele tabbladen binnen de configurator. Items met dezelfde apiTab waarde verschijnen samen onder één tab. Items zonder apiTab komen in de tab "Zonder tab" |
Bij iedere keuze van de gebruiker moet een SetValues + GetValues cyclus uitgevoerd worden. Het model bevat regels (rules) die op basis van de gewijzigde waarde andere velden kunnen aanpassen: opties filteren, waarden herberekenen, velden tonen of verbergen. Alleen door na elke wijziging de volledige state opnieuw op te halen kan de UI correct redeneren over de actuele configuratie.
fullId voor geneste properties (Vragen.Geleider_links.Geleider)generate: true als laatste item toevoegenReference1[1])Wanneer een klant een bestelling plaatst, doorloop je twee fasen: eerst de configuraties opslaan in ERP, daarna een bevestigingsmail sturen.
Iedere configuratie heeft een eigen e-Con sessie. Per configuratie:
apiAction.SaveToERP op true via SetValuesapiAction.SaveToErpSucceed op true staatDe gegevens voor de bevestigingsmail (omschrijving, SKU, EAN, prijs, afbeelding) haal je uit de individuele configurator sessies via het info object in de GetValues response.
Als alle configuraties succesvol zijn opgeslagen, open je een nieuwe e-Con sessie met het orderMailer model om de bevestigingsmail te versturen.
Open een sessie met model orderMailer.
Stel het aantal producten in zodat e-Con posities beschikbaar stelt:
Email.aantalproducten = 5
Vul per product de details in (1-based index):
Email.Producten[1].Omschrijving = "Rolluik PVC 125x150"
Email.Producten[1].sku = "RL-PVC-125"
Email.Producten[1].ean = "8710001234567"
Email.Producten[1].prijs = 249.95
Email.Producten[1].afbeelding = "mail/img/product.png"
Het veld afbeelding is optioneel.
Stel het ontvangstadres in en trigger de verzending:
Email.ToAddress = "klant@voorbeeld.nl"
Verzendmail = true
Sluit de sessie.