Shopify Partners Learning Liquid 2020
Shopify Partners Learning Liquid 2020
Aprendizaje
Líquido
Consejos, sugerencias y trucos para
comenzar con el desarrollo de temas de Shopify
Machine Translated by Google
Introducción
línea o en la de su cliente. No hace falta decir que aprender Liquid es la piedra angular de
todo gran desarrollador de Shopify.
¡éxito!
Ya sea que estés comenzando con los temas de Shopify o que seas un Shopify
experto experimentado, siempre hay cosas nuevas y útiles para aprender que te
ayudarán con el desarrollo de tu tema diario. Hemos compilado una lista completa de
consejos, sugerencias y trucos para usar Liquid que lo ayudarán a llevar sus habilidades
de desarrollo de temas de Shopify al máximo nivel.
siguiente nivel.
• ¡Además, aún más consejos, trucos y trucos para personalizar las tiendas Shopify
usando Liquid!
Machine Translated by Google
Tabla de contenido
4 / La plantilla product.liquid 32
CAPÍTULO 1
Sin embargo, ahí es realmente donde terminan las similitudes. Hay muchas cosas que
no puedes hacer con Liquid, por diseño. Por ejemplo, no tiene el concepto de "estado", no
le permite profundizar en las cubiertas de la plataforma y, en ocasiones, puede parecer
contradictorio para los programadores experimentados. Sin embargo, se ha pensado muy
bien, y lo que al principio puede parecer una limitación suele ser intencionado y por una
buena razón.
funcion de liquido
Liquid, como cualquier lenguaje de plantillas, crea un puente entre un archivo HTML y
un almacén de datos; en nuestro contexto, los datos son, por supuesto, una tienda
Shopify. Lo hace permitiéndonos acceder a las variables desde dentro de una plantilla
con una sintaxis fácil de usar y legible.
En Shopify, cada plantilla nos permite acceder a ciertas variables sin tener que hacer
ningún trabajo pesado. Por ejemplo, la plantilla product.liquid nos permite acceder a
todos los detalles relacionados con el producto visto actualmente, lo que, a su vez, nos
permite generar estos datos sin tener que saber nada sobre el producto real en sí. Estas
variables se conocen como variables líquidas. También puede usar Liquid para recuperar
datos que no están disponibles para nosotros. Por ejemplo, puedes pedirle a Shopify que
complete una variable que creas con todos los productos de una colección en particular.
Una vez que conocemos los nombres de las variables a las que tenemos acceso, o
creado, podemos usar construcciones de Liquid como "salida" y "bucles" para mostrar los
datos en nuestras plantillas.
Producción
Objetos y propiedades
Este ejemplo también nos introduce a la sintaxis de Liquid dot. Esto es
común en muchas plantillas y lenguajes del lado del servidor. Tomando nuestro
shop.name ejemplo podemos dividirlo en dos partes.
• tienda.dirección
• tienda.colecciones_cuenta
• tienda.moneda
• tienda.descripción
• tienda.dominio
• tienda.correo electrónico
• shop.enabled_payment_types
• tienda.metacampos
• tienda.money_format
• shop.money_with_currency_format
• Nombre de tienda
• tienda.contraseña_mensaje
• tienda.dominio_permanente
• políticas.de.tienda
• tienda.productos_cuenta
• tienda.url_segura
• tienda.tipos
• tienda.url
• tienda.proveedores
Los elementos que siguen al . representan las propiedades del objeto de la tienda.
Una propiedad podría ser tan simple como el nombre de la tienda (según
nuestro ejemplo anterior) o podría ser una lista de artículos, como los tipos
de pago habilitados en la tienda.
Propiedades de la colección
Notará en la lista anterior que varias de las propiedades son plurales, como:
• shop.enabled_payment_types
• tienda.metacampos
• tienda.tipos
Cuando usa Shopify y Liquid por primera vez, es fácil confundirse con las
colecciones. Por lo tanto, nos referiremos a "colecciones de productos" y
"colecciones de Liquid", siendo la primera una agrupación lógica de productos
definida en Shopify Admin, y la última como una lista de elementos a los que
podemos acceder en el código de Liquid.
Finalmente, vale la pena decir que cada uno de los elementos de la lista en
nuestra colección Liquid también puede tener propiedades. Un buen ejemplo de
esto es product.images. Esto representa una lista de todas las imágenes que se
han agregado a un producto en particular.
• imagen.alt
• imagen.adjunta_a_variante?
• imagen.id
• imagen.product_id
• imagen.posición
• imagen.src
• imagen.variantes
• Altura de imagen
• ancho de la imagen
• imagen.aspect_ratio
Bucles de líquido
Los bucles se utilizan mucho en los temas de Shopify y, afortunadamente, son muy
fáciles de entender. Si ha realizado algún tipo de programación básica, es probable
que el concepto de bucles le resulte muy familiar.
El uso de un ciclo, a menudo conocido como ciclo for, nos permite generar
la misma pieza de código un número conocido de veces en nuestra plantilla.
Como se mencionó anteriormente, un ejemplo típico sería generar todas las
imágenes asociadas con un producto.
Nuestro objetivo con este bucle es generar todas las imágenes de un producto en
particular. Aquí hay un ciclo muy simple que generará cada imagen en línea:
Paso 1
{% para imagen en producto.imágenes%}
Vale la pena señalar que, a menos que preguntemos específicamente qué tan
grande será nuestro bucle, no sabemos cuántos bucles ocurrirán, solo que
Liquid revisará cada elemento de nuestra lista, uno por uno. El ciclo terminará
después de la última iteración, y es en este punto que la plantilla continuará con
su procesamiento.
Este es, por supuesto, un ejemplo tonto para aclarar un punto: la imagen tiene
mucho más sentido, pero solo queremos enfatizar el hecho de que esta
variable no tiene relación con la colección Liquid.
Paso 2
<img src=”{{ imagen | img_url: '100x100' }}”>
Veremos los filtros, indicados por | carácter, a continuación, pero basta con
decir que esta breve construcción llenará el atributo src con la URL
completamente calificada para la versión de 100px de la imagen actual en nuestra
lista. El filtro hace todo el trabajo de crear el atributo src por nosotros.
Paso 3
{% que antes %}
La línea final de nuestro ejemplo es nuestra instrucción de cierre endfor. Esto le dice
a la plantilla que continúe después de que se hayan ejecutado todos los bucles.
<img src=“//cdn.shopify.com/s/files/1/2509/4288/productos/
13038FAW_PRO_EarringsD_352_100x100.jpg?v=1509545613”>
<img src=“//cdn.shopify.com/s/files/1/2509/4288/productos/
13039FAW_PRO_SQ_Jewellery4F_022_100x100.jpg?v=1509545613”>
<img src=“//cdn.shopify.com/s/files/1/2509/4288/productos/
13039FAW_PRO_SQ_Jewellery4S_023_100x100.jpg?v=1509545613”>
Los bucles son realmente útiles y es algo que encontrarás a diario en el desarrollo
de tu tema. La salida de imágenes y variantes de productos son dos ejemplos que se
encuentran comúnmente.
Filtros de líquidos
Otra característica muy poderosa de Liquid son los filtros de salida, que usamos
en el ejemplo de código anterior. Los filtros tienen tres propósitos principales:
Al generar una publicación de blog, es probable que desee que el lector sepa
cuándo se publicó:
<p class=”fecha-hora”>{{ artículo.published_at | fecha:
“%a, %b %d, %y” }}</p>
mar, 22 abr, 14
Aquí, estamos usando dos filtros con el objetivo final de crear un elemento de
estilo completo en un archivo de diseño.
<enlace href=“//cdn.shopify.com/s/files/1/0087/0462/t/394/
activos/tienda.css?28178” rel=“hoja de estilo” type=“texto/css”
medios = "todos">
Hay muchos filtros realmente útiles. Aquí hay algunos que te encontrarás
usando:
• activo_url
• hoja_estilo_etiqueta
• script_tag
• fecha
• pluralizar
• reemplazar
• resolver
• dinero
• dinero_con_moneda
• img_url
• enlace a
Lógica líquida
El aspecto final de Liquid que debemos observar es la lógica.
{% si producto.disponible %}
<h2>Precio: 99,99 £</h2>
{% más %}
<h2 class=“sold-out”>Lo sentimos , agotado</h2>
{% endif %}
Otra forma de ver la lógica es que nos permite controlar el flujo de una plantilla y, en
última instancia, tomar decisiones sobre qué datos se muestran. Esta es la razón por la
que estas etiquetas de Liquid se conocen comúnmente como etiquetas de "flujo de
control".
{% si carrito.item_count > 0 %}
<p>Tiene {{ cart.item_count }} artículo(s) en su carrito
</p>
{% demás %}
<p>No hay nada en tu carrito :( ¿Por qué no echas un <a href= “/
products”>mira nuestra gama de productos</a></p>
{% endif %}
La lista completa de etiquetas de flujo de control que puede usar para crear condiciones
son:
• Si
• a no ser que
• demás
• si no
• caso
• cuando
Operadores
Notará que en este ejemplo estamos usando el operador mayor que >.
Como la variable cart.item_count devuelve el número de artículos en el carrito
del usuario actual, podemos comprobar si es mayor que cero, es decir, si tiene
artículos.
{% si carrito.item_count > 0 %}
<p>Tienes {{ cart.item_count }} {{ cart.item_count | pluralize: 'item',
'items' }} en su carrito</p>
{% más %}
<p>No hay nada en tu carrito :( ¿Por qué no echas un <a href=
“/products”>mira nuestra gama de productos</a></p>
{% endif %}
Si bien hemos usado el operador > en el ejemplo anterior, hay una amplia
gama de operadores de comparación en Liquid, que incluyen:
Operador Función
== es igual
!= no es igual
o condición A o condición B
y condición A y condición B
Por ejemplo:
{% asignar mi_variable = “café” %} {{ mi_variable }}
salidas a:
café
Por ejemplo:
{%- asignar mi_variable = “café” -%} {{ mi_variable }}
salidas a:
café
Si usted es alguien a quien le gusta que su HTML se muestre sin espacios en blanco, como
regla general, puede optar por agregar guiones a toda la sintaxis de sus etiquetas de Liquid.
Resumen
Hemos cubierto mucho terreno en este capítulo, pero esperamos que le haya
dado una sólida introducción a Liquid. Aquí hay un recordatorio de lo que cubrimos:
• Cómo manipular datos con filtros y cómo vincular una hoja de estilo
en Shopify.
elementos.
CAPITULO 2
Cómo
configurar un "local"
Tema Shopify
Desarrollo
Medioambiente
Muchos desarrolladores y diseñadores usan y aman el editor de temas
de Shopify en línea: es fácil trabajar con él y está convenientemente
ubicado dentro del propio administrador de Shopify. Pero si está
buscando desarrollar temas de Shopify localmente, debe saber que no está limitado
al editor de temas en línea.
Una vez que se configura el kit de temas, puede integrar más fácilmente
herramientas de flujo de trabajo como Git en el desarrollo de su tema, lo que
le brinda la confianza para trabajar en un tema de Shopify con un equipo de
desarrolladores, trabajar dentro de su editor de texto favorito y tener una
experiencia más localizada. al editar temas. Theme Kit no es un entorno de
desarrollo verdaderamente local, ya que aún requiere una conexión a los
servidores de Shopify. Si está buscando una herramienta de desarrollo local
sin conexión, consulte Motifmate, que admite una opción sin conexión.
Si está trabajando en Mac, puede usar homebrew para instalar Theme Kit
ejecutando los siguientes comandos:
grifo de cerveza shopify/shopify
kit de tema de instalación de cerveza
Para probar que Theme Kit está instalado y funcionando, y para ver los comandos
disponibles, escriba:
tema --ayuda
Una vez que el Kit de temas esté instalado, necesitaremos algunas cosas para
conectar nuestro tema local a su tienda Shopify existente. Necesitaremos una clave API,
contraseña e ID del tema.
Tendremos que configurar una clave API para agregar a nuestra configuración y
crear una conexión entre nuestra tienda y el Kit de temas. La clave API permite que
Theme Kit hable y acceda a su tienda, así como a sus archivos de temas.
Para hacerlo, debemos iniciar sesión en la tienda Shopify y crear una aplicación
privada. En Shopify Admin, ve a Aplicaciones y haz clic en el enlace Administrar
aplicaciones privadas en la parte inferior de la página. Desde allí, haga clic en Generar
credenciales de API para crear su aplicación privada. Deberá proporcionar un título; por
lo general, proporcionamos el nombre del cliente y el entorno para mayor claridad.
Asegúrese de configurar los permisos de las plantillas de tema y los activos de tema
para tener acceso de lectura y escritura para generar las credenciales de API adecuadas,
luego haga clic en Guardar.
Shopify cargará una nueva página, que le proporcionará una clave de API y una
contraseña únicas.
Para conectar un tema existente, necesitamos el número de identificación del tema. Hay
algunas formas de obtener el número de identificación de su tema. La forma más rápida
es ir al Editor de temas, haciendo clic en Acciones > Editar código, y copiar el número
de identificación del tema de la URL; serán los últimos dígitos después de
mystore.myshopify.com/admin/themes/
Si desea crear un tema desde cero, puede hacerlo ejecutando lo siguiente en su línea
de comando, que crea un nuevo tema básico en el directorio en el que lo ejecuta:
Por ejemplo:
configurar el tema
--contraseña=01464d4e02a45f60a23193ffc3a8c1b3
--store=la-tienda-de-jabones.myshopify.com
--themeid=170199178
Resumen
Pasamos por varios pasos para configurar Theme Kit para desarrollarlo localmente.
Aquí hay un recordatorio de lo que cubrimos:
CAPÍTULO 3
Sin embargo, si eres nuevo en los temas de Shopify, es posible que no sepas
exactamente cuándo se procesa cada plantilla o que sepas que la misma
plantilla se usa en varios lugares de la tienda.
se muestra en función de la URL solicitada por el usuario. Si alguna vez ha utilizado uno de
los marcos de desarrollo populares, es posible que esté familiarizado con el concepto de
enrutamiento de URL. En pocas palabras: es una forma de determinar qué plantilla enviar
impulsar una tienda. Cada una de estas plantillas sirve para una o más URL; en otras palabras,
podemos utilizar las mismas plantillas para varias URL. Desde una perspectiva de diseño, esto
nos permite reducir nuestros gastos generales cuando construimos una nueva tienda.
URL a plantillas
Aquí hay una descripción general de qué plantilla se representa según lo determinado
por la URL:
/thisisntarealurl ÿ 404.líquido
/blogs/{nombre-del-blog}/{identificación-del-artículo} ÿ artículo.líquido
/blogs/{nombre-del-blog} ÿ blog.liquid
/cart ÿ cart.liquid
/colecciones ÿ lista-colecciones.liquid
/colecciones/{handle-de-coleccion} ÿ collection.liquid
/colecciones/{handle-de-coleccion}/{etiqueta} ÿ collection.liquid
/ ÿ index.líquido
/páginas/{identificador de página} ÿ página.líquido
/productos ÿ lista-colecciones.liquid
/productos/{producto-identificador} ÿ producto.líquido
/search?q={término de búsqueda} ÿ search.liquid
Contraseña protegida
Es posible que haya notado que la plantilla password.liquid no está incluida
en la lista. Esta plantilla solo se ve si elige proteger con contraseña su
escaparate y, como tal, anulará todos los demás
URL.
Plantillas alternativas
También vale la pena recordar que la tabla de enrutamiento anterior puede
verse afectado por plantillas alternativas, algo que cubriremos en un
capítulo posterior.
parámetros de URL
Como verá arriba, varias rutas tienen elementos de la ruta de la URL envueltos en
{ } que tendrán un impacto en. Hemos incluido
los datos estoen
cargados para
unadenotar una variable
plantilla.
nota final
Si alguna vez no está seguro de qué plantilla se está procesando, hay una forma
muy sencilla de comprobarlo.
Aquí hay un ejemplo útil que puede usar en su propio desarrollo de tema
con el resultado que se muestra en la captura de pantalla a continuación:
CAPÍTULO 4
El
producto.líquido
Modelo
Hasta ahora, en nuestro libro, hemos visto cómo se asignan las URL
en nuestras plantillas de Shopify. En este capítulo, nos gustaría analizar
más a fondo una plantilla en particular: product.liquid .
Como verá, hay muy poco HTML en esta plantilla. Esto es a propósito, ya
que pretende ser un punto de partida para su propio tema.
Si descarga un tema de Shopify Theme Store, notará que la plantilla product.liquid
estará más involucrada.
Por último, para permitir que los compradores envíen este formulario, crearemos
una entrada de botón con el atributo type=”submit” dentro de las etiquetas del
formulario. Usamos la etiqueta de flujo de control a menos que configure una
condición que deshabilita el botón Agregar al carrito si el producto no está disponible.
Si el producto tiene inventario y, por lo tanto, está disponible, el botón dirá "Agregar
al carrito", de lo contrario, dirá "Agotado".
Esta plantilla utiliza tanto el producto como los objetos variantes . Tienen una gran
variedad de propiedades que puedes mostrar en esta plantilla y vale la pena
investigarlas a medida que desarrollas tus habilidades con el tema de Shopify.
Extendiendo la plantilla
Por supuesto, este ejemplo es relativamente simple y pretende ser un
punto de partida para su propio desarrollo. Hay mucho más que podrías
incluir en esta plantilla:
CAPÍTULO 5
Cómo utilizar
Alterno
Plantillas
Si está utilizando el kit de temas o está cargando su tema mediante un archivo ZIP,
simplemente puede agregar un archivo a la carpeta de plantillas de su tema utilizando la
siguiente sintaxis de nombre de archivo:
default_template_name.*.liquid
página.sobre.líquido
producto.zapatos.liquido
El nombre en sí es irrelevante: cuanto más obvio, mejor para que sus clientes puedan
Una vez que exista una plantilla alternativa, aparecerá un nuevo menú desplegable
en la página de edición correspondiente en Shopify Admin. Esto le permitirá
seleccionar qué plantilla le gustaría aplicar a la colección, página o producto. Shopify
usará la plantilla base de forma predeterminada, por lo que no necesitará cambiar
todos los elementos existentes, solo los que desea que se representen con la nueva
plantilla alternativa.
Aquí hay un ejemplo para que lo revise (estos enlaces son solo para fines de
demostración):
http://store.myshopify.com/products/blue-t
camiseta?view=especial
Esta técnica funciona para todas las plantillas. Aquí hay un ejemplo de
página de colección:
http://tienda.myshopify.com/colecciones/
ordenadores?view=list
Un caso de uso muy común para esta técnica es cambiar entre una lista y una
vista de cuadrícula dentro de una colección de productos.
Sin embargo, si su nueva plantilla incluye una etiqueta de Liquid para una sección
que contiene el código que desea editar, deberá crear una nueva sección para
ese código alternativo.
CAPÍTULO 6
El poder
de suplente
Archivos de diseño
Depende totalmente del diseñador del tema decidir cuánto código se incluye en
un archivo de diseño. Por ejemplo, algunos desarrolladores a menudo prefieren
tener ciertos elementos de un archivo de diseño incluidos como fragmento o
sección, ya que esto les permite reutilizarlos en archivos de diseño alternativos, un
tema que trataremos en breve. Solo recuerda que todas las páginas representadas
en un tema de Shopify, a menos que se indique lo contrario, se basarán en el
archivo de diseño predeterminado theme.liquid .
Uno de los principales beneficios de los archivos de diseño es que nos permiten
seguir el principio DRY (Don't Repeat Yourself). Al tener todos nuestros
elementos comunes en un solo archivo, nos permite hacer cambios globales
muy fácilmente. Otro beneficio es que nuestras plantillas ( product.liquid ,
collection.liquid , etc.) no están abarrotadas de marcas que se repiten en toda
la tienda.
Diseños alternativos
Crear un diseño alternativo es muy sencillo. Lo primero que debe hacer es crear un
nuevo archivo y darle un nombre relevante y la extensión .liquid. Luego, guárdelo en
la carpeta de diseños en su directorio de temas.
En este archivo, coloque cualquier HTML que necesite (por ejemplo, declaraciones HTML, CSS,
enlaces JS, etc.) junto con los dos marcadores de posición discutidos anteriormente.
{% diseño 'alternativo' %}
etiqueta.
necesita volver a crear todo el contenido de su encabezado y pie de página HTML, lo que
Si solo está utilizando uno o dos diseños, quizás sea excesivo. Veremos más de cerca cómo
CAPÍTULO 7
Usar listas de
enlaces en tu Shopify
Temática
Una de las funciones menos utilizadas en Shopify son las listas de enlaces.
Como sugiere su nombre, una lista de enlaces es una simple colección de
enlaces. Los elementos de enlace se pueden crear para apuntar a una página,
colección o producto dentro de Shopify, o a una URL fuera del dominio de la tienda.
Es posible usar una lista de enlaces por una variedad de razones. En este
capítulo, examinaremos un caso de uso común de un tema: navegación anidada
usando una lista desordenada. Mediante el uso de listas de enlaces y Liquid,
tendremos control total sobre el menú desde el administrador, lo que brinda
flexibilidad al comerciante que administra la tienda.
profundidad desde una sola página, mediante el uso de una nueva interfaz de edición de menús.
Anteriormente, los menús se creaban utilizando varios menús y el identificador de cada menú
para vincularlo a su enlace de menú principal. En el momento de escribir este artículo, todas las
tiendas recién creadas tienen la nueva interfaz de usuario de menús anidados, donde puede
Creación de menús
Comenzaremos creando un nuevo menú, nuestro menú principal, dirigiéndonos a la pestaña
Todas las tiendas nuevas tienen un menú predeterminado predefinido llamado "Menú principal".
Para agregar elementos a la lista, simplemente haga clic en el botón Agregar otro enlace y
particular. Alternativamente, puede ingresar su propia URL (ya sea interna o externa) eligiendo
Una vez que tengamos esto en su lugar, podemos comenzar a considerar el código de Liquid que
Puede arrastrar y soltar elementos de menú anidados para crear una navegación de varios
"menú desplegable".
Comencemos con la salida de todos los elementos de la lista de enlaces del menú principal.
Podemos usar un bucle for simple que hemos usado muchas veces antes para generar
los elementos de la lista de enlaces a su vez:
<ul>
{% para enlace en linklists.main-menu.links %}
<li><a href= “{{ enlace.url }}”>{{ enlace.título }}</a></li>
{% endfor %}
</ul>
Esta sintaxis de Liquid no es nueva para nosotros, sin embargo, vale la pena examinar
la sección inicial de Liquid:
{% para enlace en linklists.main-menu.links %}
Una vez más, estamos usando el enlace variable para contener los datos relacionados
con cada elemento en la lista de enlaces, mientras recorremos todos los elementos. Para
acceder a los datos, necesitamos acceder a todos los enlaces en la lista de enlaces con un
manija del menú principal.
Recuerda, el menú principal predeterminado que existe en una tienda Shopify tiene
el mango del menú principal , por eso se usa arriba. Si nuestra sintaxis se
el menú tenía un identificador de marcas del Reino Unido , refactorizara como:
• URL
• título
Navegación multinivel
Ahora que tenemos la estructura básica de Liquid para un menú de un solo nivel,
debemos considerar cómo crear un submenú para nuestros elementos de nivel superior.
En primer lugar, debemos regresar a Shopify Admin y crear nuestro primer submenú.
Puede que no esté 100 por ciento claro inicialmente, pero cada enlace en una lista de
enlaces, además del menú en sí, tiene un identificador único al que tenemos acceso en
Liquid.
• Sobre nosotros
• Mujeres
Accesorios
§ Pendientes
§ Bufandas
Lo bueno de usar menús anidados en Shopify es que los elementos de menú anidados se
pueden obtener directamente desde su enlace principal usando Liquid.
Esto simplifica en gran medida el marcado necesario para representar un menú anidado,
lo que significa que no necesita conocer el identificador del padre para representar a sus
hijos.
Aquí hay un ejemplo de cómo podemos usar estos identificadores relacionados para generar
<ul class="padre">
{% para enlace en linklists.main-menu.links %}
<li><a href=“{{ enlace.url }}”>{{ enlace.título }}</a>
{% si enlace.enlaces ! = en blanco %}
<ul class=“niño”>
{% for child_link in link.links %} <li><a href=
“{{ child_link.url }}”>{{ child_link. título }}</a>
{% si enlace_hijo.enlaces ! = en blanco %}
<ul class=“nieto”>
{% para grandchild_link en child_link.links %}
<li><a href= “{{ grandchild_link.url }}”>{{ gran
child_link.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
{% si enlace.enlaces! = en blanco %}
Toques finales
Nos gustaría mencionar rápidamente una propiedad de enlace adicional
que será muy útil al crear menús: link.active y link.child_
activo . Ambas son propiedades booleanas (verdadero/falso) que le permiten
saber fácilmente si la página actual está activa, así como si sus elementos
anidados están activos. Aquí está la sintaxis:
{% if link.active %} class=”active {% if link.child_
activo %}hijo- activo{% endif %}”{% endif %}
la página actual también forma parte del elemento anidado activo. Aquí está el
ejemplo de código completo para completar:
<ul class="padre">
{% para enlace en linklists.main-menu.links %}
<li {% if link.active %}class=“active {% if link.child_ac tive %}child-active{%
endif %}”{% endif %}><a href=“{{ link.url }} ”>{{ enlace.título }}</a>
{% si enlace.enlaces ! = en blanco %}
<ul class=“niño”>
{% for child_link in link.links %} <li {% if
child_link.active %}class="active {% if
child_link.child_active %}child-active{% endif %}”
{% endif %}><a href= “{{ child_link.url }}”>
{{ child_link.título }}</a>
{% si enlace_hijo.enlaces ! = en blanco %}
<ul class=“nieto”>
{% para grandchild_link en child_link.links %}
<li {% if grandchild_link.active %} class="activo
{% if grandchild_link.child_active %}child-
activo{% endif %}”{% endif %}><a href= “{{ gran
child_link.url }}”>{{ grandchild_link.title }}
</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
Resumen
Las listas de enlaces son un elemento muy poderoso de la plataforma Shopify. Tener
la capacidad de crear una matriz de elementos de lista que se pueden cambiar en el
administrador le brinda mucha flexibilidad. Hemos visto a los desarrolladores de temas
usarlos mucho más allá de las estructuras de menú. Saber cómo crear una navegación
anidada que luego se puede diseñar con CSS es una gran herramienta para tener a
su disposición.
CAPÍTULO 8
Usar fragmentos
en tu Shopify
Temática
Para ayudarlo a comprender cómo Shopify los usa, aquí hay una breve descripción:
Por supuesto, todos tienen un estilo de flujo de trabajo diferente. Pero más allá de
los beneficios estéticos y organizativos de los fragmentos, existen otras razones
por las que podría considerar usarlos.
conjunto de productos en particular, cada uno de los cuales tiene una taza de café en el asa
del producto.
Dada su naturaleza única, los identificadores son fáciles de usar en las plantillas
de Shopify para comparar. Mediante el uso de una declaración simple de Liquid if,
podemos verificar el identificador de productos actual y tomar una decisión sobre si incluir
o no el fragmento.
%}
{% terminara si %}
Convenciones de nombres
Como se mencionó anteriormente, la carpeta de fragmentos actúa como un gran
depósito para todos los archivos de fragmentos de su tema. Como resultado, tendemos a
prefijar nuestros archivos con su función para que trabajar con ellos sea más limpio y fácil.
Por ejemplo:
• producto-edición-limitada-taza-de-café.líquido
• producto-escaparate.líquido
• colecciones-tazas-de-café.líquido
Notará que estos están muy en línea con las convenciones de nomenclatura de
plantillas, lo que hace que sea mucho más fácil integrarlos en su flujo de trabajo.
Alcance variable
Cuando un fragmento se procesa en un archivo de plantilla, el código que
contiene no tiene acceso automáticamente a las variables asignadas mediante
etiquetas de variable dentro de la plantilla principal del fragmento. Del mismo modo,
el código fuera del fragmento no puede acceder a las variables asignadas dentro del
fragmento.
usando con
Para completar nuestra mirada a los fragmentos, dediquemos un tiempo a ver un
ejemplo que usa el parámetro de etiqueta de procesamiento con . Este enfoque
realmente muestra el poder de los fragmentos y nos permite crear código reutilizable
que se puede usar en una variedad de contextos.
Para establecer la escena, digamos que tenemos un fragmento que nos permite
generar una colección de productos en una plantilla. Aquí hay un ejemplo muy
básico que podríamos guardar como collection-product-list.liquid :
<ul>
{% para producto en colecciones.todos.productos %}
<li><a href=“{{ producto.url }}”>{{ producto.título }}</a>
{% endfor %}
</ul>
<ul>
{% para el producto en la colección-lista-de-productos %}
<li><a href=“{{ producto.url }}”>{{ producto.título }}</a>
{% endfor %}
</ul>
<ul>
{% para el producto en el límite de la lista de productos de la
colección : limit_count %}
<li><a href=“{{ producto.url }}”>{{ producto.título }}</a> {% endfor %}
</ul>
Cuando se procesa el fragmento, saldrá después del segundo ciclo. Esto hace que
nuestro fragmento sea aún más genérico y nos permitirá usarlo en una variedad de
situaciones.
Tenga en cuenta que omitir esta variable significará que todos los elementos de la
colección Liquid se iteran. Además, si limit_count es mayor que el número de elementos
de la lista, saldrá del bucle for después del elemento final de la lista.
CAPÍTULO 9
Uso de
secciones y bloques en
Tema Shopify
Las secciones son elementos modulares y personalizables de una página, que pueden
tener funciones específicas. Las secciones son similares a los fragmentos, ya que son
• Las secciones admiten tres etiquetas de Liquid, que no se pueden usar fuera de los
etiquetas de esquema agregaríamos JSON, que definiría cómo el Editor de Temas “lee”
nuestro contenido. Las etiquetas CSS y JavaScript se pueden usar para agregar estilo o
funciones específicas a esta sección, pero de forma predeterminada, la sección extraerá sus
{% esquema %}
{
“nombre”: “Nombre de la sección”,
"ajustes": []
}
{% termina el esquema %}
{% hoja de estilo %}
{% hoja de estilo final %}
{% javascript %}
{% endjavascript %}
Para agregar contenido a una sección, querrá agregar etiquetas HTML y Liquid en la parte
puede ver los diferentes valores de entrada que se pueden agregar a la configuración
con un encabezado personalizable y un cuadro de texto enriquecido. Puede ver que las
{% esquema %}
{
“nombre”: “Cuadro de texto”,
"ajustes": [
{
“id”: “cuadro de texto”,
"teclee el texto",
“etiqueta”: “Título”,
“predeterminado”: “Título”
},
{
“id”: “texto”,
“tipo”: “texto enriquecido”,
“label”: “Agregar texto personalizado debajo”,
“predeterminado”: “<p>Agrega tu texto aquí</p>”
}
]
}
{% termina el esquema %}
{% hoja de estilo %}
{% hoja de estilo final %}
{% javascript %}
{% endjavascript %}
Para agregar esta sección a una plantilla específica (p. ej., producto.líquido o
página.líquido), agregaríamos {% sección 'nombre_de_
section' %} al archivo de plantilla Liquid requerido. Esto funciona de manera similar a cómo incluiría un
en la página de inicio. Esta funcionalidad de arrastrar y soltar significa que cuando crea secciones dinámicas
personalizadas, hay disponible una amplia gama de opciones para personalizar las páginas de inicio.
Para hacer una sección dinámica, necesitamos agregar ajustes preestablecidos dentro de la
etiquetas de esquema del archivo de sección. Los ajustes preestablecidos definirán cómo aparece la
sección en el Editor de temas, y los ajustes preestablecidos deben tener un nombre y una categoría.
Una vez que se agregan estos ajustes preestablecidos, las secciones estarán automáticamente
disponibles para agregarse a la página de índice. Los ajustes preestablecidos no se incluyen en el archivo
base cuando agrega una nueva sección, pero agregarlos manualmente es sencillo.
Por ejemplo, los ajustes preestablecidos para una sección de botón de llamada a la acción podrían verse como
este:
"Preajustes": [
{
“nombre”: “Llamada a la acción”,
“categoría”: “botón CTA”
}
]
Una vez que estos ajustes preestablecidos se agregan al final del archivo de esquema, el tema lo
se puede agregar a la página de índice. Esto quiere decir que cuando accedamos al Editor de la Tienda
Online y añadamos una sección a la página de inicio, aparecerá una opción de “Call to Action”. Esta
dentro de una sección. Se puede agregar una gama de diferentes tipos de bloques a las secciones, y las
posiciones de estos bloques se pueden cambiar, todo desde el Editor de temas. Un bloque puede ser una
imagen, un video, un texto personalizado o cualquiera de las opciones de tipo de configuración de entrada
Valor Solicitud
{% esquema %}
{
“bloques”: [
{
“tipo”: “cita”,
“nombre”: “Cita”,
"ajustes": [
{
“id”: “contenido”,
"teclee el texto",
"etiqueta": "Cita"
}
]
}
]
}
{% termina el esquema %}
de bloques en la sección. Hemos establecido esto en tres, pero puede ser cualquier
número. Según el tipo de salida, es posible que desee limitar o "limitar" la cantidad posible
Podemos definir cuántos bloques aparecen por defecto, añadiendo bloques dentro de los
presets. Esto significa que aparecerán dos botones de llamada a la acción y, dado que
configuramos el máximo en tres, se puede agregar un bloque adicional.
diferentes opciones para incluir tipos de salida. Por ejemplo, si quisiéramos que una sección
{% cuando 'texto' %}
<div class=“grid__item {{ column_width }}”>
<h3 clase=“h4”>{{ bloque.configuración.título }}</h3>
<div class=“rte”>{{ bloque.configuración.texto enriquecido }} </div>
</div>
{% cuando 'boletín' %}
<div class=“grid__item {{ column_width }}”> <h3
class=“h4”>{{ 'layout.footer.newsletter_title'
| t }}</h3>
<p>{{ 'layout.footer.newsletter_caption' | } } </p>
{% render 'formulario-boletín' %}
</div>
{% endcase %}
{% endfor %}
Ahora que has visto lo fácil que es añadir secciones a tus temas, puedes añadir
un sinfín de opciones a las tiendas de tus clientes.
Sin embargo, vale la pena tener en cuenta los posibles riesgos de repetir
bloques, especialmente para elementos como imágenes y videos. Repetirlos
en exceso podría resultar en tiempos de carga de página lentos y una mala
experiencia de usuario para los clientes, lo que podría tener un efecto negativo
en las conversiones.
CAPÍTULO 10
Cómo usar
all_products en un
Tema Shopify
{{ todos_productos[“taza de café”].título }}
Asas de líquido
Si no estás familiarizado con los identificadores, el Centro de ayuda de Shopify ofrece
una excelente explicación:
Los identificadores se utilizan para acceder a los atributos de los objetos de Liquid. De forma
caracteres especiales reemplazados por guiones (-). La mayoría de los objetos en Shopify
• todos_productos[“taza de café”].comparar_a_precio_
máximo
• todos_productos[“taza de café”].comparar_a_precio_
min
• todos_productos[“taza de café”].comparar_a_precio_
varía
• todos_productos[“taza de café”].contenido
• todos_productos[“taza de café”].primeros_disponibles_
variante
• all_products[“taza de café”].asa
• all_products[“taza de café”].image
• todos_productos[“taza de café”].precio_varía
• all_products[“taza de café”].selected_variant
• todos_productos[“taza de café”].seleccionado_o_primero_
variante_disponible
• todos_productos[“taza de café”].proveedor
Tenga en cuenta que algunos de los valores devueltos serán una colección de
Liquid y, debido a esto, será necesario "reciclarlos". Usemos la colección de
imágenes como ejemplo:
{% para imagen en todos_productos[“taza de café”].images %} <img
src=”{{ image.src | img_url: 'grande' }}” > {% endfor %}
Más de un mango
Puede ir un paso más allá y crear una matriz Liquid simple de
identificadores que puede usar para generar productos específicos.
Aquí hay un ejemplo:
CAPÍTULO 11
Manipular imágenes
con img_url
Filtrar
• producto
• variante
• Elemento en linea
• recopilación
• artículo
• imagen
recortes la imagen.
También puede encadenar el filtro img_url con el filtro img_tag para generar el
elemento <img> completo:
{{ producto.imagen_presentada | img_url: '100x100' |
img_etiqueta }}
Parámetros adicionales
Antes de continuar, vale la pena señalar que las siguientes técnicas se pueden
usar con una variedad de filtros además de img_url . Ellos son:
• url_img_producto
• colección_img_url
• artículo_img_url
1. Tamaño
Comencemos por ver cómo podemos cambiar el tamaño de una imagen. Para hacer
esto, reemplazamos el "nombre" de la imagen con un tamaño específico en píxeles.
Solo ancho:
{{ product.featured_image | img_url: '450x' }}
Solo altura:
{{ producto.imagen_presentada | img_url: 'x450' }}
Volviendo a nuestro ejemplo original, podría pensar que daría como resultado
una versión de 450x450 de su imagen.
Esto, sin embargo, no es siempre el caso.
2. Recortar
• cima
• centro
• abajo
• izquierda
• derecho
3. Escala
•2
•3
4. Formato
• jpg
• pjpg
Esto daría como resultado que la imagen se renderice como un JPG progresivo: se
cargan como una imagen de tamaño completo con una calidad que aumenta
gradualmente, en lugar de una carga de arriba a abajo. Es una gran opción para
tener dependiendo de sus necesidades.
• PNG a JPG
• PNG a PJPG
• JPG a PJPG
No es práctico convertir un formato de imagen con pérdida como JPG a uno sin
pérdida como PNG, por lo que esas conversiones no son posibles.
almacenamiento en caché
Finalmente, vale la pena señalar que una vez que se haya creado la imagen
solicitada, se almacenará en caché y estará disponible en Shopify CDN (red de
entrega de contenido). En consecuencia, no hay necesidad de preocuparse por la
creación de la imagen cada vez que se procesa la plantilla.
Conclusión
Gracias a estos nuevos parámetros, ahora es posible implementar técnicas de
imagen receptiva en sus plantillas. Ya sea que desee comenzar a usar los atributos
srcset y tamaños, o el elemento <imagen>, puede comenzar a ofrecer la imagen más
adecuada para el tamaño de pantalla, la resolución y el ancho de banda.
CAPÍTULO 12
Formas de
personalizar el elemento
Este enfoque utiliza dos filtros Liquid para crear un elemento HTML <img>
completamente formado. El primero, asset_url , antepone la ruta completa
a la carpeta de activos para el tema de la tienda actual, mientras que el segundo,
completo conusa esta URL
el atributo alt.ySicrea un elemento
se omite, HTML
el atributo alt <img>
estará img_tag ,
en blanco.
<img src=”//cdn.shopify.com/s/files/1/0222/9076/t/10/
activos/logotipo.png?796” alt=”Logotipo”>
Mas control
Por supuesto, habrá ocasiones en las que necesite un poco más de control sobre el
Aquí hay un enfoque que le permitiría agregar sus propios atributos, como una
identificación:
CAPÍTULO 13
Creando útil
Ganchos CSS
en líquido
Muchos de nosotros usamos la clase <body> para CSS, así como enlaces de
JavaScript y, al igual que en WordPress, es bastante fácil agregar varias clases
útiles a nuestro elemento <body> en Shopify.
Aquí hay algunas ideas que puede encontrar útiles para colocar en su
archivo de diseño principal (o alternativo).
Sobre la base de esto, es posible que deseemos agregar el identificador del producto actual
a nuestra clase de cuerpo. Para mantener las cosas limpias y ordenadas, podemos usar
una declaración if para agregar condicionalmente el identificador del producto solo cuando
para URL y, por lo tanto, fácil de consultar en nuestros archivos CSS y JS. Por
ejemplo, convertirá un título de página de "Blue Jeans" en "blue-jeans".
Resumen
Esperamos que haya visto cuán flexible es Liquid en los ejemplos anteriores.
Poder agregar una variedad de clases al elemento <body> nos brinda ganchos útiles
que podemos usar en CSS y JavaScript.
CAPÍTULO 14
Usando el caso de
Liquid/cuando
Etiquetas de control
Estamos seguros de que muchos de ustedes están más que familiarizados con las etiquetas de control de Liquid
varias condiciones
Un ejemplo que hemos visto en el pasado está relacionado con los banners en
un tema. A pesar de nuestro amor por las plantillas alternativas, hay ocasiones en
las que crear una variedad de plantillas simplemente para mostrar diferentes
pancartas promocionales llevaría mucho tiempo. No solo tendría que crear las
plantillas, sino que también tendría que asignarlas a cada producto por turno. Un
enfoque más práctico es dejar que Shopify haga el trabajo pesado por ti.
{% when 'taza-platillo' %} {%
render 'promo-taza-platillo' %}
{% else %}
{% render 'promo-default' %} {% endcase
%}
El Shopify
Programa de socios
Construyendo un negocio rentable con Shopify
En Shopify, no solo brindamos un producto que a los comerciantes les encanta, sino que
Shopify es una plataforma de comercio que permite a los empresarios diseñar, configurar y administrar
y más. Shopify actualmente impulsa a más de 1 millón de empresas en 175 países y cuenta con
la confianza de marcas como Unilever, Kylie Cosmetics, Allbirds, MVMT y muchas más.
Y con un back office para todos sus canales de venta, gestionando sus
el negocio es más fácil que nunca.
• Recursos educativos
• Y más