Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

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).


                              Pop-in

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 |

Dans le cas des pages qui supportent le multi colisage ou empaquetage (bag et pack) il y a une entité appele multi_order, qui correponde a celle qu'est utilisé lors que 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.



formattereffetoptionexample
arrayelement
Récupère l'élément d'un tableau à l'index défini en optionIndex de l'élément
types|arrayelement:0
ffs
capitalize
Remplace toutes les lettres par des minuscules, sauf la première, en majuscule
features.name|capitalize
Summer dress
concat
Concatène une autre property, sans espacePropriété à concaténer
carrier|concat:tracking_code
ups64477466854
concatraw
Concatène une string définie dans l'optionString à concaténer
state|concatraw:par l'entrepôt
dispatched 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
35,99 £
currencyraw
Formate un nombre en une currency, avec un symbole défini dans l'optionLa currency à utiliser
payment.price|currencyraw:USD
35,99 $
dateto

Formate un intervalle de date

9.8

Propriété correspondant à la date de fin
eta_start|dateto:end_end
27 - 30 september
expirationcolorRenvoie une date dans la couleur envoyée si elle est expirée
Il est possible de passer un paramètre relatif (secondes à retirer à la date d'expiration)
la valeur de warning qui sera soustraite à la date du jour pour le calcul (en secondes)

la couleur à mettre si la date est expirée

La valeur à retourner (formatée si besoin à l'aide d'une autre fonction)

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
length
Retourne l'attribut length d'un tableau ou d'une string
piece_ids|length
3
linkFormate le résultat sous forme de lienUne propriétédelivery.carrier.name|link:delivery.carrier.tracking_url
<a href="colissimoURL">colissimo</a>
link_blank

Formate le résultat sous forme de lien blank

Une propriétédelivery.carrier.name|link:delivery.carrier.tracking_url
<a target="_blank" href="colissimoURL">colissimo</a>
lowercase
Remplace toutes les lettres par des minuscules
features.name|lowercase
summer dress
moment
Formate un timestamp en utilisant un format de momentjsFormat de la date
date|moment:DD/MM/YYYY
29/03/2018
mutiplyPermet de multiplier plusieurs valeurs
11.5

les différentes valeurs a multiplier

truncated= : précision du résultat (chiffre après la virgule), par défaut a 2

unit= : l'unité de mesure du résultat


les arguments sont séparé par une virgule

|multiply:x,y,z,truncated=2,unit=kg

x = 0.3
y = 1.2
z = 1.8

0.648 kg



prependConcatène une autre property à gaucheUne propriététracking_code|prepend:carrier
ups64477466854
prependraw
Concatène une string définie dans l'option, à gaucheString à afficher
state|prependraw:L'etat est
L'etat est dispatched
rawstring
Permet de remplacer le résultat par une string définie dans l'optionString à afficher
|rawstring:Charasse
Charasse
sum
Parcourt un tableau et fais la somme de la propriété donnée en optionUne propriété
line_items|sum:payment.price
75.8
trackingcode
Affiche le tracking code s'il y en a, traduit la clé passée en paramètre sinonClé à 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
Ensacheeey
transcount
Prend un nombre en entrée et appelle une traduction avec pluralisationClé de traduction
line_items|length|transcount:order.item_count
3 items
transcountnotnull

Prend un nombre en entrée et appelle une traduction avec pluralisation. N'affiche rien si le nombre vaut 0. (v5.5)

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
SUMMER DRESS
since

Prend une date en entrée et retourne la difference a partir de maintenant dans la lang du site.

(V11.0)


date|since
il y a 1 heure


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éfautSurcharge onboardingRésultat
['id']['label']['label']
['id', 'label', 'delivery']['date']['date', 'label', 'delivery']
['id', 'label', 'delivery']['date', '', '']['date', '', ''], mais affiché commme ['date']


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']]

  • No labels