Les bases de Liquid pour les développeurs venant d'ailleurs
Si vous avez déjà écrit des templates, Liquid vous prendra un après-midi. Ce qui prend plus de temps, c'est d'accepter ce qu'il ne vous laissera pas faire, car ces limites sont délibérées et façonnent la construction des thèmes Shopify.
Voici l'orientation que nous donnons aux développeurs rejoignant un projet Shopify depuis n'importe quelle autre stack.
Le modèle mental#
Liquid est un langage de rendu, pas un langage d'application. Il reçoit des objets fournis par Shopify, des filtres pour les formater, et des balises pour le flux de contrôle. Il n'y a pas d'accès à la base de données, pas de calcul arbitraire conséquent, et aucun moyen d'atteindre l'extérieur des objets qui vous ont été donnés. Si vous avez besoin de quelque chose que l'objet ne contient pas, la réponse est un metafield, une app, ou une page différente.
Chaque heure passée à essayer de faire se comporter Liquid comme un langage généraliste est une heure qui aurait dû être consacrée au modèle de données.
Ce que vous utiliserez constamment#
| Élément | À quoi il sert |
|---|---|
| Objets | product, collection, cart, customer, shop — les données de la page |
| Filtres | Formatage : money, date, image_url, escape |
| Balises | Flux de contrôle : if, for, assign, render |
| Sections et blocs | Structure modifiable par le marchand dans l'éditeur de thème |
| Metafields | Vos propres données structurées attachées aux objets Shopify |
Pièges courants#
- Les boucles sur de grandes collections s'affichent lentement ; paginez plutôt que de filtrer dans Liquid.
- Tout ce que vous calculez par requête est calculé à chaque requête — la sortie compatible cache compte.
- render reçoit une portée isolée ; include est déprécié et se comporte différemment.
- L'argent est stocké en centimes ; utilisez les filtres money plutôt que de faire l'arithmétique à la main.
- Le contenu spécifique au client empêche la mise en cache naïve de page complète, ce qui est une décision de performance autant que de justesse.
Où placer la logique à la place#
Le façonnage des données appartient aux metafields et metaobjects, définis une fois et lus à moindre coût. Le comportement appartient à une app ou au navigateur. Liquid devrait principalement lire et formater. Les thèmes qui suivent cette séparation restent rapides et compréhensibles.
Questions fréquentes
Liquid est-il difficile à apprendre ?
Non — un développeur compétent est productif en un jour. Apprendre ce que Shopify ne vous laissera pas faire prend plus de temps.
Puis-je interroger des données dans Liquid ?
Seulement ce que le graphe d'objets de la page vous donne, plus les metafields. Il n'y a pas d'interrogation arbitraire.
La logique doit-elle vivre dans Liquid ou JavaScript ?
Logique de présentation dans Liquid, interaction dans JavaScript, règles métier dans une app ou dans votre modèle de données.
shopify liquidtemplating liquiddéveloppement thème shopifybases liquidshopify metafields