> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wisepim.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Content Logic

> Crea variables reutilizables, fórmulas y bloques condicionales que generan automáticamente el texto de tus productos. Escribe una regla una vez y aplícala en todo tu catálogo.

Con Content Logic defines variables reutilizables, fórmulas y bloques condicionales. Generan y formatean el contenido de tus productos de forma automática. Escribe una regla una vez y aplícala en todo tu catálogo, en lugar de repetir los mismos patrones a mano.

<Info>
  Content Logic está en **Beta**. Selecciona un proyecto y ábrelo desde **Configuración > Content Logic**.
</Info>

## ¿Por qué usar Content Logic?

<img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/m6j0mqBse5HmOBFi/images/marketing-screenshots/settings/settings-content-logic-light-branded.webp?fit=max&auto=format&n=m6j0mqBse5HmOBFi&q=85&s=064868c701fe22d731d24318aaf343c6" alt="WISEPIM content logic builder with reusable variables, formulas and channel rules" width="2400" height="1445" data-path="images/marketing-screenshots/settings/settings-content-logic-light-branded.webp" />

<img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/Q3dIqlj_CJMF6Idi/images/marketing-screenshots/settings/settings-content-logic-dark-branded.webp?fit=max&auto=format&n=Q3dIqlj_CJMF6Idi&q=85&s=f6bc622be0e1f4ed886c3e07aa6b42ae" alt="WISEPIM content logic builder with reusable variables, formulas and channel rules" width="2400" height="1445" data-path="images/marketing-screenshots/settings/settings-content-logic-dark-branded.webp" />

<CardGroup cols={2}>
  <Card title="Consistencia a escala" icon="copy">
    Define un patrón de contenido una vez. Aplícalo a cientos o miles de productos de forma automática.
  </Card>

  <Card title="Contenido dinámico" icon="zap">
    Usa fórmulas y condiciones para que el contenido se adapte a los atributos, la marca o la categoría de cada producto.
  </Card>

  <Card title="Optimización por canal" icon="monitor">
    Adapta el contenido a cada canal: recorta para marketplaces, formatea para tu webshop, elimina HTML para feeds.
  </Card>

  <Card title="Menos trabajo manual" icon="clock">
    Deja de copiar y pegar. Deja que las variables y las condiciones generen el contenido por ti.
  </Card>
</CardGroup>

<Info>
  Content Logic requiere que tu proyecto tenga configurados **[familias de productos](/es/products/product-families)**, **[categorías](/es/other-features/managing-categories)** y **[atributos de producto](/es/other-features/managing-attributes)**. Las variables de marca se asignan a tus familias de productos. Las variables de categoría se asignan a tus categorías.
</Info>

## Cómo funcionan las variables

Cada variable usa la sintaxis `{{scope.key}}`. Escribe `{{` en cualquier campo con soporte de fórmulas para abrir el menú de autocompletado y ver lo que hay disponible.

```
{{product.name}}            → el nombre del producto
{{global.company_name}}     → el nombre de tu empresa
{{brand.tagline}}           → el eslogan de la marca
{{category.material}}       → el material de la categoría
{{current.year}}            → el año actual
{{channel.description_short}} → la descripción transformada
```

WISEPIM resuelve las variables de forma automática cuando procesa contenido: al exportar, en prompts de AI, en acciones masivas y en cualquier otro lugar donde genera contenido.

### Los siete ámbitos

Content Logic agrupa las variables en siete pestañas. Cada pestaña muestra un contador cuando contiene variables, así ves de un vistazo qué ámbitos usas.

| Pestaña             | Sintaxis                         | Para qué sirve                                                      |
| ------------------- | -------------------------------- | ------------------------------------------------------------------- |
| **Predeterminadas** | `{{product.*}}`, `{{current.*}}` | Variables integradas que se resuelven desde los datos del producto  |
| **Global**          | `{{global.*}}`                   | Valores compartidos que se mantienen iguales en todos los productos |
| **Marcas**          | `{{brand.*}}`                    | Valores que cambian según la marca o familia de productos           |
| **Categorías**      | `{{category.*}}`                 | Valores que cambian según la categoría                              |
| **Productos**       | `{{product.*}}` (personalizadas) | Valores calculados con fórmulas sobre campos de producto            |
| **Canales**         | `{{channel.*}}`                  | Contenido adaptado a un canal de venta concreto                     |
| **Condicional**     | `{{if key}}`                     | Contenido que cambia según los datos del producto                   |

