Ne fonctionne que pour les clients Shopify Plus, les clients Shopify "standard" n'ayant pas accès à l'app Script Editor.
Le code fourni a été généré avec l'outil Shopify Script Creator ; vous pouvez l'utiliser vous-mêmes pour créer des scénarios plus complexes si besoin.
- Installez l'app Script Editor sur votre boutique
- Dans l'app ("Apps" dans la colonne de gauche puis "Script Editor"), cliquez sur le bouton "Create Script"
- Sélectionnez "Payment gateways" et "Blank template", puis cliquez sur "Create script"
- Entrez un titre tel que "Affichage Alma"
- Dans "Ruby Source Code", supprimez tout le code existant puis copiez/collez le code du fichier ci-dessous
- En utilisant la colonne "Cart Input" et le bouton "Run script" dans le panneau "Output", vous pouvez vérifier l'effet du script dans différents cas de figure.
La vidéo ci-dessous montre le process complet, tests compris :
Le code fourni applique les règles suivantes :
- Si le montant du panier est inférieur à 100€ ;
- Ou si le montant du panier est supérieur à 2000€ ;
- Ou si le code du pays de livraison n'est pas FR ;
- Ou si le panier contient une carte cadeau (obligation contractuelle) ;
- Alors, cacher les moyens de paiement qui contiennent le mot "Alma"
Voir ci-dessous pour adapter ce code à vos besoins :
Modifier la ligne 11
du code : changer la valeur 100
par le minimum à utiliser, en Euros.
Note : Si vous choisissez un montant minimum inférieur au montant minimum configuré par Alma sur votre compte, vos clients pourront voir et sélectionner le moyen de paiement Alma sur votre boutique, mais leur paiement sera refusé. Si vous voulez étendre votre plage de montants autorisés, contactez nous.
Modifier la ligne 16
du code : changer la valeur 2000
par le maximum à utiliser, en Euros.
Note : Si vous choisissez un montant maximum supérieur au montant maximum configuré par Alma sur votre compte, vos clients pourront voir et sélectionner le moyen de paiement Alma sur votre boutique, mais leur paiement sera refusé. Si vous voulez étendre votre plage de montants autorisés, contactez nous.
Modifier la ligne 20
du code : ajouter, entre les crochets, les codes des pays autorisés en majuscules, entre
guillemets et séparés par des virgules.
Par exemple, pour ajouter la Belgique, la ligne 20
devient :
["FR", "BE"]
Supprimer les lignes 18
à 21
, i.e. supprimer cette portion du code :
CountryCodeQualifier.new(
:not_one,
["FR"] # Pays de livraison autorisés
)
Si vous avez installé plusieurs gateways Alma, vous pouvez utiliser des "Campagnes" différentes pour contrôler l'affichage de chacune en fonction de règles différentes.
Le code ci-dessous remplace les lignes 3
à 47
du code original, afin de :
- N'afficher le paiement en 3 fois que entre 100€ et 2000€ pour des paniers livrés en France (première "campagne")
- N'afficher le paiement en 4 fois que entre 400€ et 2000€ pour des paniers livrés en France (deuxième "campagne")
- Ne pas afficher Alma si le panier contient une carte cadeau (troisième "campagne", obligatoire)
Référez-vous aux paragraphes précédents pour modifier ces seuils et/ou modifier les restrictions de pays.
CAMPAIGNS = [
##########################################################################################################
### En modifiant les valeurs ci-dessous, vous changez les conditions d'affichage du paiement en 3 fois ###
##########################################################################################################
ConditionallyRemoveGateway.new(
:all,
nil,
OrSelector.new(
CartAmountQualifier.new(
:cart,
:less_than,
100 # Montant minimum
),
CartAmountQualifier.new(
:cart,
:greater_than,
2000 # Montant maximum
),
CountryCodeQualifier.new(
:not_one,
["FR"] # Pays de livraison autorisés
)
),
:any,
nil,
GatewayNameSelector.new(
:does,
:include,
["Paiement en 3 fois avec Alma"]
)
),
##########################################################################################################
### En modifiant les valeurs ci-dessous, vous changez les conditions d'affichage du paiement en 4 fois ###
##########################################################################################################
ConditionallyRemoveGateway.new(
:all,
nil,
OrSelector.new(
CartAmountQualifier.new(
:cart,
:less_than,
400 # Montant minimum
),
CartAmountQualifier.new(
:cart,
:greater_than,
2000 # Montant maximum
),
CountryCodeQualifier.new(
:not_one,
["FR"] # Pays de livraison autorisés
)
),
:any,
nil,
GatewayNameSelector.new(
:does,
:include,
["Paiement en 4 fois avec Alma"]
)
),
# Désactive Alma si le panier contient une carte cadeau
ConditionallyRemoveGateway.new(
:any,
nil,
nil,
:any,
GiftCardSelector.new(
:is
),
GatewayNameSelector.new(
:does,
:include,
["Alma"]
)
)
].freeze
Il est possible d'arriver à l'étape de paiement du checkout sans produits dans le panier. Ce cas est rare mais il existe.
Dans ce cas là le script ne fonctionne plus et renvoie une erreur.
Pour éviter cela, j'ai fait un correctif dans ce fork : https://gist.github.com/fabiensebban/27ad5a31b4e646ff5d913fab33b7b0e6