CONFIGUREWISE // AVZ - E-CON SERVICES

v2.0

e-Con API

Sessie-gebaseerde SOAP API. Base URL: https://acc.configurator.avzgroup.nl/econ-acc-api/EConWebServiceEx.asmx

Workflow

Connect GetValues SetValues Disconnect

Operations

Connect

Start een sessie. Retourneert een connectionId voor alle vervolgcalls.

ParameterTypeBeschrijving
EnvironmentstringOmgeving identifier
ModelstringModel naam
VersionstringModel versie

GetValues

Haalt huidige waarden op. Response bevat HTML-encoded JSON — eerst decoden, dan parsen.

ParameterTypeBeschrijving
IdstringconnectionId
NamesarrayProperty namen

SetValues

Wijzigt property waarden. Voeg altijd generate: true toe als laatste item.

ParameterTypeBeschrijving
IdstringconnectionId
NamesarrayProperty namen of fullId's + generate
ValuesarrayWaarden (zelfde volgorde als Names)

Disconnect

Sluit de sessie. Altijd aanroepen, ook bij errors.

JSON Response Structuur

GetValues retourneert een array van property-objecten. Elk object heeft:

VeldTypeBeschrijving
idstringProperty identifier
fullIdstringVolledig pad (punt-notatie voor objects, brackets voor arrays)
labelstringDisplay label
valueanyPrimitief of array van child-properties
dataTypestringstring | boolean | number | long | double | array | object
styleobjectUI rendering metadata
optionsarrayKeuzemogelijkheden (optioneel)

DataTypes & Rendering

Primitieve types

dataTypeControlVoorbeeld
stringTekstveldHoeklijn_toevoegen
booleanCheckbox
number / long / doubleNumeriek veldAantal, Breedte_totaal

Met options (simpel)

Wanneer options aanwezig is met id + label: dropdown/select.

"options": [
  { "id": "125", "label": "125" },
  { "id": "205", "label": "205" }
]

Voorbeelden: Kastmaat, Kleur_lamel, Toebehoren_bediening

Object met options + properties

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.

Afbeeldingen per optie (displayImage)

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.

Array (container)

dataType: "array": inklapbare groep met child-properties in value.

Visible

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.

Instructions Array

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>" }
  ]}
]}

Style Properties

PropertyWaardeEffect
controlinstructionRead-only instructie, toont help_content
controlpricePrijsweergave
controlactionVoert een actie uit wanneer via SetValues op true gezet
controlvalidStateBoolean die aangeeft of de huidige configuratie geldig is
displayImagepadPad 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
unitmm | stuksEenheid achter het veld
help_contentHTML stringHelp-icoon met popup modal (inline HTML)
help_codestringVerwijst 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
apiTabstringGroepeert 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"

Interactiecyclus

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.

Gebruiker wijzigt waarde SetValues + generate GetValues UI opnieuw renderen

SetValues Conventies

  • Gebruik fullId voor geneste properties (Vragen.Geleider_links.Geleider)
  • Altijd generate: true als laatste item toevoegen
  • Arrays zijn 1-based (Reference1[1])
  • Names en Values arrays moeten dezelfde lengte hebben