## Variables predeterminadas

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/default-variables)</sub>

La pestaña Predeterminadas es una lista de solo lectura de cada variable integrada. Se resuelven de forma automática, así que nunca las creas. Tus atributos de producto personalizados aparecen aquí también, referenciados como `{{attribute.your_attribute_code}}`.

<Tip>
  Explora la pestaña Predeterminadas antes de crear variables personalizadas. Puede que ya tengas lo que necesitas.
</Tip>

<AccordionGroup>
  <Accordion title="Fecha y hora">
    | Variable                   | Valor de ejemplo |
    | -------------------------- | ---------------- |
    | `{{current.year}}`         | 2026             |
    | `{{current.month}}`        | February         |
    | `{{current.month_number}}` | 02               |
    | `{{current.week}}`         | 8                |
    | `{{current.day}}`          | 17               |
    | `{{current.day_name}}`     | Tuesday          |
    | `{{current.quarter}}`      | Q1               |
    | `{{current.season}}`       | Winter           |
    | `{{current.date}}`         | 2026-02-17       |
  </Accordion>

  <Accordion title="Identidad del producto">
    | Variable                   | Descripción                                    |
    | -------------------------- | ---------------------------------------------- |
    | `{{product.sku}}`          | Stock Keeping Unit                             |
    | `{{product.ean}}`          | European Article Number (código de barras)     |
    | `{{product.upc}}`          | Universal Product Code (12 dígitos)            |
    | `{{product.mpn}}`          | Manufacturer Part Number                       |
    | `{{product.brand}}`        | Nombre de la marca                             |
    | `{{product.supplier}}`     | Nombre del proveedor                           |
    | `{{product.family}}`       | Familia de productos                           |
    | `{{product.category}}`     | Categoría principal                            |
    | `{{product.product_type}}` | Simple, Configurable, Virtual, Bundle, Grouped |
  </Accordion>

  <Accordion title="Contenido del producto">
    | Variable                        | Descripción                |
    | ------------------------------- | -------------------------- |
    | `{{product.name}}`              | Nombre del producto        |
    | `{{product.description}}`       | Descripción completa       |
    | `{{product.short_description}}` | Descripción corta          |
    | `{{product.meta_title}}`        | Título SEO                 |
    | `{{product.meta_description}}`  | Descripción SEO            |
    | `{{product.meta_keywords}}`     | Palabras clave SEO         |
    | `{{product.main_image}}`        | URL de la imagen principal |
  </Accordion>

  <Accordion title="Precios">
    | Variable                      | Descripción                       |
    | ----------------------------- | --------------------------------- |
    | `{{product.price}}`           | Precio de venta actual            |
    | `{{product.special_price}}`   | Precio promocional                |
    | `{{product.cost}}`            | Precio de compra o coste          |
    | `{{product.savings}}`         | Precio menos precio especial      |
    | `{{product.savings_percent}}` | Porcentaje de descuento           |
    | `{{product.margin}}`          | Precio menos coste                |
    | `{{product.margin_percent}}`  | Margen como porcentaje del precio |
  </Accordion>

  <Accordion title="Propiedades físicas">
    | Variable                                                        | Descripción          |
    | --------------------------------------------------------------- | -------------------- |
    | `{{product.weight}}`                                            | Valor del peso       |
    | `{{product.weight_unit}}`                                       | g, kg, oz o lb       |
    | `{{product.length}}`, `{{product.width}}`, `{{product.height}}` | Valores de dimensión |
    | `{{product.dimension_unit}}`                                    | mm, cm, m, in o ft   |
  </Accordion>

  <Accordion title="Inventario">
    | Variable                          | Descripción                               |
    | --------------------------------- | ----------------------------------------- |
    | `{{product.stock_quantity}}`      | Nivel de stock actual                     |
    | `{{product.stock_status}}`        | in\_stock, out\_of\_stock o on\_backorder |
    | `{{product.low_stock_threshold}}` | Umbral de alerta de stock bajo            |
  </Accordion>

  <Accordion title="Envío y aduanas">
    | Variable                        | Descripción                   |
    | ------------------------------- | ----------------------------- |
    | `{{product.hs_code}}`           | Código del Sistema Armonizado |
    | `{{product.country_of_origin}}` | Código ISO de país            |
  </Accordion>

  <Accordion title="Estado y puntuaciones">
    | Variable                       | Descripción                          |
    | ------------------------------ | ------------------------------------ |
    | `{{product.status}}`           | active, inactive, pending o archived |
    | `{{product.completion_score}}` | Porcentaje de completitud de datos   |
    | `{{product.quality_score}}`    | Puntuación de calidad general        |
  </Accordion>

  <Accordion title="Información de la tienda">
    | Variable                   | Descripción                   |
    | -------------------------- | ----------------------------- |
    | `{{global.name}}`          | Nombre de la tienda o empresa |
    | `{{global.url}}`           | URL del sitio web             |
    | `{{global.currency}}`      | Símbolo de moneda             |
    | `{{global.currency_code}}` | Código ISO de moneda          |
    | `{{global.locale}}`        | Configuración regional        |
  </Accordion>
