Οι μεταβλητές Liquid είναι σύμβολα υποκατάστασης που ορίζονται στη Liquid, τα οποία αντικαθίστανται με τιμές από το GraphQL Admin API όταν εκτελείται μια ροή εργασίας. Οι μεταβλητές μπορούν να περιγράψουν τα χαρακτηριστικά των πελατών, των παραγγελιών και των προϊόντων που εμπλέκονται στις ροές εργασίας σας, όπως τον αριθμό παραγγελίας, την τιμή παραγγελίας ή το όνομα πελάτη. Οι μεταβλητές μπορούν να χρησιμοποιηθούν σε συνθήκες για τον έλεγχο της λογικής στη ροή εργασίας σας ή για την εξαγωγή δεδομένων από μια ενέργεια.
Προσθήκη μεταβλητών σε ροές εργασίας με χρήση της Liquid
Μπορείτε να προσθέσετε μεταβλητές χρησιμοποιώντας τη Liquid σε οποιοδήποτε πεδίο κειμένου που περιέχει τον σύνδεσμο Προσθήκη μεταβλητής. Κάντε κλικ στον σύνδεσμο Προσθήκη μεταβλητής κάτω από το σχετικό πεδίο και, στη συνέχεια, επιλέξτε μια μεταβλητή από τη λίστα.
Οι μεταβλητές στη λίστα Προσθήκη μεταβλητής φιλτράρονται, ώστε να χρησιμοποιείτε μόνο τις μεταβλητές που επιστρέφονται από βήματα πριν από το τρέχον βήμα, όπως τα στοιχεία ενεργοποίησης. Για παράδειγμα, το στοιχείο ενεργοποίησης Δημιουργήθηκε παραγγελία παρέχει πόρους παραγγελίας και καταστήματος από το Admin API που μπορούν να εισαχθούν ως μεταβλητές. Αφού επιλέξετε μια μεταβλητή από τη λίστα, αυτή προστίθεται στο πλαίσιο κειμένου ως σωστά διαμορφωμένη Liquid.
Μπορείτε επίσης να συντάξετε κώδικα Liquid απευθείας στο πεδίο κειμένου. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε τη μεταβλητή {{ order.name }} για να εμφανίσετε τη συμβολοσειρά παραγγελίας από τον διαχειριστή του Shopify, όπως order-123.
Επειδή το Flow χρησιμοποιεί το Admin API για την ανάκτηση των δεδομένων που χρησιμοποιούνται για τη Liquid, η σύνταξη των μεταβλητών χρησιμοποιεί camel case. Οι μεταβλητές camel case έχουν την πρώτη λέξη να αρχίζει με πεζό γράμμα και οι επόμενες λέξεις να αρχίζουν με κεφαλαίο γράμμα, όπως firstName ή canMarkAsPaid. Για παράδειγμα, για πρόσβαση στην ημερομηνία δημιουργίας ενός προϊόντος, πληκτρολογήστε {{ product.createdAt }}. Αν χρησιμοποιείτε τη σύνταξη Liquid σε ένα θέμα του Shopify, το οποίο δεν χρησιμοποιεί camel case, τότε θα πληκτρολογούσατε {{ product.created_at }}.
Ετικέτες συνθήκης και επανάληψης Liquid
Οι ετικέτες Liquid μπορούν να χρησιμοποιηθούν με μεταβλητές για την εκτέλεση των ακόλουθων λειτουργιών:
Σύνταξη δηλώσεων υπό συνθήκη, όπως ο προσδιορισμός εάν το σύνολο μιας παραγγελίας είναι μεγαλύτερο από 100 $.
Επανάληψη σε μια λίστα αντικειμένων, όπως η εξαγωγή δεδομένων για κάθε στοιχείο γραμμής σε μια παραγγελία.
Μπορείτε να χρησιμοποιήσετε ετικέτες Liquid για να συντάξετε αυτές τις δηλώσεις και να κάνετε επανάληψη σε αντικείμενα.
Για παράδειγμα, ο παρακάτω κώδικας Liquid εμφανίζει τον αριθμό παραγγελίας εάν το συνολικό ποσό της παραγγελίας είναι μεγαλύτερο από 100 $:
{% if order.totalPriceSet.shopMoney.amount > 100 %}
Order number: {{ order.name }}
{% endif %}
Μπορείτε επίσης να χρησιμοποιήσετε έναν βρόχο for για επανάληψη σε μια λίστα αντικειμένων, όπως τα στοιχεία γραμμής για μια παραγγελία. Για παράδειγμα, ο παρακάτω κώδικας Liquid εμφανίζει το όνομα κάθε στοιχείου γραμμής σε μια παραγγελία:
{% for li in order.lineItems %}
{{ li.title }}
{% endfor %}
Το Flow υποστηρίζει τις ακόλουθες ετικέτες συνθήκης (ή ροής ελέγχου) Liquid:
Μπορείτε να μετασχηματίσετε δεδομένα μεταβλητών στη Liquid χρησιμοποιώντας φίλτρα. Το Flow υποστηρίζει όλα τα φίλτρα Liquid ανοιχτού κώδικα.
Για παράδειγμα, ο παρακάτω κώδικας Liquid καταργεί ένα πρόθεμα από ένα όνομα παραγγελίας και εξάγει ό,τι απομένει: {{ order.name | remove: "Order-" }}
Παράγοντες που πρέπει να λάβετε υπόψη για τη χρήση μεταβλητών Liquid σε φίλτρα
Πριν από τον μετασχηματισμό μεταβλητών με τη χρήση φίλτρων, εξετάστε τους ακόλουθους παράγοντες:
Το Flow δεν υποστηρίζει τη σημειογραφία με τελεία που είναι διαθέσιμη για ορισμένα φίλτρα. Για παράδειγμα, το Flow υποστηρίζει {{ order.lineItems | size }} αλλά όχι {{ order.lineItems.size }}.
Το Flow δεν υποστηρίζει τη σημειογραφία με τελεία για μετα-πεδία. Για παράδειγμα, δεν μπορείτε να χρησιμοποιήσετε {{ order.metafields.custom.hold_note }}. Αντ' αυτού, πρέπει να κάνετε επανάληψη στα μετα-πεδία, όπως περιγράφεται στα παραδείγματα.
Το Flow δεν υποστηρίζει τη χρήση δεικτών για την πρόσβαση σε στοιχεία σε μια λίστα. Για παράδειγμα, δεν μπορείτε να χρησιμοποιήσετε {{ order.lineItems[0].title }}. Αντ' αυτού, πρέπει να κάνετε επανάληψη στα στοιχεία γραμμής, όπως περιγράφεται στα παραδείγματα.
Φίλτρα ημερομηνίας
Εκτός από τα τυπικά φίλτρα Liquid, το Flow παρέχει φίλτρα ημερομηνίας για να λάβετε μια ημερομηνία σε σχέση με μια άλλη ημερομηνία για την υποστήριξη του στοιχείου ενεργοποίησης Προγραμματισμένη ώρα και των δυνατοτήτων Λήψη δεδομένων. Αυτά τα φίλτρα είναι: date_minus και date_plus. Για παράδειγμα:
Για να επιστρέψετε μια ημερομηνία μία ημέρα στο μέλλον: {{ "now" | date_plus: "1 day" }}
Για να επιστρέψετε μια ημερομηνία μία ημέρα στο παρελθόν: {{ "now" | date_minus: "1 day" }}
Αυτά τα φίλτρα δέχονται second, minute, day, week, month και year ως μονάδα διάρκειας, τόσο στον ενικό (όπως second) όσο και στον πληθυντικό (όπως seconds). Μπορείτε επίσης να παρέχετε τους ακόλουθους τύπους προσαρμόσιμης μονάδας:
Ένας ακέραιος αριθμός που αντιπροσωπεύει τον αριθμό των δευτερολέπτων: {{ "now" | date_minus: 3600 }}, όπου το 3600 ισοδυναμεί με 1 ώρα.
Το Flow παρέχει κρυπτογραφικά φίλτρα για κατακερματισμό και δημιουργία κωδικών ελέγχου ταυτότητας μηνυμάτων βάσει κατακερματισμού (HMAC). Αυτά τα φίλτρα είναι χρήσιμα για τη δημιουργία μοναδικών αναγνωριστικών, αθροισμάτων ελέγχου ή για την ενσωμάτωση με συστήματα τρίτων που απαιτούν συγκεκριμένες μορφές κατακερματισμού.
Φίλτρα κατακερματισμού
Το Shopify Flow υποστηρίζει τους παρακάτω τύπους φίλτρων κατακερματισμού:
blake3 - Δημιουργεί έναν κατακερματισμό BLAKE3 (συνιστάται για γενική χρήση).
Για γενικούς σκοπούς κατακερματισμού και νέες υλοποιήσεις, θα πρέπει να χρησιμοποιείτε το blake3, καθώς προσφέρει ανώτερη απόδοση και ασφάλεια σε σύγκριση με παλαιότερους αλγόριθμους. Ωστόσο, οι αλγόριθμοι sha256, sha1 και md5 είναι διαθέσιμοι για λόγους συμβατότητας με συστήματα τρίτων.
Παράδειγμα χρήσης:
Το {{ "hello world" | blake3 }} επιστρέφει τον κατακερματισμό BLAKE3 της φράσης «hello world».
Φίλτρα HMAC
Για να δημιουργήσετε ένα HMAC με ένα μυστικό κλειδί, χρησιμοποιήστε ένα από τα παρακάτω υποστηριζόμενα φίλτρα:
Θέλετε να εξαγάγετε τα URL για τον πελάτη, την παραγγελία και το προϊόν που εμπλέκονται σε μια ροή εργασίας.
# Output the base Admin URL for your store
https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}
# Assign the base Admin url to a variable named base_url:
{%- capture base_url -%}https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}{%- endcapture -%}
# Customer from a Customer trigger:
{{ base_url }}/customers/{{ customer.legacyResourceId }}
# Customer without the base_url:
https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}/customers/{{ customer.legacyResourceId }}
# Customer from an Order trigger:
{{ base_url }}/customers/{{ order.customer.legacyResourceId }}
# Order:
{{ base_url }}/orders/{{ order.legacyResourceId }}
# Product:
{{ base_url }}/products/{{ product.legacyResourceId }}
# Product Variant:
{{ base_url }}/products/{{ product.legacyResourceId }}/variants/{{ productVariant.legacyResourceId }}
# Example showing a clickable link in HTML, making use of the URL:
<a href="{{ base_url }}/products/{{ product.legacyResourceId }}">{{ product.title }}</a>
Μετατροπή λίστας ετικετών σε μετα-πεδίο
Θέλετε να μετατρέψετε ένα σύνολο ετικετών σε ένα μετα-πεδίο που είναι μια λίστα πεδίων κειμένου μίας γραμμής. Δημιουργείτε μια ροή εργασίας χρησιμοποιώντας το στοιχείο ενεργοποίησης Προστέθηκε προϊόν στο κατάστημα και χρησιμοποιείτε την ενέργεια Ενημέρωση μετα-πεδίου προϊόντος. Στην ενότητα Τιμή της ενέργειας Ενημέρωση μετα-πεδίου προϊόντος, προσθέτετε τον παρακάτω κώδικα liquid. Αυτό το παράδειγμα προϋποθέτει ότι χρειάζεται να ορίσετε τις τιμές μόνο μία φορά κατά τη δημιουργία του προϊόντος και ότι το προϊόν έχει δύο σχετικές ετικέτες: color:red και color:orange.
Παράδειγμα liquid για τον ορισμό της λίστας ενός πεδίου κειμένου μίας γραμμής.
Σύνταξη δυναμικού μηνύματος email για μια παραγγελία
Θέλετε να δημιουργήσετε μια ροή εργασίας για να στείλετε email σε έναν υπάλληλο όταν ένας πελάτης ξοδεύει περισσότερα από 500 $ σε μια παραγγελία. Δημιουργείτε μια ροή εργασίας χρησιμοποιώντας το στοιχείο ενεργοποίησης Δημιουργήθηκε παραγγελία, ορίζετε μια συνθήκη που είναι αληθής εάν το σύνολο της παραγγελίας είναι πάνω από 500 $ και χρησιμοποιείτε την ενέργεια Αποστολή εσωτερικού email. Στην ενότητα Μήνυμα της ενέργειας Αποστολή εσωτερικού email, χρησιμοποιείτε τις ακόλουθες μεταβλητές.
Παράδειγμα χρήσης μεταβλητών για την παροχή στοιχείων πελάτη.
Είσοδος
Έξοδος
Please send a personal thank you note to {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) for placing an order for $ {{ order.totalPriceSet.shopMoney.amount }}.
Παρακαλούμε στείλτε ένα προσωπικό ευχαριστήριο σημείωμα στην Jeanne Dupont (jeanne@example.com) για την υποβολή παραγγελίας αξίας 763,42 $.
Σύνταξη δυναμικού μηνύματος email για ένα προϊόν με χαμηλό απόθεμα
Αποφασίζετε ότι πρέπει να ενημερώσετε ένα μέλος του προσωπικού όταν το απόθεμα ενός προϊόντος μειώνεται και πρέπει να γίνει παραγγελία για περισσότερο απόθεμα. Δημιουργείτε μια ροή εργασίας που ξεκινά με το στοιχείο ενεργοποίησης Το μέγεθος του αποθέματος άλλαξε και ορίζετε μια συνθήκη που είναι αληθής εάν το προηγούμενο μέγεθος του αποθέματος είναι μικρότερο ή ίσο με 10. Στην ενότητα Μήνυμα της ενέργειας Αποστολή εσωτερικού email, χρησιμοποιείτε τις ακόλουθες μεταβλητές.
Παράδειγμα χρήσης μεταβλητών για την παροχή λεπτομερειών κομματιού.
Είσοδος
Έξοδος
Please reorder {{ product.title }}. Email owner@store.com to verify that they've received the purchase order.
Παρακαλούμε κάντε εκ νέου παραγγελία για το προϊόν High Waist Leggings - Black. Στείλτε email στη διεύθυνση owner@example.com για να επαληθεύσετε ότι έχουν λάβει την εντολή αγοράς.
Σύνταξη δυναμικού μηνύματος email για την ειδοποίηση του προσωπικού σχετικά με μια παραγγελία-απάτη
Θέλετε να ακυρώνετε παραγγελίες που έχουν υψηλό επίπεδο κινδύνου, αλλά προτιμάτε το προσωπικό σας να ακυρώνει την παραγγελία με μη αυτόματο τρόπο. Δημιουργείτε μια ροή εργασίας που ξεκινά με το στοιχείο ενεργοποίησης Δημιουργήθηκε παραγγελία και ορίζετε μια συνθήκη που είναι αληθής εάν το επίπεδο κινδύνου της παραγγελίας είναι ίσο με «υψηλό». Στην ενότητα Μήνυμα της ενέργειας Αποστολή εσωτερικού email, χρησιμοποιείτε τις ακόλουθες μεταβλητές.
Παράδειγμα χρήσης μεταβλητών για την παροχή πληροφοριών σχετικά με μια παραγγελία-απάτη.
Είσοδος
Έξοδος
Our Shopify store has received an order with a high risk of fraud. We would like to cancel this order right away, before it is sent to production:
{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}
Please confirm the new order status. Thanks!
Το κατάστημα Shopify που διαθέτουμε έχει λάβει μια παραγγελία με υψηλό κίνδυνο απάτης. Θα θέλαμε να ακυρώσουμε αμέσως αυτήν την παραγγελία, προτού σταλεί για παραγωγή:
#1001
Dupont, Jeanne
jeanne@example.com
Επιβεβαιώστε τη νέα κατάσταση παραγγελίας. Σας ευχαριστούμε!
Εξαγωγή των στοιχείων γραμμής μιας παραγγελίας με χρήση βρόχου for
Όταν λαμβάνετε μια παραγγελία, μπορεί να είναι χρήσιμο να στείλετε ένα μήνυμα που να περιέχει τα προϊόντα της παραγγελίας. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας έναν βρόχο for, ο οποίος εκτελεί επανειλημμένα ένα τμήμα κώδικα. Τα πεδία κειμένου που υποστηρίζουν μεταβλητές υποστηρίζουν επίσης βρόχους for και το αντικείμενο forloop.
Για παράδειγμα, θέλετε να δημιουργήσετε μια ροή εργασίας που επιστρέφει μια λίστα με όλα τα SKU και τις ποσότητες σε μια παραγγελία. Στην ενότητα Μήνυμα της ενέργειας Αποστολή εσωτερικού email, χρησιμοποιείτε τις ακόλουθες μεταβλητές.
Παράδειγμα χρήσης βρόχου for για την παροχή πληροφοριών παραγγελίας.
Είσοδος
Έξοδος
Order summary:
{% for a in order.lineItems %}
{{a.sku}} ( {{a.quantity}} )
{% endfor %}
Εξαγωγή των στοιχείων γραμμής για μια παραγγελία με χρήση βρόχου for με πρόσθετες πληροφορίες
Αποφασίζετε να προσθέσετε περισσότερες πληροφορίες στο email, όπως το όνομα του προϊόντος, τα SKU, την τιμή ανά τεμάχιο και τις πληροφορίες αποστολής του πελάτη. Στην ενότητα Μήνυμα της ενέργειας Αποστολή εσωτερικού email, χρησιμοποιείτε τις ακόλουθες μεταβλητές.
Παράδειγμα χρήσης βρόχου for για την παροχή πιο εκτενών πληροφοριών παραγγελίας.
Είσοδος
Έξοδος
Order summary:
{% for a in order.lineItems %}
Product: {{a.title}}
SKU: {{a.sku}}
Price (per unit): ${{a.originalUnitPriceSet.shopMoney.amount}}
Quantity: {{a.quantity}}
{% endfor %}
Σύνοψη παραγγελίας:
Προϊόν: High Waist Leggings - Black
SKU: 8987097979
Τιμή (ανά μονάδα): 8,49 $
Ποσότητα: 5
Προϊόν: Athletic Socks - Blue
SKU: 888998898B
Τιμή (ανά μονάδα): 5,61 $
Ποσότητα: 2
Εξαγωγή ορισμένων στοιχείων γραμμής συνδυάζοντας έναν βρόχο for με μια εντολή if
Πρέπει να παρακολουθείτε τα τεμάχια που πωλούνται και παρέχονται από έναν συγκεκριμένο προμηθευτή. Στην ενότητα Μήνυμα της ενέργειας Αποστολή εσωτερικού email, χρησιμοποιείτε τις ακόλουθες μεταβλητές και συμπεριλαμβάνετε μια εντολή if στον βρόχο for σας.
Παράδειγμα χρήσης βρόχου for και εντολής if για την παροχή πληροφοριών παραγγελίας για συγκεκριμένους προμηθευτές.
Είσοδος
Έξοδος
Acme product sold:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Product name: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Πωλήθηκε το προϊόν Acme:
Όνομα προϊόντος: High Waist Leggings - Black
SKU: 8987097979
Σύνθετα αντικείμενα δεδομένων στο Shopify Flow
Το Flow σάς επιτρέπει να έχετε πρόσβαση σε σχεδόν όλα τα δεδομένα που βρίσκονται στο GraphQL Admin API. Αυτό περιλαμβάνει σύνθετα αντικείμενα δεδομένων, όπως λίστες και αντικείμενα. Ωστόσο, υπάρχουν ορισμένοι περιορισμοί ως προς το τι μπορείτε να κάνετε με αυτά τα αντικείμενα. Αυτή η ενότητα περιγράφει αυτούς τους περιορισμούς και παρέχει παραδείγματα για το πώς να εργαστείτε με αυτά.
Αντί να καλείτε απευθείας λίστες και αντικείμενα, θα πρέπει να κάνετε βρόχο στη λίστα και να συμπεριλάβετε μόνο τα πεδία που θέλετε.
Για παράδειγμα, αντί να καλέσετε απευθείας το {{ order.lineItems }}, χρησιμοποιήστε την ακόλουθη μορφή για να καλέσετε συγκεκριμένα πεδία. Αυτά τα παραδείγματα περιλαμβάνουν όλα τα πεδία που θα συμπεριλαμβάνονταν με την απευθείας κλήση της λίστας ή του αντικειμένου. Αντιγράψτε και επικολλήστε τα πεδία που χρειάζεστε.
Κείμενο
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}