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

# Plantillas

> Editor visual de plantillas de etiquetas ZPL: variables, textos y códigos de barras

La pestaña Plantillas permite diseñar las etiquetas que se imprimirán en producción. DAIA Agent incluye un **editor visual** drag-and-drop que genera el código ZPL sin necesidad de conocer la sintaxis del lenguaje, y un **editor ZPL** para usuarios avanzados.

Cada plantilla tiene un **Nombre**, una **Descripción** y un interruptor **Activa** (solo las plantillas activas se ofrecen al configurar pulsadores e impresión).

<img src="https://mintcdn.com/daiasystems/yXkDwBJnFdJ9Jt4_/images/daia-agent/configuracion_plantillas.png?fit=max&auto=format&n=yXkDwBJnFdJ9Jt4_&q=85&s=5c8876bb834e21d1272d896458af8005" alt="Listado de plantillas de etiquetas con sus acciones de edición" width="1904" height="897" data-path="images/daia-agent/configuracion_plantillas.png" />

***

## El editor visual

Al crear o editar una plantilla se abre el editor. A la izquierda está el **lienzo de diseño** con el tamaño real de la etiqueta — **Ancho (mm)** y **Alto (mm)** a 203 DPI — y a la derecha la **Vista previa**, que con el botón **Actualizar** muestra la etiqueta renderizada con datos de ejemplo.

<img src="https://mintcdn.com/daiasystems/yXkDwBJnFdJ9Jt4_/images/daia-agent/configuracion_plantillas_editoretiquetas2.png?fit=max&auto=format&n=yXkDwBJnFdJ9Jt4_&q=85&s=5be88269c3a59ae5e1a7a543e17ac03d" alt="Editor visual de plantillas con el lienzo de diseño, variables y vista previa" width="1920" height="966" data-path="images/daia-agent/configuracion_plantillas_editoretiquetas2.png" />

### Barra de herramientas

| Grupo                 | Herramientas                                                                                               |
| --------------------- | ---------------------------------------------------------------------------------------------------------- |
| Agregar elementos     | Texto, Línea, Code128, EAN13, UPC-A, QR Code, DataMatrix, Voice Pick Code, Fecha Agrícola, Texto Recortado |
| Densidad de impresión | **Por Defecto** o **Darkness** (0–30, comando ZPL `~SD`) para ajustar qué tan oscura sale la impresión     |
| Edición               | Deshacer (Ctrl+Z), Rehacer (Ctrl+Y), Duplicar (Ctrl+D), Traer al frente, Enviar atrás, Eliminar (Supr)     |

Al hacer clic en un elemento del lienzo, el **panel de propiedades** muestra su posición (X/Y en mm) y sus opciones específicas. La casilla **Bloquear elemento** evita moverlo por accidente.

***

## Variables

Las variables se escriben entre corchetes angulares — por ejemplo `<grower>` o `<net_weight>` — y se reemplazan automáticamente con los datos reales de producción al momento de imprimir. Puedes combinarlas con texto fijo en un mismo elemento (ej. `Lote: <lote>`).

El botón **Insertar variable** del panel de propiedades abre el selector: busca por nombre y muestra cada variable con su ejemplo, agrupada por categoría.