</AccordionGroup>

## Variables globales

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/global-variables)</sub>

Las variables globales son pares clave-valor que se mantienen iguales en todos los productos. Úsalas para valores de toda la empresa que referencias a menudo.

<Steps>
  <Step title="Abre la pestaña Global">
    Ve a **Configuración > Content Logic** y haz clic en **Global**.
  </Step>

  <Step title="Añade una variable">
    Haz clic en **Añadir Variable**. Introduce una clave (solo letras, números y guiones bajos) y un valor. El campo de valor admite autocompletado. Escribe `{{` para referenciar otras variables.
  </Step>

  <Step title="Úsala en el contenido">
    Referénciala como `{{global.your_key}}` en cualquier lugar donde se admitan variables.
  </Step>
</Steps>

### Variables globales comunes

| Clave                | Valor de ejemplo                                   | Caso de uso                              |
| -------------------- | -------------------------------------------------- | ---------------------------------------- |
| `company_name`       | ACME Industrial BV                                 | Descripciones de producto, texto legal   |
| `website_url`        | shop.example.com                                   | CTAs y enlaces                           |
| `support_email`      | [support@example.com](mailto:support@example.com)  | Información de contacto                  |
| `return_policy`      | Política de devolución de 30 días, sin preguntas.  | Páginas de producto, descripciones       |
| `shipping_promise`   | Envío gratis en pedidos superiores a 50 €.         | Contenido promocional                    |
| `warranty_text`      | 2 años de garantía del fabricante incluidos.       | Especificaciones de producto             |
| `lead_time_text`     | Se envía en 3–5 días laborables.                   | Información de pedidos B2B               |
| `moq_default`        | 1                                                  | Cantidad mínima de pedido predeterminada |
| `compliance_general` | Todos los productos cumplen la normativa de la UE. | Pies de página legales y de cumplimiento |

<Tip>
  Una variable global puede referenciar otras en su valor. Por ejemplo, `return_policy` puede incluir `{{global.company_name}}` para insertar el nombre de la empresa de forma automática.
</Tip>

## Variables de marca

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/brand-variables)</sub>

Las variables de marca te permiten definir un conjunto de campos y rellenar valores distintos por marca. Se asignan a tus **familias de productos**: cada familia de productos es una marca. Es ideal cuando las marcas necesitan mensajes, declaraciones de cumplimiento o especificaciones diferentes.

<Steps>
  <Step title="Define los campos">
    En la pestaña **Marcas**, crea los campos que quieras por marca. Cada campo tiene una **clave**, una **etiqueta** y un **tipo** (texto, texto largo o URL).
  </Step>

  <Step title="Rellena valores por marca">
    Selecciona una marca en el desplegable y rellena los campos. Un indicador de progreso muestra cuántos están completos, por ejemplo "3/5 rellenados".
  </Step>

  <Step title="Referencia en el contenido">
    Usa `{{brand.your_key}}` en el contenido del producto. WISEPIM lo resuelve según la marca de cada producto.
  </Step>
