# Motor de template de emails

## Twig Parser

WoowUp internamente utiliza una versión del motor de templates [Twig](https://twig.symfony.com) ejecutándose en un Sandbox para que el entorno sea completamente seguro de ejecutarse.

A continuación se detallan los tags, filtros y funciones disponibles para utilizar:

## Tags

| Tag | Descripción |
| --- | ----------- |
| if  |             |
| for |             |
| set |             |

## Filtros

Las variables pueden modificarse con **filtros**. Los filtros se separa de las variables por un símbolo pipe "|" y puede tener argumentos opcionales en paréntesis. Los filtros pueden ser encadenados de forma múltiple donde la salida del primer filtro es aplicado al siguiente filtro.

| Filtro         | Descripción                                                                            |
| -------------- | -------------------------------------------------------------------------------------- |
| upper          | Convierte a mayúscula un texto                                                         |
| lower          | Convierte a minúscula un texto                                                         |
| escape         | Escapea un texto en un formato dado                                                    |
| raw            | Imprime el texto sin escapear en entidades HTML                                        |
| slice          | Corta un texto a partir de un inicio y una longitud                                    |
| capitalize     | Convierte a mayúscula la primer letra del texto                                        |
| title          | Convierte a mayúscula la primer letra de cada palabra del texto                        |
| trim           | Elimina ciertos caracteres al inicio, al final o en ambas posiciones de un texto       |
| url\_encode    | Codifica como URL una cadena de texto                                                  |
| default        | Retorna un valor default y el valor de la variable es vacío o nulo                     |
| replace        | Busca un texto y lo reemplaza por otro                                                 |
| number\_format | Formatea un número con separadores de miles y decimales                                |
| truncate       | Corta un texto a una cierta longitud, si lo corta le agrega por default "..." al final |
| first\_word    | Retorna la primera palabra de una String                                               |

## Funciones

Las funciones pueden llamarse para generar contenido. Las funciones son invocadas por su nombre seguido por paréntesis () y pueden contener argumentos de forma opcional.

| Función                             | Descripción                                                    |
| ----------------------------------- | -------------------------------------------------------------- |
| now                                 | Retorna la fecha actual con formato dd/mm/yyyy                 |
| date\_format                        | Formatea una fecha en un cierto formato                        |
| hex                                 | Convierte a hexadecimal un texto                               |
| number\_format                      | Formatea un número con separadores de miles y decimales        |
| product\_by\_sku                    | Busca un producto por SKU                                      |
| purchase\_by\_invoice\_number       | Busca una venta por número de factura                          |
| new\_products\_by\_category         | Busca los productos nuevos por categorías                      |
| best\_sellers\_by\_category         | Busca los productos mas vendidos por categoría                 |
| recommended\_products               | Busca los productos recomendados para un cliente               |
| recommended\_products\_by\_category | Busca los productos recomendados para un cliente por categoría |
| range                               | Genera un listado de números a partir de un intervalo          |
| chunks                              | Divide un array en pedazos                                     |
| json\_encode                        | Encoder en formato JSON un array                               |
| json\_decode                        | Decoder un JSON en un array                                    |
| base64\_encode                      | Encoder en base 64 un texto                                    |
| base64\_decode                      | Decoder texto en base 64                                       |

## Operadores

Los mismos operadores que posee Twig por defecto


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://woowup-docs.gitbook.io/woowup-developer-docs/editor-de-campanas/motor-de-template-de-emails.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
