Référence de l'API des scripts Shopify
Les scripts sont écrits avec une API Ruby qui vous donne une grande marge de contrôle et de flexibilité.
Il existe plusieurs types de scripts différents. Un script est associé à un type lors de sa création dans l'application Script Editor, en fonction du modèle de script que vous choisissez pour commencer :
Scripts de rubriques
Les scripts de rubriques affectent les rubriques du panier et permettent de modifier les prix ainsi que d'accorder des réductions. Ces scripts sont exécutés chaque fois qu'une modification est apportée au panier.
Les scripts de rubrique qui accordent une réduction sur un abonnement ne l’appliquent qu'au premier paiement de l’abonnement. Ils ne prévoient pas de réduction sur les paiements suivants.
Certaines méthodesne sont utilisables que dans les scripts de rubrique.
Scripts d'expédition
Les scripts d'expédition interagissent avec l'expéditionet peuvent modifier les modes d'expédition ou accorder des réductions sur les frais d'expédition. Ces scripts sont exécutés lorsque votre client accède à la page des options d'expédition au moment du paiement.
Les scripts d’expédition qui accordent une réduction sur les frais d’expédition d’un abonnement ne l’appliquent qu’au premier paiement de l’abonnement. Ils ne prévoient pas de réduction sur les paiements suivants.
Certaines méthodesne sont utilisables que dans les scripts d'expédition.
Scripts de paiement
Les scripts de paiement interagissent avec lespaiementset peuvent renommer, cacher ou réorganiser les passerelles de paiement. Veuillez noter que les scripts de paiement n'interagissent pas avec les passerelles de paiement affichées avant l'écran de passage à la caisse, telles qu'Apple Pay. Ces scripts sont exécutés une fois sur la page de paiement.
Certaines méthodesne sont utilisables que dans les scripts de paiement.
Méthodes générales
Les méthodes suivantes sont utilisables, quel que soit le type de script :
Entrée
Méthode | Type de retour | Description |
---|---|---|
.cart | Panier | Renvoie un objet de panier modifiable. |
. paramètres régionaux | chaîne | Renvoie les paramètres régionaux du client. Par exemple,en ,fr , orpt-BR . |
Panier
L'objet paiement est uniquement disponible sur la boutique en ligne. Certains paiements abandonnés ont accès à l'objet paiement. Cependant, si un passage à la caisse a été fermé et qu'un client se rend sur le paiement abandonné, il est directement acheminé jusqu'sur la page de paiement prérempli et l'objet paiement n'existe plus. Cela est dû au fait que l'e-mail de relance de panier abandonné a contourné la boutique en ligne.
Méthode | Type de retour | Description |
---|---|---|
.customer | Client | Renvoie le propriétaire du panier (le cas échéant). |
.shipping_address | ShippingAddress | Renvoie l'adresse d'expédition du propriétaire du panier (le cas échéant). |
.discount_code | varie | Renvoie :
|
.line_items | List |
Renvoie une liste contenant toutes les rubriques du panier. |
.presentment_currency | List |
Renvoie la devise locale (présentation) du client (au formatISO 4217). Par exemple, USD. |
.subtotal_price | Argent (filtre financier) | Renvoie le sous-total du panier après l'application des réductions de rubrique, mais avant celle des codes de réduction. |
.total_weight | grams | Renvoie le poids total de toutes les rubriques du panier. |
CartDiscount::FixedAmount
Méthode | Type de retour | Description |
---|---|---|
.code | Chaîne | Renvoie le code de réduction utilisé pour appliquer la réduction. |
.amount | Argent (filtre financier) | Renvoie le montant de la réduction. |
.reject({ message: String }) | nil | Rejette le code de réduction appliqué au panier. Unmessage est requis. |
.rejected? | Booléen | Indique si le code de réduction a été rejeté ou non. |
CartDiscount::Percentage
Méthode | Type de retour | Description |
---|---|---|
.code | Chaîne | Renvoie le code de réduction utilisé pour appliquer la réduction. |
.percentage | Décimale | Renvoie le pourcentage de la réduction. |
.reject({ message: String }) | nil | Rejette le code de réduction appliqué au panier. Unmessage est requis. |
.rejected? | Booléen | Indique si le code de réduction a été rejeté ou non. |
CartDiscount::Shipping
Méthode | Type de retour | Description |
---|---|---|
.code | Chaîne | Renvoie le code de réduction utilisé pour appliquer la réduction. |
.reject({ message: String }) | nil | Rejette le code de réduction appliqué au panier. Unmessage est requis. |
.rejected? | Booléen | Indique si le code de réduction a été rejeté ou non. |
Client
Méthode | Type de retour | Description |
---|---|---|
.id | Entier | Renvoie le号d 'identification du client. |
Chaîne | 杜Renvoie l本电子邮件客户端。 | |
.tags | List |
Renvoie une liste des chaînes de caractères représentant les balises définies pour un client. |
.orders_count | Entier | Renvoie le nombre total de commandes passées par un client. |
.total_spent | Argent (filtre financier) | Renvoie le montant total dépensé par le client sur toutes les commandes. |
.accepts_marketing? | Booléen | Indique si le client accepte les communications marketing. |
LineItem
gramsMéthode | Type de retour | Description |
---|---|---|
.grams | Renvoie le poids total de la rubrique. | |
.line_price | Argent (filtre financier) | Le prix de la rubrique. |
.discounted? | Booléen | Retourne si le prix d’une rubrique a été réduit par un script ou par une réduction appliquée manuellement. L’utilisation de codes de réduction n’influence pas la valeur de retour. |
.properties | hash | Renvoie les propriétés spécifiées pour cette rubrique. |
.variant | Variante | Renvoie la variante spécifique du produit représenté par la rubrique. |
.quantity | Entier | Renvoie la quantité de cette rubrique. |
.selling_plan_id | Entier | Renvoie l’identifiant du forfait de vente de la rubrique. Avec cette méthode, lorsque la boutique propose des abonnements, le script détecte quand une variante de produit estvendue dans le cadre d'un abonnement. |
Liste
Méthode | Type de retour | Description |
---|---|---|
.new | Liste | Crée un nouvel objet pour représenter une liste. |
.[] | Élément ou nul | Renvoie l'élément à l'index spécifié. |
.& | Liste | Renvoie une nouvelle liste contenant les éléments communs aux deux listes, sans doublon. |
.delete_if | Liste | Supprime les éléments à l'aide d'un bloc de code facultatif. Voir la documentation sur laméthodedelete_if de Ruby. |
.empty? | Booléen | Renvoie |
.first | Élément ou nul | Renvoie le premier élément ou |
.index(*args, &block) | int ou nil | Renvoie l'index du premier élément de la liste. Si un bloc est fourni au lieu d'un argument, renvoie l'index du premier élément pour lequel le bloc est vrai. |
.rindex(*args, &block) | int ou nil | Renvoie l'index du dernier élément de la liste. Si un bloc est fourni au lieu d'un argument, renvoie l'index du premier élément pour lequel le bloc est vrai. |
.last | Élément ou nul | Renvoie le dernier élément ou |
.length | int | Renvoie le nombre d'éléments dans la liste. |
.size | int | Alias de la longueur. |
.each(*args, &block) | Liste | Appelle un bloc une fois pour chaque élément de la liste, en le passant en tant que paramètre du bloc. |
ShippingAddress
Méthode | Type de retour | Description |
---|---|---|
.name | chaîne | Renvoie le nom de la personne associée à l'adresse d'expédition. |
.address1 | chaîne | Renvoie la partie de l'adresse d'expédition correspondant à la rue. |
.address2 | chaîne | Renvoie le champ supplémentaire facultatif de la partie de l'adresse d'expédition correspondant à la rue. |
.phone | chaîne | Renvoie le numéro de téléphone de l'adresse d'expédition. |
.city | chaîne | Renvoie la ville de l'adresse d'expédition. |
.zip | chaîne | Renvoie le code postal de l'adresse d'expédition. |
.province | chaîne | Renvoie la province, l'État fédéral ou la région de l'adresse d'expédition. |
.province_code | chaîne | Renvoie la valeur abrégée de la province ou de l'État de l'adresse d'expédition. |
.country_code | chaîne | Renvoie勒杜ISO代码支付de l d 'expedit本ion. |
Argent (filtre financier)
Méthode | Type de retour | Description |
---|---|---|
.derived_from_presentment(customer_cents:X) | Argent (filtre financier) | Convertit un montant (en centimes) de la devise locale (présentation) du client dans la devise de votre boutique. Cette méthode accepte le paramètrecustomer_cents , qui accepte un nombre en centimes. Par exemple,Money.derived_from_presentment (customer_cents: 500) . |
.new | Argent (filtre financier) | Crée un nouvel objet pour représenter un prix. |
.zero | Argent (filtre financier) | Crée un nouvel objet dont le prix est zéro. |
+ | Argent (filtre financier) | Ajoute deux objetsMoney (financiers). |
- | Argent (filtre financier) | Soustrait un objetMoney (financier) d'un autre. |
* | Argent (filtre financier) | Multiplie un objetMoney (financier) par un nombre. |
Exemples Argent
Crée un objetMoney
représentant 1000 cents, ou 10 $.
Crée un objetMoney
représentant 1 $, puis multiplie de montant par 50. Renvoie un objetMoney
représentant 50 $.
Variante
Méthode | Type de retour | Description |
---|---|---|
.id | Entier | Renvoie le numéro d'identification de la variante. |
.price | Argent (filtre financier) | Renvoie le prix à l'unité de la variante. |
.product | Produit | Renvoie le produit associé à la variante. |
.skus | List |
Renvoie les unités de gestion des stocks (SKU) de la variante, qui sont souvent utilisées pour le suivi des stocks. |
.title | Chaîne | Renvoie le titre de la variante. |
Produit
Méthode | Type de retour | Description |
---|---|---|
.id | Entier | Renvoie le numéro d'identification du produit. |
.gift_card? | Booléen | Indique si le produit est une carte-cadeau. |
.tags | List |
Renvoie une liste de chaînes de caractères représentant les balises définies pour ce produit. |
.product_type | Chaîne | Catégorisation pouvant être associée à produit par une balise, couramment utilisée pour le filtrage et les recherches. |
.vendor | Chaîne | Renvoie le vendeur de ce produit. |
Kernel
Kernelest un module Ruby qui est inclus dans chaque classe. Ses méthodes sont donc disponibles pour chaque objet. Ces méthodes agissent comme les fonctions globales dans les autres langages.
Méthode | Type de retour | Description |
---|---|---|
.exit | aucun | Termine l'exécution du script actuel sans erreur. En cas d'exécution sans qu'aucun élément n'ait été associé avecOutput.cart , le script reste sans effet. Cette méthode est pratique pour sortir d'un script, par exemple dans le cas où le client n'est pas éligible à l'exécution du script. |
Exemple de Kernel
Méthodes de rubrique
Les méthodes suivantes sont uniquement utilisables dans lesscripts de rubrique:
Panier
Méthode | Type de retour | Description |
---|---|---|
.subtotal_price_was | Argent (filtre financier) | Renvoie le sous-total du panier avant l'application des codes de réduction. |
.subtotal_price_changed? | Booléen | Indique si le sous-total a changé. |
LineItem
Méthode | Type de retour | Description |
---|---|---|
.change_line_price(Moneynew_price, { message:String}) | Argent (filtre financier) | Passe le prix de la rubrique au montant spécifié. Unmessage est requis. Le nouveau prix (new_price ) doit être inférieur au prix actuel. |
.original_line_price | Argent (filtre financier) | Renvoie le prix normal de la rubrique avant l'application des scripts et des codes de réduction. |
.line_price_was | Argent (filtre financier) | Renvoie le prix de la rubrique avant les modifications appliquées par le script en cours. |
.line_price_changed? | Booléen | Indique si le prix de la rubrique a changé. |
.change_properties(hashnew_properties, { message:String}) | hash | Définit de nouvelles propriétés pour une rubrique. La valeur de hachage d'origine des propriétés est stockée dansproperties_was , tandis que la valeur de hachage des propriétés transmise à la méthode devient les nouvelles propriétés de la rubrique. |
.properties_was | hash | Renvoie la valeur de hachage d'origine des propriétés de la rubrique avant l'application des modifications. |
.properties_changed? | Booléen | Indique si les propriétés pour la rubrique ont été modifiées. |
.split({ take:Integer}) | LineItem | Divise une rubrique en deux rubriques.take indique quelle quantité doit être retirée de la rubrique d'origine pour en créer une deuxième. |
.split example
Cet exemple de script divise en deux une rubrique intituléeoriginal_line_item
. La nouvelle rubrique a une quantité de 1 (spécifiée partake: 1
). Le script applique alors un prix réduit à la nouvelle rubrique avec le message suivant : « Troisième chapeau pour 5 dollars. »
Variante
Méthode | Type de retour | Description |
---|---|---|
.compare_at_price | Argent (filtre financier) | Renvoie le prix avant réduction de la variante. Renvoienil si la variante n'a pas de prix avant réduction. |
Méthodes d'expédition
Les méthodes suivantes sont uniquement utilisables dans lesscripts d'expédition:
Entrée
Méthode | Type de retour | Description |
---|---|---|
.shipping_rates | ShippingRateList | Renvoie une liste de tous les frais d'expédition. |
ShippingRateList
Méthode | Type de retour | Description |
---|---|---|
.delete_if | ShippingRateList | Supprime les frais d'expédition à l'aide d'un bloc de code optionnel. Voir la documentation sur laméthodedelete_if de Ruby. |
.sort! | ShippingRateList | Trie les tarifs d'expédition à l'aide de l'opérateur de comparaison ou d'un bloc de code optionnel. Voir la documentation sur laméthodesort! de Ruby. |
.sort_by! | ShippingRateList | Trie les frais d'expéditions à l'aide d'un bloc de code optionnel. Voir la documentation sur laméthodesort_by! de Ruby. |
ShippingRate
Méthode | Type de retour | Description |
---|---|---|
.code | Chaîne | Renvoie le code du tarif d'expédition. |
.markup | Argent (filtre financier) | Renvoie le balisage du tarif d’expédition, le cas échéant. |
.name | Chaîne | Renvoie le nom des frais d’expédition. Il est possible de le modifier en utilisant la méthodechange_name . |
.price | Argent (filtre financier) | Renvoie le montant des frais d'expédition. |
.source | Chaîne | Renvoie la source (le transporteur) associée aux frais d’expédition, le cas échéant. Elle ne peut pas être modifiée. |
.change_name(Stringnew_name) | Chaîne | Modifie le nom (255 caractères maximum) des frais d’expédition. Vous ne pouvez pas modifier, supprimer ni masquer la source. |
.apply_discount(Moneydiscount, { message: String }) | Argent (filtre financier) | Applique une réduction du montant fixe spécifié. Le prix ne peut pas être réduit en dessous de 0. Un message est requis. |
.phone_required? | Booléen | Renvoietrue si un numéro de téléphone est requis pour obtenir les frais d'expédition, oufalse dans le cas contraire. |
Moyens de paiement
Les méthodes suivantes sont utilisables dans lesscripts de paiement:
Entrée
Méthode | Type de retour | Description |
---|---|---|
.payment_gateways | PaymentGatewaysList | Renvoie une liste de toutes les passerelles de paiement de la boutique. |
PaymentGatewayList
Méthode | Type de retour | Description |
---|---|---|
.delete_if | PaymentGatewayList | Supprime les passerelles de paiement à l'aide d'un bloc de code optionnel. Voir la documentation sur laméthodedelete_if de Ruby. |
.sort! | PaymentGatewayList | Trie les passerelles de paiement à l'aide d'un opérateur de comparaison ou d'un bloc de code optionnel. Voir la documentation sur laméthodesort! de Ruby. |
.sort_by! | PaymentGatewayList | Trie les passerelles de paiement à l'aide d'un bloc de code optionnel. Voir la documentation sur laméthodesort_by! de Ruby. |
PaymentGateway
Méthode | Type de retour | Description |
---|---|---|
.name | Chaîne | Renvoie le nom de la passerelle de paiement. |
.enabled_card_brands | List |
Si la passerelle de paiement prend en charge les cartes de crédit, renvoie une liste des types de cartes de crédit autorisées par la boutique. Si la passerelle ne prend pas en charge les cartes de crédit, renvoie une liste vide. |
.change_name(Stringnew_name) | Chaîne | Modifie le nom de la passerelle de paiement. Les passerelles de paiement avec des logos ne peuvent pas être renommées. |
Exemples
Dans l'exemple de script de rubrique suivant, lorsqu'un client commande un produit qui n'est pas une carte-cadeau, le prix du produit est réduit de 9 $. En outre, le montant total que le client a dépensé lors de ses visites sur votre boutique s'affiche :
En savoir plus
En savoir plus sur :