</Steps>

### Tipos de campo

| Tipo            | Entrada                  | Caso de uso                                               |
| --------------- | ------------------------ | --------------------------------------------------------- |
| **Texto**       | Una sola línea           | Eslóganes, valores cortos                                 |
| **Texto largo** | Área de texto multilínea | Historias de origen, texto de cumplimiento, descripciones |
| **URL**         | Campo URL con validación | Sitios web de marca, URLs de logotipo                     |

### Campos de ejemplo

| Clave             | Etiqueta           | Tipo        | Valor Marca A                                | Valor Marca B                              |
| ----------------- | ------------------ | ----------- | -------------------------------------------- | ------------------------------------------ |
| `tagline`         | Eslogan            | Texto       | Innovation for Life                          | Built to Last                              |
| `origin_story`    | Historia de origen | Texto largo | Fundada en 1985 en Múnich...                 | Empresa familiar desde 1962...             |
| `compliance_text` | Cumplimiento       | Texto largo | Certificado ISO 9001:2015. Conforme a REACH. | Marcado CE. Conforme a RoHS. Listado UL.   |
| `website`         | Sitio web          | URL         | [https://brand-a.com](https://brand-a.com)   | [https://brand-b.com](https://brand-b.com) |
| `moq`             | Cant. mín. pedido  | Texto       | 50                                           | 100                                        |

Un producto de la Marca A obtiene "Innovation for Life" para `{{brand.tagline}}`. Un producto de la Marca B obtiene "Built to Last".

## Variables de categoría

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/category-variables)</sub>

Las variables de categoría funcionan como las de marca, pero están vinculadas a las categorías de producto. Define un conjunto de campos y luego rellena valores por categoría.

### Campos de ejemplo

| Clave               | Etiqueta       | Categoría: Tornillería                                       | Categoría: Eléctrico                             |
| ------------------- | -------------- | ------------------------------------------------------------ | ------------------------------------------------ |
| `material`          | Material       | Acero inoxidable AISI 304                                    | Cobre / PVC                                      |
| `care_instructions` | Cuidado        | Almacenar en condiciones secas                               | Mantener alejado de la humedad                   |
| `short_intro`       | Intro corta    | Tornillería de alta calidad para aplicaciones estructurales. | Componentes eléctricos para cableado industrial. |
| `size_guide_url`    | Guía de tallas | /guides/fastener-sizes                                       | /guides/wire-gauges                              |

Referéncialas como `{{category.material}}`, `{{category.care_instructions}}`, etcétera. Cada producto obtiene los valores de su categoría principal.

## Variables de producto (calculadas)

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/product-variables)</sub>

Las variables de producto usan fórmulas para calcular nuevos valores a partir de los datos existentes del producto. Se recalculan por producto.

<Steps>
  <Step title="Abre la pestaña Productos">
    Ve a **Configuración > Content Logic** y haz clic en **Productos**.
  </Step>

  <Step title="Añade una variable">
    Haz clic en **Añadir Variable**. Introduce una etiqueta, una clave y una fórmula. Usa **Insertar Campo** e **Insertar Operador** para construirla, o escribe `{{` para autocompletar.
  </Step>

  <Step title="Comprueba la vista previa">
    La vista previa en vivo resuelve tu fórmula con datos de ejemplo, así verificas el resultado antes de guardar.
  </Step>
</Steps>

### Operadores de fórmula

