Styling
Et standard stilark kan indsættes på siden ved at sætte installCSS-egenskaben i widget-konfigurationen eller ved at kalde installCSS-metoden på widget-instansen. Kilden til det indsatte stilark i form af en SASS-fil kan tilgås på:
https://api.unifaun.com/rs-extapi/v1/delivery-checkouts-widget/unifaun-checkout.scss
Brugerinteraktion
Der er to typer brugerinteraktion, der påvirker widget'en:
Eksterne ændringer
Når widget'en først oprettes, og hver gang brugeren foretager ændringer i en af inputvariablerne, der sendes til /delivery-checkouts API'et, bør denne rækkefølge af handlinger finde sted:
- Deaktivér widget'en med et kald til disable metoden.
- Foretag en AJAX-forespørgsel til /delivery-checkouts API'et. Webshop-backend vil normalt fungere som en proxy for denne type kald, så en hemmelig API-nøgle kan sendes til REST API'et.
- Når et svar modtages, kald updateList metoden og aktiver derefter widget'en med et kald til enable metoden.
// Deaktiver widget mens AJAX-forespørgslen er i gang.
widget.disable();
fetch(url).then(function(response) {
return response.json();
}).then(function(data) {
//Opdater widget med nye data.
widget.updateList(data);
}).catch(function() {
//Håndter fejl
}).then(function() {
//Aktiver altid widget
widget.enable();
});
Interne ændringer
Hver gang brugeren vælger en af leveringsmulighederne i Delivery Checkout eller opdaterer en værdi knyttet til den valgte mulighed, vil resultCallback funktionen i widget-konfigurationen blive kaldt. Callback-funktionen modtager et enkelt argument i form af et javascript-objekt med følgende egenskaber:
| Egenskab | Beskrivelse | Type | Værdi |
|---|---|---|---|
| valid | Angiver om de aktuelle værdier i widget'en alle er gyldige. Kun hvis dette er true skal brugeren kunne fortsætte til checkout. | boolean | true, false |
| deliveryCheckoutId | Delivery Checkout ID inklusive version. | string | |
| selectedOptionId | ID'et på den aktuelt valgte leveringsmulighed. | string | |
| optionIds | En liste af valgte Delivery Checkout muligheds-ID'er fra højeste til laveste niveau. | string[] | |
| price | Den samlede pris for alle valgte leveringsmuligheder og tilføjelser | number | |
| agent | Det valgte agent-ID. | string | |
| selectedAddons | En liste af valgte tilføjelser. | AddonResult[] | |
| fields | En liste af værdier for yderligere input relateret til den valgte leveringsmulighed. | FieldResult[] |