<AccordionGroup>
  <Accordion title="Producto">
    | Variable                                             | Descripción                                   |
    | ---------------------------------------------------- | --------------------------------------------- |
    | `<specie>` / `<specie_name>` / `<specie_name_2>`     | Especie (nombre interno y nombres de display) |
    | `<variety>` / `<variety_code>` / `<variety_ext1>`    | Variedad, su código y campo extendido         |
    | `<size>` / `<size_ext1>` / `<size_ext2>`             | Calibre y campos extendidos                   |
    | `<category>` / `<category_ext1>` / `<category_ext2>` | Categoría y campos extendidos                 |
    | `<color>` / `<color_ext1>` / `<color_ext2>`          | Color y campos extendidos                     |
    | `<sku>`                                              | SKU del producto                              |
  </Accordion>

  <Accordion title="Empaque (pack)">
    | Variable                               | Descripción                  |
    | -------------------------------------- | ---------------------------- |
    | `<pack>` / `<pack_code>` / `<pack_id>` | Nombre, código e ID del pack |
    | `<pack_brand>`                         | Marca del pack               |
    | `<pack_gtn>`                           | GTN del pack                 |
    | `<packaging>`                          | Tipo de empaque              |
    | `<net_weight>` / `<net_weight_lb>`     | Peso neto en kg y en libras  |
  </Accordion>

  <Accordion title="Productor">
    | Variable                                          | Descripción                    |
    | ------------------------------------------------- | ------------------------------ |
    | `<grower>` / `<grower_code>`                      | Nombre y código del productor  |
    | `<grower_csg>` / `<grower_ggn>` / `<grower_sdp>`  | Identificadores CSG, GGN y SDP |
    | `<grower_com>` / `<grower_prov>` / `<grower_reg>` | Comuna, provincia y región     |
  </Accordion>

  <Accordion title="Lote">
    | Variable                                                             | Descripción                               |
    | -------------------------------------------------------------------- | ----------------------------------------- |
    | `<lote>` / `<batch_id>`                                              | Código e ID del lote en proceso           |
    | `<date>` / `<date_yymmdd>` / `<date_format_01>` / `<date_format_02>` | Fecha de producción en distintos formatos |
    | `<harvest_date>`                                                     | Fecha de cosecha                          |
    | `<shift>`                                                            | Turno                                     |
    | `<batch_grower_code>` / `<batch_grower_name>`                        | Productor del lote                        |
    | `<batch_specie_name>` / `<batch_variety_name>`                       | Especie y variedad del lote               |
    | `<batch_work_order_id>`                                              | Orden de trabajo del lote                 |
    | `<exporter_code>` / `<exporter_name>`                                | Exportadora                               |
    | `<ext_company_code>` / `<ext_season_code>`                           | Empresa y temporada (códigos externos)    |
  </Accordion>

  <Accordion title="Códigos y otros">
    | Variable                        | Descripción                                               |
    | ------------------------------- | --------------------------------------------------------- |
    | `<box_code>`                    | Código único de la caja                                   |
    | `<bar_code>` / `<bar_code_gs1>` | Código de barras GS1 compuesto (con o sin caracteres FNC) |
    | `<code>` / `<description>`      | Código y descripción del pulsador                         |
    | `<outlet_code>`                 | Código de la salida                                       |
    | `<template>`                    | Nombre de la plantilla                                    |
    | `<time_now>`                    | Hora actual de impresión                                  |
  </Accordion>
</AccordionGroup>

***

## Elementos y su configuración

### Texto

Texto fijo, variables o una combinación de ambos.

| Propiedad | Descripción                                                                 |
| --------- | --------------------------------------------------------------------------- |
| Contenido | El texto a imprimir; usa **Insertar variable** para agregar datos dinámicos |
| Fuente    | Fuente ZPL (0, A–H); la fuente `0` es la escalable estándar                 |
| Tamaño    | Altura del texto en dots (a 203 DPI, 8 dots = 1 mm)                         |
| Rotación  | 0°, 90°, 180° o 270°                                                        |
| Negrita   | Simula negrita imprimiendo el texto con doble pasada                        |

<img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_texto.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=197c2813689f79889d8e20461aa559fb" alt="Panel de propiedades de un elemento Texto con contenido combinando texto fijo y variable" width="2080" height="981" data-path="images/daia-agent/configuracion_plantillas_texto.png" />

### Línea

Separadores gráficos: orientación horizontal o vertical, **Longitud** y **Grosor** en dots, y color (negro o blanco).

### Códigos de barras — Code128, EAN13, UPC-A

Los tres tipos comparten las mismas propiedades:

| Propiedad     | Descripción                                                                                                          |
| ------------- | -------------------------------------------------------------------------------------------------------------------- |
| Contenido     | El dato a codificar; normalmente una variable (ej. `<box_code>`, `<bar_code>`)                                       |
| Alto (dots)   | Altura de las barras                                                                                                 |
| Ancho módulo  | Grosor de la barra más delgada (1–10); a mayor valor, código más ancho                                               |
| Mostrar texto | Imprime el valor legible bajo el código                                                                              |
| Texto arriba  | Mueve el texto legible sobre el código                                                                               |
| Rotación      | Orientación del código                                                                                               |
| **GS1-128**   | (Solo Code128) activa el modo UCC/EAN-128 para códigos de trazabilidad GS1; úsalo junto con la variable `<bar_code>` |

<img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_code128.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=d023cb8193c8c5ec494c7f1618fdbfe9" alt="Panel de propiedades de un código Code128 con contenido, alto, ancho de módulo y la opción GS1-128" width="2060" height="886" data-path="images/daia-agent/configuracion_plantillas_code128.png" />

<Tip>
  Para la etiqueta GS1-128 estándar de exportación (GTIN + fecha + lote en un solo código), inserta un **Code128** con contenido `<bar_code>` y activa la casilla **GS1-128**.
</Tip>

### QR Code y DataMatrix

Códigos 2D para contenidos largos (URLs, trazabilidad extendida):

| Propiedad                     | Descripción                                                                                   |
| ----------------------------- | --------------------------------------------------------------------------------------------- |
| Contenido                     | Texto o variables a codificar                                                                 |
| Magnificación / Tamaño módulo | Tamaño del código                                                                             |
| Corrección (solo QR)          | Nivel de corrección de errores: L, M, Q o H (mayor = más tolerante a daños, código más denso) |

<img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_qr.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=501ae261f391bafa9c2f9e791d82528b" alt="Panel de propiedades de un QR Code con magnificación, corrección de errores y modelo" width="2088" height="997" data-path="images/daia-agent/configuracion_plantillas_qr.png" />

### Voice Pick Code

Código de 4 dígitos del estándar **PTI** (Produce Traceability Initiative) usado en picking por voz: se calcula automáticamente a partir del GTIN, el lote y la fecha, y se muestra como 2 dígitos pequeños + 2 dígitos grandes.

| Propiedad                    | Descripción                                                   |
| ---------------------------- | ------------------------------------------------------------- |
| Fuente GTIN                  | Variable con el GTIN de 14 dígitos (normalmente `pack_gtn`)   |
| Fuente Lote                  | Variable con el lote (normalmente `lote`)                     |
| Sufijo Lote                  | Texto opcional que se concatena al lote antes del cálculo     |
| Fuente Fecha                 | Variable con la fecha en formato YYMMDD; puede omitirse       |
| Tamaño grande / pequeño      | Altura en dots de los 2 dígitos grandes y los 2 pequeños      |
| Espacio entre dígitos        | Separación horizontal (negativo = más juntos)                 |
| Fondo negro / letras blancas | Imprime el código en recuadro negro invertido, como exige PTI |

<div style={{ lineHeight: 0 }}>
  <img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_voicepick.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=2f1663f2820354be10ac0a96a14a9bdf" alt="Panel de propiedades del Voice Pick Code: fuentes de datos GTIN y lote para el cálculo VPC" style={{ display: "block", margin: 0, width: "100%" }} width="2085" height="920" data-path="images/daia-agent/configuracion_plantillas_voicepick.png" />

  <img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_voicepick2.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=2ee9372c254a3843a7b3b4d0b4ac91f6" alt="Continuación del panel Voice Pick Code: fuente de fecha, tipografía, fondo negro y preview del VPC calculado" style={{ display: "block", margin: 0, width: "100%" }} width="2077" height="828" data-path="images/daia-agent/configuracion_plantillas_voicepick2.png" />
</div>

### Fecha Agrícola

Imprime la fecha en formato de **mes agrícola** (noviembre = 1, diciembre = 2, …, octubre = 12) seguido del día, dentro de un recuadro negro con texto blanco. Ejemplo: el 14 de mayo se imprime como `714`.