<AccordionGroup>
  <Accordion title="Aritmética">
    | Operador | Descripción | Ejemplo                                                            |
    | -------- | ----------- | ------------------------------------------------------------------ |
    | `+`      | Sumar       | `{{product.price}} + 10`                                           |
    | `-`      | Restar      | `{{product.price}} - {{product.cost}}`                             |
    | `*`      | Multiplicar | `{{product.price}} * 1.21`                                         |
    | `/`      | Dividir     | `{{product.price}} / {{product.stock_quantity}}`                   |
    | `%`      | Módulo      | `{{product.stock_quantity}} % 12`                                  |
    | `( )`    | Agrupación  | `({{product.price}} - {{product.cost}}) / {{product.price}} * 100` |
  </Accordion>

  <Accordion title="Funciones matemáticas">
    | Función   | Descripción                     | Ejemplo                                              |
    | --------- | ------------------------------- | ---------------------------------------------------- |
    | `round()` | Redondear al entero más cercano | `round({{product.price}} * 1.21)`                    |
    | `floor()` | Redondear hacia abajo           | `floor({{product.margin_percent}})`                  |
    | `ceil()`  | Redondear hacia arriba          | `ceil({{product.weight}} / 0.5) * 0.5`               |
    | `min(,)`  | El menor de dos valores         | `min({{product.price}}, 99.99)`                      |
    | `max(,)`  | El mayor de dos valores         | `max({{product.cost}} * 1.5, 9.99)`                  |
    | `abs()`   | Valor absoluto                  | `abs({{product.price}} - {{product.special_price}})` |
  </Accordion>

  <Accordion title="Funciones de texto">
    | Función       | Descripción            | Ejemplo                                              |
    | ------------- | ---------------------- | ---------------------------------------------------- |
    | `concat(,)`   | Unir dos valores       | `concat({{product.brand}}, " - ", {{product.name}})` |
    | `uppercase()` | Convertir a MAYÚSCULAS | `uppercase({{product.sku}})`                         |
    | `lowercase()` | Convertir a minúsculas | `lowercase({{product.brand}})`                       |
  </Accordion>
</AccordionGroup>

### Usar un operador como texto

Para mostrar un carácter de operador como texto literal, ponle una barra invertida delante:

```
S\/M\/L     → se muestra como "S/M/L" (sin división)
10\% off    → se muestra como "10% off" (sin módulo)
```

### Fórmulas de ejemplo

**Precio con IVA:**

* Clave: `price_incl_vat`
* Fórmula: `round({{product.price}} * 1.21 * 100) / 100`
* Resultado: 120.99 → `€146.40`

**Porcentaje de margen (formateado):**

* Clave: `margin_display`
* Fórmula: `round(({{product.price}} - {{product.cost}}) / {{product.price}} * 100)`
* Resultado: `42%`

**Nombre de visualización con SKU:**

* Clave: `display_name`
* Fórmula: `{{product.name}} ({{product.sku}})`
* Resultado: `Stainless Steel Hex Bolt M10x50 (SS-HB-M1050)`

**Precio por kilogramo:**

* Clave: `price_per_kg`
* Fórmula: `round({{product.price}} / {{product.weight}} * 100) / 100`
* Resultado: `€15.29/kg`

<Warning>
  Comprueba que los campos que referencias tengan valores. Un campo vacío se resuelve como una cadena vacía, y los cálculos sobre valores vacíos no se ejecutan.
</Warning>

## Variables de canal

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/channel-variables)</sub>

Las variables de canal adaptan el contenido existente del producto a un canal de venta concreto. Cada una toma un campo de origen y aplica una o más reglas en orden.

<Steps>
  <Step title="Abre la pestaña Canales">
    Ve a **Configuración > Content Logic** y haz clic en **Canales**.
  </Step>

  <Step title="Añade una variable">
    Haz clic en **Añadir Variable**. Introduce una etiqueta y una clave, y luego elige el **campo de origen** que se transformará.
  </Step>

  <Step title="Añade reglas de transformación">
    Añade una o más reglas. Se ejecutan en orden: la salida de una se convierte en la entrada de la siguiente.
  </Step>
</Steps>

### Campos de origen

Descripción, Descripción corta, Nombre del producto, Meta título, Meta descripción, Características.

### Reglas de transformación

| Regla             | Parámetros                            | Qué hace                                             |
| ----------------- | ------------------------------------- | ---------------------------------------------------- |
| **Recortar**      | Longitud máxima (predeterminado: 150) | Corta el texto a un número máximo de caracteres      |
| **Eliminar HTML** | Ninguno                               | Elimina todas las etiquetas HTML y deja texto plano  |
| **Plantilla**     | Cadena de plantilla                   | Envuelve o reformatea el contenido con una plantilla |
| **Viñetas**       | Máx. viñetas (predeterminado: 5)      | Convierte el texto en una lista de viñetas           |

