Problema con else modificando plantilla correo

Topic summary

Un usuario está personalizando la plantilla de correo de confirmación de pedido en Shopify usando Liquid para mostrar contenido diferente según el tipo de producto (servicios específicos vs. productos normales).

Problema inicial:

  • Al usar condicionales if/else dentro de un bucle for, el contenido del else (email_body) aparecía duplicado cuando se compraban productos que no eran “Servicio1” o “Servicio 2”.
  • El else se ejecutaba por cada iteración del bucle, causando repeticiones no deseadas.

Solución implementada:

  • Utilizó una variable booleana found_product (inicializada en false) para controlar el flujo.
  • Dentro del bucle, cuando detecta los servicios específicos, asigna true a la variable y usa break para salir del bucle.
  • Fuera del bucle, usa unless found_product para mostrar el contenido estándar solo si no se encontraron los servicios especiales.
  • Esto evita la duplicación y muestra el contenido apropiado una sola vez.

El usuario resolvió el problema exitosamente sin necesidad de contratar desarrolladores externos.

Summarized with AI on November 16. AI used: claude-sonnet-4-5-20250929.

Buenos días

Estoy modificando la plantilla de email de confirmación de pedido según sea un servicio que va con instrucciones o dejar el clásico que es la plantilla normal.

No he programado nunca, conocia algo de Html y he mirado un poco el manual de liquid. He logrado hacer lo que quería pero cuando compro artículos que no son Servicio1 o Servicio 2 el “Else” aparece 2 veces.

Código:

{{ email_title }}

{% for line in subtotal_line_items %}{% if line.product.title == 'Servicio1' OR line.product.title == 'Servicio 2' %}

Instrucciones

{% else %}

{{ email_body }}

{% endif %} {% endfor %}

El resultado de la variable email_body queda así en el correo:

¡Gracias por tu compra!
Estamos preparando tu pedido para enviarlo. Te notificaremos cuando haya sido enviado.

Estamos preparando tu pedido para enviarlo. Te notificaremos cuando haya sido enviado.

Se que quizás con algún contador se podria solucionar pero mis capacidades no llegan a tanto. Necesitaría una ayuda. También cabe la posibilidad de hacer un mix por si compran Servicio1 declarado en el IF y otro servicio para que aparezcan los 2 pero me conformo con solucionar que no se repita.

Gracias de antemano.

Hola @Jan3Doe ,

Gracias por acudir a los foros de la Comunidad con tus dudas. Entiendo que realizaste unos cambios para [modificar la plantilla del email de confirmación de pedido](https://Editar plantillas de notificación), pero necesitas soporte porque te salen unas líneas repetidas, ¿verdad?

A modo de contexto, debes saber que en el equipo de soporte de Shopify a través de redes sociales y la Comunidad no somos especialistas en codificar, por lo que nuestro alcance de soporte es más limitado en estos temas. Dicho esto, voy a proporcionarte algunas opciones que pueden serte útiles para resolver preguntas relacionadas con la API de Shopify, así como con el lenguaje de código Liquid, GraphQL o Scripts:

Por el momento, ¿ya has terminado de configurar las demás áreas de tu tienda? ¿Qué tipo de productos vendes?

Finalmente lo resolví el código de liquid.

{% assign found_product = false %}

{% for line in subtotal_line_items %}
{% if line.product.title == ‘service1’ or line.product.title == ‘service2’ %}
{% assign found_product = true %}

{{ email_instructions }}

{% break %} {% endif %} {% endfor %}

{% unless found_product %}

{{ email_body }}

{% endunless %}