Fundamentos de Liquid para desarrolladores que vienen de otros lados
Si has escrito plantillas antes, Liquid te tomará una tarde. Lo que toma más tiempo es aceptar lo que no te dejará hacer, porque esos límites son deliberados y dan forma a cómo se construyen los temas de Shopify.
Esta es la orientación que damos a desarrolladores que se unen a un proyecto de Shopify desde cualquier otra tecnología.
El modelo mental#
Liquid es un lenguaje de renderizado, no un lenguaje de aplicación. Tiene objetos que le entrega Shopify, filtros para formatearlos y etiquetas para flujo de control. No hay acceso a base de datos, no hay computación arbitraria de consecuencia y no hay forma de alcanzar fuera de los objetos que te dieron. Si necesitas algo que el objeto no contiene, la respuesta es un metafield, una app o una página diferente.
Cada hora gastada intentando hacer que Liquid se comporte como un lenguaje de propósito general es una hora que debería haberse gastado en el modelo de datos.
Lo que usarás constantemente#
| Cosa | Para qué es |
|---|---|
| Objetos | product, collection, cart, customer, shop: los datos de la página |
| Filtros | Formateo: money, date, image_url, escape |
| Etiquetas | Flujo de control: if, for, assign, render |
| Secciones y bloques | Estructura editable por el comerciante en el editor de temas |
| Metafields | Tus propios datos estructurados adjuntos a objetos de Shopify |
Trampas comunes#
- Los bucles sobre colecciones grandes se renderizan lentamente; pagina en lugar de filtrar en Liquid.
- Cualquier cosa que calcules por solicitud se calcula en cada solicitud: la salida amigable con caché importa.
- render recibe un ámbito aislado; include está obsoleto y se comporta diferente.
- El dinero se almacena en centavos; usa los filtros de dinero en lugar de hacer aritmética a mano.
- El contenido específico del cliente previene el almacenamiento en caché ingenuo de página completa, que es una decisión de rendimiento además de corrección.
Dónde poner la lógica en su lugar#
El modelado de datos pertenece a metafields y metaobjects, definidos una vez y leídos económicamente. El comportamiento pertenece a una app o al navegador. Liquid debería mayormente leer y formatear. Los temas que siguen esa división permanecen rápidos y comprensibles.
Preguntas frecuentes
¿Es difícil aprender Liquid?
No: un desarrollador competente es productivo en un día. Aprender lo que Shopify no te dejará hacer toma más tiempo.
¿Puedo consultar datos en Liquid?
Solo lo que te da el grafo de objetos de la página, más metafields. No hay consultas arbitrarias.
¿Debería vivir la lógica en Liquid o JavaScript?
Lógica de presentación en Liquid, interacción en JavaScript, reglas de negocio en una app o en tu modelo de datos.
shopify liquidplantillas liquiddesarrollo tema shopifyfundamentos liquidshopify metafields