<Tip>
  Ordena tus reglas con cuidado. Elimina el HTML primero y luego recorta. Si no, podrías cortar en medio de una etiqueta HTML.
</Tip>

### Variables de canal de ejemplo

**Descripción corta para Amazon:**

* Origen: Descripción
* Reglas: Eliminar HTML → Viñetas (máx: 5) → Recortar (500)
* Resultado: Tu descripción HTML completa se convierte en un resumen limpio de 5 viñetas, limitado a 500 caracteres.

**Título para Google Shopping:**

* Origen: Nombre del producto
* Reglas: Plantilla (`{{value}} - {{product.brand}} - Buy at {{global.company_name}}`) → Recortar (150)
* Resultado: "Stainless Steel Hex Bolt M10x50 - Fischer - Buy at Industrial Supplies BV"

**Descripción en texto plano para marketplace:**

* Origen: Descripción
* Reglas: Eliminar HTML → Recortar (2000)
* Resultado: Descripción completa con el formato eliminado, limitada a 2000 caracteres.

## Bloques condicionales

<sub>[Ver ejemplos y casos de uso →](/es/workflows/content-logic/conditional-blocks)</sub>

Los bloques condicionales muestran contenido distinto según los datos del producto. Funcionan como sentencias if/else para tu contenido.

<Steps>
  <Step title="Crea un bloque">
    En la pestaña **Condicional**, haz clic en **Añadir Bloque**. Dale un nombre y una clave.
  </Step>

  <Step title="Define condiciones">
    Elige un campo de producto, elige un operador e introduce un valor. Añade más condiciones y combínalas con **Y** u **O**.
  </Step>

  <Step title="Escribe el contenido de cada rama">
    Introduce el contenido para cuando se cumplan las condiciones (**entonces**). Añade ramas **si no si** opcionales para otros casos, y un **si no** opcional como alternativa.
  </Step>
</Steps>

### Operadores de condición

Las condiciones pueden referenciar cualquier campo de producto, atributo personalizado o variable de fecha/hora. El selector de campos los agrupa por categoría (Identidad del producto, Contenido, Precios, Propiedades físicas, Inventario, Envío, Estado, Fecha y hora) e incluye tus atributos personalizados.

| Operador                | Descripción                              | ¿Necesita valor? |
| ----------------------- | ---------------------------------------- | ---------------- |
| `equals`                | Coincidencia exacta                      | Sí               |
| `not_equals`            | No es igual                              | Sí               |
| `contains`              | Contiene una subcadena                   | Sí               |
| `not_contains`          | No contiene                              | Sí               |
| `starts_with`           | La cadena empieza por                    | Sí               |
| `ends_with`             | La cadena termina en                     | Sí               |
| `greater_than`          | Numérico mayor que                       | Sí               |
| `less_than`             | Numérico menor que                       | Sí               |
| `greater_than_or_equal` | Mayor o igual que                        | Sí               |
| `less_than_or_equal`    | Menor o igual que                        | Sí               |
| `in_list`               | El valor es uno de (separados por comas) | Sí               |
| `is_empty`              | El campo no tiene valor                  | No               |
| `is_not_empty`          | El campo tiene un valor                  | No               |
| `is_true`               | El booleano es verdadero                 | No               |
| `is_false`              | El booleano es falso                     | No               |

### Ejemplos de bloques condicionales

**Banner de envío gratis:**

* Clave: `free_shipping`
* SI `product.price` mayor que `50` → `Envío gratis incluido.`
* SI NO → `Gastos de envío calculados al finalizar la compra.`

**Mensaje de urgencia de stock:**

* Clave: `stock_message`
* SI `product.stock_quantity` menor que `5` Y `product.stock_status` igual a `in_stock` → `Solo quedan {{product.stock_quantity}}, pide pronto.`
* SI NO SI `product.stock_status` igual a `out_of_stock` → `Actualmente sin stock. {{global.restock_text}}`
* SI NO → `En stock y listo para enviar.`

