La clé properties permet de modifier facilement les informations des entités affichées un peu partout (les informations d'une order, d'un parcel, ou de line items, ou même des pop-ins).
Pour les orders, parcels et line items
La structure de l'objet properties
est la suivante:
properties
(object) > page
(object) > entity
(array de taille 0 à 3) > propriétés
(array de string)
properties: claim: order: [ ['id', 'delivery.type'], # Ligne 1 ['date'] # Ligne 2 ] line_item: [...] pack: parcel: [...] line_item: [...]
Dans l'exemple ci-dessus, la première ligne d'order contiendra les propriétés order.id et order.delivery.type
tels que récupérés en appelant l'OMS, et séparés par le caractère pipe |
Page avec multi parcel
Dans le cas des pages qui supportent le multi colisage ou multi empaquetage (bag et pack) il y a une entité appelé multi_order
, qui corresponde à celle qu'est utilisé lorsque la store app est configuré pour faire de multi colisage empaquetage (clé options.create_multi_parcels
)
Pour les pop-ins
La pop-in affichée sur diverses pages peut également être personnalisée. Le format de la config est cependant un peu différent:
configurer la pop-in
properties: popin: line_item: [ ['features.name'], # Titre de la pop-in ['|rawstring:Référence', 'item_id'] # Ligne 1 Sous l'image ['|rawstring:Prix', 'payment.price'] # Ligne 2 Sous l'image ['|rawstring:Couleur', 'features.color'] # Ligne 3 Sous l'image ['|rawstring:Taille', 'features.size'] # Ligne 4 Sous l'image ]
Dans l'exemple ci-dessus, la première ligne définit le titre de la pop-in, et toutes les lignes suivantes seront affichées sous l'image. Les éléments ne seront pas séparés par le pipe |
, mais divisés en colonnes (voir screenshot ci-dessus).
Pour voir les properties par défaut, utiliser la commande dumpConfig()
Formatter les propriétés
Souvent, les propriétés des objets nécessitent d'être formattés pour des raisons esthétiques.
Il est possible d'utiliser un ou plusieurs formatteurs avec la sytaxe suivante 'property|formatter:option|formatter|formatter'.
Pour que la première lettre du type de livraison soit en majuscule, on utilisera 'delivery.type|capitalize'
par exemple.
Si je veux récupérer le 3ième élément d'un tableau (index 2), j'utiliserai delivery.destination.address.lines|arrayelement:2.
Parenthèses
Une syntaxe de parenthèsage est disponible pour les expressions les plus complexes.
Les propriètés les plus imbriquées dans des parenthèses seront évaluées en priorité. Ainsi, la proprièté "parcels|forcount:line_item_ids|concatraw: / |concatraw: (line_items|length)"
affichera 1 / 2.
En l'absence de parenthèses, les formatteurs sont appliqués de gauche à droite.
formatter | effet | option | example |
---|---|---|---|
arrayelement | Récupère l'élément d'un tableau à l'index défini en option | Index de l'élément | types|arrayelement:0 |
capitalize | Remplace toutes les lettres par des minuscules, sauf la première, en majuscule | features.name|capitalize | |
concat | Concatène une autre property, sans espace | Propriété à concaténer | carrier|concat:tracking_code |
concatraw | Concatène une string définie dans l'option | String à concaténer | state|concatraw:par l'entrepôt |
currency | Formate un nombre en une currency, avec un symbole défini dans une autre propriété | La propriété contenant la currency | payment.price|currency:payment.currency |
currencyraw | Formate un nombre en une currency, avec un symbole défini dans l'option | La currency à utiliser | payment.price|currencyraw:USD |
dateto | Formate un intervalle de date 9.8 | Propriété correspondant à la date de fin | eta_start|dateto:end_end |
| Divise une valeur par une autre valeur passée en paramètre | Le chemin du diviseur |
3 (ex : pour un prix de 6 et une quantité de 2) |
expirationcolor | Renvoie une date dans la couleur envoyée si elle est expirée | la valeur de warning qui sera soustraite à la date du jour pour le calcul (en secondes) | expiration_dates.client_collect.expiration|expirationcolor:86400,danger,(expiration_dates.client_collect.expiration|moment:DD/MM/YYYY|transcount:carry.reserved_till) Reserved until 10-02-2023 (NB: la valeur avant le | sert pour les calculs de l'expiration (timestamp), la valeur dans les options sert à l'affichage (peut être formatée). |
filter | Parcourt un tableau et garde les éléments de ce tableau dont une propriété vaut une des valeurs fournies. | Une propriété=une liste de valeurs séparées par une virgule | line_items|filter:state=removed,mistaken|length|concatraw: items sont removed ou mistaken 5 items sont removed ou mistaken |
filterlength | Parcourt un tableau et compte le nombre d'élèment de ce tableau dont une proprièté vaut une des valeurs fournies. (v5.5) | Une propriété=une liste de valeurs séparées par une virgule | line_items|filterlength:state=removed,mistaken|transcount:order.cancel_count (5 canceled) |
forcount | Parcourt un tableau et compte la taille d'une proprièté de chaque de ce tableau. (v5.5) | Une propriété | parcels|forcount:piece_ids|transcount:order.item_count 5 items |
hierarchicalchoose | Parcourt un tableau et renvoie l'élément dont l'index est le plus faible dans le tableau défini en option . Si rien ne matche, ne fait rien. (v10.0) | Une liste de valeurs séparées par une virgule | types|hierarchicalchoose:ois,ckc,ffs ckc |
index_ranges_quantity | Calcule la quantité totale d’index dans les index ranges fournits (v11.8) |
5 articles | |
length | Retourne l'attribut length d'un tableau ou d'une string | piece_ids|length | |
link | Formate le résultat sous forme de lien | Une propriété | delivery.carrier.name|link:delivery.carrier.tracking_url |
link_blank | Formate le résultat sous forme de lien blank | Une propriété | delivery.carrier.name|link:delivery.carrier.tracking_url |
lowercase | Remplace toutes les lettres par des minuscules | features.name|lowercase | |
moment | Formate un timestamp en utilisant un format de momentjs | Format de la date | date|moment:DD/MM/YYYY |
mutiply | Permet de multiplier deux valeurs | Peut prendre en option des features ou des constante Pour rajouter une unité au résultat, il existe diffèrent formateurs ( concat, concatraw, currency, currencyraw..) On peut limiter le nombre de décimales en rajoutant un second argument sépare par une virgule, par défaut les résultas son limiter a 2 chiffres après la virgule. |
17.97
3.33 |
prepend | Concatène une autre property à gauche | Une propriété | tracking_code|prepend:carrier |
prependraw | Concatène une string définie dans l'option, à gauche | String à afficher | state|prependraw:L'etat est |
rawstring | Permet de remplacer le résultat par une string définie dans l'option | String à afficher | |rawstring:Charasse |
sum | Parcourt un tableau et fais la somme de la propriété donnée en option | Une propriété | line_items|sum:payment.price |
trackingcode | Affiche le tracking code s'il y en a, traduit la clé passée en paramètre sinon | Clé à traduire s'il n'y a pas de tracking code | tracking_code|trackingcode:parcel.no_tracking_information "XV265564654" ou "Colis sans information de tracking" s'il n'y a pas de tracking code |
trans | Traduit le résultat (si la clé de traduction existe bien) | |rawstring:states.|concat:state|trans | |
transcount | Prend un nombre en entrée et appelle une traduction avec pluralisation | Clé de traduction | line_items|length|transcount:order.item_count |
transcountnotnull |
Appelle une traduction avec pluralisation sur l'input. N'affiche rien si !input vaut false au sens de javascript. (v10.0) | Clé de traduction | line_items|length|transcountnotnull:order.item_count avec line_items = [] : |
unfilterlength | Parcourt un tableau et compte le nombre d’élément de ce tableau dont une proprièté ne vaut pas une des valeurs fournies. (v5.5) | Une propriété=une liste de valeurs séparées par une virgule | line_items|unfilterlength:state=removed,mistaken|concatraw: not canceled 5 not canceled |
uppercase | Remplace toutes les lettres par des majuscules | features.name|uppercase | |
since | Prend une date en entrée et retourne la difference a partir de maintenant dans la lang du site. (V11.0) | date|since |
Attention à la façon dont les propriétés sont surchargées. Un tableau de 2 éléments surchargé par un tableau vide reste un tableau de 2 éléments.
Défaut | Surcharge onboarding | Résultat |
---|---|---|
|
|
|
|
|
|
|
|
|
L'avantage: il est possible de rajouter une ligne à l'order de la façon suivante, sans que les deux premières lignes ne soient écrasées.
order: [[], [], ['informations.message_cadeau']]