Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

Context

Store app properties are used to customize the level of information displayed on screen for a given entity. OneStock's basic display is like this:

                              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)

Code Block
languageapplescript
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é You can find this configuration in the configuration -> store_app -> pages section of your admin backoffice (https://admin.onestock-retail.com/cXXX/config/store_app/pages).

Advanced customization

Tip

To view the default properties, use the test command dumpConfig()

Multi parcel

In the case of pages that support multi-packaging (bag and pack), there is an entity called multi_order, which corresponds to the one used when the store app is configured for multi-packaging (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
Code Block
languageapplescript
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).

Tip

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

Popins

The information level of the various popins can also be configured.

Properties Formatting

Object properties often need to be formatted for aesthetic reasons.

It is possible to use one or more formatters with the following syntax property|formatter:option|formatter|formatter'.Pour que la première lettre du type de livraison soit en majuscule, on utilisera '

Tip

Examples:

  • to capitalize the first letter of the delivery type, use delivery.type|capitalize

...

  • to retrieve the 3rd element of an array (index 2),

...

  • I'

...

  • ll use 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é  "
Tip

Parenthesis

A parenthesis syntax is available for the most complex expressions.

Properties that are nested within parentheses will be evaluated first. For example, the property parcels|forcount:line_item_ids|concatraw: / |concatraw: (line_items|length)

...

will display 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

...

In the absence of parentheses, formatters are applied from left to right.

All formatters availables

...

Défaut

...

Surcharge onboarding

...

Ré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.

...

Name

Description

Option

Example → Render

arrayelement

Retrieves the element of an array with index.

Element index

types|arrayelement:0
ffs

capitalizeRemplace toutes les lettres par des minuscules, sauf la première, en majuscule

Replace all letters with lower case, except the first, which is upper case.


features.name|capitalize
Summer dress

concat

Concatène une autre Concatenates another property, sans espacePropriété à concaténerwithout spaces.

Property to concatenate

carrier|concat:tracking_code
ups64477466854

concatraw

Concatène une string définie dans l'option

String à concaténerConcatenates a string.

Defined string

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 from warehouse → dispatched from warehouse

currency

Formats a number into a currency, with a symbol defined in another property.

Property containing the currency

payment.price|currency:payment.currency
-> 35,99 £

currencyraw

Formate un nombre en une currency, avec un symbole défini dans l'option

La currency à utiliserFormats a number into a currency, with a symbol defined in the expression.

The currency to use

payment.price|currencyraw:USD
35,99 $

datetoFormate un intervalle de date

Status
colourYellow
title9.8
Propriété correspondant à la date de fin

Format a date range.

Property corresponding to end date

eta_start|dateto:end_end
27 - 30 september

divide_by

Divise une valeur par une autre valeur passée en paramètre

Le chemin du diviseurDivides a value of a property by an another.

Divisor property

order_item.pricing_details.price|divide_by:order_item.quantity 3 (ex : pour un prix de 6 et une quantité de price = 6 and quantity = 2)

expirationcolor

Renvoie 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)Returns a date in the color sent if expired.

It is possible to pass a relative parameter (seconds to be subtracted from the expiry date).

The warning value to be subtracted from the current date for the calculation (in seconds)

The color to be set if the date has expired.

The value to be returned.

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 virgulefilter

Scans an array and keeps the elements of this array whose property is worth one of the values provided.

Comma-separated list of values

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

Status
colourYellow
title5.5

Scans an array and counts the number of elements in the array whose property has one of the provided values.

Comma-separated list of values

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é

Status
colourYellow
title5.5

Scans an array and counts the size of each property in the array.

Property

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

Status
colourYellow
title10.0

Scans an array and returns the element with the lowest index in the array defined in option . If nothing matches, does nothing.

Comma-separated list of values

types|hierarchicalchoose:ois,ckc,ffs ckc

index_ranges_quantityCalcule la quantité totale d’index dans les index ranges fournits (v11.8)

Status
colourYellow
title11.8

Calculates the total quantity of indexes in the supplied index ranges.

parcel.line_item_index_ranges|index_ranges_quantity|transcount:order.item_count 5 articlesitems

lengthRetourne l'attribut length d'un tableau ou d'une string

Returns the length attribute of an array or string.


piece_ids|length
3

link

Formate le résultat sous forme de lien

Une propriétéFormats the result as a link.

Property

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éFormats the result as a blank link.

Property

delivery.carrier.name|link:delivery.carrier.tracking_url
<a target="_blank" href="colissimoURL">colissimo</a>

lowercaseRemplace toutes les lettres par des minuscules

Replace all letters with lowercase letters.


features.name|lowercase
summer dress

moment

Formate un timestamp en utilisant un format de momentjs

Format de la dateFormat a timestamp using momentjs.

Date format

date|moment:DD/MM/YYYY
29/03/2018

mutiplyPermet de multiplier deux valeurs

Status
colourBlueYellow
title11.5

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

Multiplies two values.

Can take optional features or constants.

You can limit the number of decimal places by adding a second argument separated by a comma. By default, results are limited to 2 digits after the decimal point.

payment.price|multiply:features.quantity → 17.97 (payment.price = 5.99
and features.quantity = 317.97)

payment.price|multiply:features.quantity,2 → 3.333333 (payment.price = 10
and features.quantity = 1/33.33333333)

prepend

Concatène une autre property à gauche

Une propriétéConcatenates another property on the left.

Property

tracking_code|prepend:carrier
ups64477466854

prependraw

Concatène une string définie dans l'option, à gauche

String à afficherConcatenates a string on the left.

Defined string

state|prependraw:L'etat est
L'etat est State is → State is dispatched

rawstring

Permet de remplacer le résultat par une string définie dans l'option

String à afficherReplaces the result with a string defined.

Defined string

|rawstring:Charasseunits → unitsCharasse

sum

Scans an array and sum

Parcourt un tableau et fais la somme de la propriété donnée en option

Une propriététhe given property in the array.

Property

line_items|sum:payment.price
75.8

trackingcodeAffiche

le Displays 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 codeif available, translates key passed in parameter otherwise.

Key to translate

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) → XV265564654 or Missing tracking

trans

Translates the result (if the translation key exists).


|rawstring:states.|concat:state|trans
Ensacheeey → Dispatch

transcount

Prend un nombre en entrée et appelle une traduction avec pluralisation

Clé de traductionTakes a number as input and calls a translation with pluralization.

Key to translate

line_items|length|transcount:order.item_count
3 items

transcountnotnullClé de traduction

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)

Status
colourYellow
title10.0

Calls a translation with pluralization on the input. Displays nothing if !input is false in the javascript sense.

Key to translate

line_items|length|transcountnotnull:order.item_count

avec with 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

Status
colourYellow
title5.5

Scans an array and counts the number of elements whose property is not one of the provided values.

Comma-separated list of values

line_items|unfilterlength:state=removed,mistaken|concatraw: not canceled 5 not canceled

uppercaseRemplace toutes les lettres par des majuscules

Replace all letters with capital letters.


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.

Status
colourYellow
title11.0

Takes a date as input and returns the difference from now in the site's lang.


date|since → since 1 hour