**Promoción de temporada:**

* Clave: `seasonal_promo`
* SI `current.season` igual a `Winter` → `Rebajas de invierno: ahorra {{product.savings_percent}}% hoy.`
* SI NO SI `current.season` igual a `Summer` → `Liquidación de verano: {{product.savings_percent}}% de descuento.`
* SI NO → *(vacío, sin promoción fuera de las temporadas de rebajas)*

**Plazo de entrega B2B por categoría:**

* Clave: `lead_time`
* SI `product.category` in\_list `Custom Orders, Made to Order` → `Plazo de entrega: 4–6 semanas. Contáctanos para opciones urgentes.`
* SI NO SI `product.stock_quantity` mayor que `0` → `En stock. {{global.lead_time_text}}`
* SI NO → `Disponible bajo pedido. {{global.backorder_lead_time}}`

**Aviso de material peligroso:**

* Clave: `hazmat_notice`
* SI `product.is_dangerous_good` is\_true → `⚠ Material peligroso. Aplican restricciones especiales de envío. {{brand.hazmat_handling}}`
* SI NO → *(vacío)*

## Dónde puedes usar las variables

Una vez definidas, puedes referenciar las variables de Content Logic en:

* **[Edición masiva](/es/essentials/bulk-editing)**: usa variables en [Buscar y reemplazar](/es/essentials/bulk-editing/find-replace), [Añadir/Anteponer](/es/essentials/bulk-editing/append-prepend) y [Establecer valor de campo](/es/essentials/bulk-editing/set-field) para generar contenido a escala
* **prompts de [enriquecimiento con AI](/es/essentials/enriching-products)**: añade contexto del producto, directrices de marca e instrucciones por categoría a tus prompts
* **[Plantillas de exportación](/es/settings/templates)**: formatea la salida para distintos canales y plataformas
* **[Automatizaciones](/es/automations/overview)**: referencia variables en acciones que generan o modifican contenido

## Guardar los cambios

Content Logic detecta cuando haces un cambio. Una **barra de guardado** aparece en la parte inferior de la página:

* Haz clic en **Guardar** para conservar tus cambios.
* Haz clic en **Deshacer** para volver al último estado guardado.

La configuración se guarda a nivel de proyecto. Todos los miembros del equipo con acceso al proyecto comparten las mismas definiciones de variables.

## Mejores prácticas

<CardGroup cols={2}>
  <Card title="Empieza con las globales" icon="globe">
    Empieza con variables globales para valores compartidos como el nombre de la empresa, la política de envío y los datos de contacto. Son rápidas de configurar y útiles de inmediato.
  </Card>

  <Card title="Usa claves descriptivas" icon="tag">
    Nombra las variables con claridad: `warranty_text`, no `var1`. Referencias estas claves en todas partes, así que mantenlas legibles.
  </Card>

  <Card title="Prueba con productos reales" icon="flask-conical">
    Tras crear un bloque o una fórmula, compruébalo con distintos productos. Usa la vista previa en vivo para detectar problemas pronto.
  </Card>

  <Card title="Combina tus ámbitos" icon="layers">
    Combina ámbitos en una fórmula: globales para texto compartido, variables de marca para detalles del fabricante, variables de categoría para detalles por tipo de producto.
  </Card>
</CardGroup>

## Relacionado

<CardGroup cols={2}>
  <Card title="Edición masiva" icon="layers" href="/es/essentials/bulk-editing">
    Aplica variables a muchos productos a la vez con acciones masivas.
  </Card>

  <Card title="Enriquecer productos" icon="sparkles" href="/es/essentials/enriching-products">
    Inyecta variables en prompts de AI para un contenido más rico y fiel a la marca.
  </Card>

  <Card title="Plantillas de exportación" icon="file-output" href="/es/settings/templates">
    Formatea la salida lista para cada canal con tus variables de Content Logic.
  </Card>

  <Card title="Automatizaciones" icon="workflow" href="/es/automations/overview">
    Referencia variables en acciones automáticas que generan contenido.
  </Card>
</CardGroup>