| Propiedad             | Descripción                                               |
| --------------------- | --------------------------------------------------------- |
| Fuente de fecha       | Variable de fecha a convertir (normalmente `date_yymmdd`) |
| Tamaño texto          | Altura del texto en dots                                  |
| Ancho / Alto recuadro | Dimensiones del recuadro negro                            |

<img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_fechaagricola.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=895033e8910bbe9c7696bf59365aa398" alt="Panel de propiedades de la Fecha Agrícola con fuente de fecha, tamaños del recuadro y preview con la fecha de hoy" width="2064" height="942" data-path="images/daia-agent/configuracion_plantillas_fechaagricola.png" />

### Texto Recortado

Extrae una parte de una variable: los N caracteres desde la izquierda o desde la derecha. Útil por ejemplo para imprimir solo los últimos 4 dígitos del lote.

| Propiedad                            | Descripción                                    |
| ------------------------------------ | ---------------------------------------------- |
| Fuente (variable)                    | La variable de origen (ej. `lote`)             |
| Dígitos                              | Cuántos caracteres tomar                       |
| Desde                                | Izquierda o derecha                            |
| Fuente / Tamaño / Rotación / Negrita | Formato del texto, igual que un elemento Texto |

<img src="https://mintcdn.com/daiasystems/meUAOTJy5RMkYRe7/images/daia-agent/configuracion_plantillas_textorecortado.png?fit=max&auto=format&n=meUAOTJy5RMkYRe7&q=85&s=5b5543d5750beb4655749fb9efce1ec2" alt="Panel de propiedades del Texto Recortado con la variable de origen, dígitos a tomar y dirección" width="2082" height="946" data-path="images/daia-agent/configuracion_plantillas_textorecortado.png" />

***

## Crear una plantilla

<Steps>
  <Step title="Nueva plantilla">
    En **Configuración → Plantillas**, haz clic en **Nueva plantilla** y asigna nombre y descripción.
  </Step>

  <Step title="Definir el tamaño de la etiqueta">
    Ajusta **Ancho (mm)** y **Alto (mm)** al formato real de etiqueta que usa tu impresora.
  </Step>

  <Step title="Agregar y posicionar elementos">
    Desde la barra de herramientas agrega textos, variables, líneas y códigos, y arrástralos a su posición en el lienzo.
  </Step>

  <Step title="Configurar cada elemento">
    Haz clic en un elemento y ajusta sus propiedades en el panel derecho; usa **Insertar variable** para los datos dinámicos.
  </Step>

  <Step title="Previsualizar">
    Haz clic en **Actualizar** en la Vista previa para ver la etiqueta con datos de ejemplo.
  </Step>

  <Step title="Guardar">
    Activa la plantilla con el interruptor **Activa** y haz clic en **Guardar**. Queda disponible para asignarla a pulsadores en el módulo Etiquetado.
  </Step>
</Steps>

***

## Editor ZPL (avanzado)

La pestaña **Editor ZPL** muestra y permite editar el código ZPL directamente. Esto sirve para:

* Usar comandos ZPL que el editor visual no expone
* Importar plantillas ZPL existentes de sistemas anteriores
* Ajustar con precisión el posicionamiento de elementos

<Warning>
  El ZPL escrito a mano con comandos avanzados puede no representarse completamente al volver al Editor Visual. Para plantillas complejas, elige un modo de trabajo (visual o código) y mantente en él.
</Warning>

***

## Notas importantes

<Tip>
  Antes de producir, imprime una etiqueta de prueba real: la Vista previa es fiel, pero la densidad (Darkness) y el ribbon de cada impresora pueden cambiar el resultado físico.
</Tip>

<Warning>
  Verifica que las variables usadas tengan datos en producción: una variable sin valor (ej. `<pack_gtn>` con un pack sin GTN configurado) sale vacía en la etiqueta y puede invalidar códigos de barras.
</Warning>
