Con una plantilla SVG, la imagen del producto sigue a la configuración: una etiqueta se dibuja tan ancha y alta como la pide tu cliente, recibe esquinas redondeadas o un agujero, y la zona de diseño del texto propio o de la imagen propia crece con ella. No necesitas una imagen distinta para cada tamaño y cada variante.
Requisitos
- Motor de frontend V3. Legacy no muestra la plantilla. Consulta Motor de frontend: Legacy o V3.
- Imagen de producto combinada. La plantilla es la imagen de un valor en la imagen de producto combinada, p. ej. en la característica Papel. configento.app lee la zona de diseño de la imagen inferior, es decir, del producto base. Consulta Visualización de imágenes y carga de imágenes.
- Características con nombre interno. La plantilla lee los valores a través del Nombre interno (ID) de una característica, p. ej.
$largopara el largo en mm.
Cómo se construye una plantilla
Una plantilla SVG es un archivo SVG normal en cuyos atributos hay marcadores entre dobles llaves. El configurador los rellena con cada selección y dibuja el resultado en la imagen del producto.
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="-2 -2 {{$largo + 4}} {{$alto + 4}}"
width="{{($largo + 4) * 4}}" height="{{($alto + 4) * 4}}">
<rect x="0" y="0" width="{{$largo}}" height="{{$alto}}"
rx="{{$esquinas == 'redondas' ? 3 : 0}}" fill="#f4efe4" stroke="#cfc6b4" stroke-width="0.4"/>
<circle cx="{{$largo / 2}}" cy="8" r="{{$agujero == 'sin' ? 0 : 2.5}}"
fill="#ffffff" stroke="#cfc6b4" stroke-width="0.4"/>
<rect data-configento-zone="marca" x="5" y="15"
width="{{$largo - 10}}" height="{{$alto - 20}}" fill="none"/>
</svg>
viewBoxen milímetros. Una unidad de la plantilla es un milímetro en el producto. Aquí la etiqueta mide$largo×$altomm, con 2 mm de espacio alrededor.widthyheightdeterminan el tamaño con el que se dibuja la imagen. La raíz necesitawidthyheighto unaviewBox; si no, el archivo se rechaza al subirlo.- Las esquinas redondeadas y el agujero dependen de características de selección:
$esquinas == 'redondas' ? 3 : 0pone el radio de las esquinas en 3 mm cuando está elegido el valorredondas. - La zona de diseño es el rectángulo con
data-configento-zone(véase abajo).
Puedes descargar esta plantilla como punto de partida: hangtag.svg. Sustituye los nombres después de $ por los nombres internos de tus características.
Marcadores
Dentro de {{ … }} va una expresión escrita igual que en una característica de fórmula:
| Qué | Ejemplo |
|---|---|
| Valor de una característica | {{$largo}} |
| Cálculo | {{$largo - 10}}, {{($alto + 4) * 4}} |
| Si – entonces – si no | {{$esquinas == 'redondas' ? 3 : 0}} |
| Texto o color | {{$carton == 'negro' ? '#1a1a1a' : '#ffffff'}} |
- En características de selección, compara con el Valor de la entrada, no con su etiqueta.
- Los números se redondean a tres decimales. Si una característica está vacía, el configurador usa
0. - Los marcadores funcionan en atributos, p. ej. en
width,rx,filloviewBox. - Escribe
<y>como<y>en el archivo SVG, p. ej.{{$largo > 80 ? 4 : 2}}. El configurador los convierte antes de calcular.
Definir la zona de diseño
Un rectángulo con data-configento-zone="…" define dónde va un texto o una imagen propios. Indica ahí el Nombre interno (ID) de la característica del tipo Texto propio en el producto o Imagen propia en el producto.
x,y,widthyheightdel rectángulo son la posición y el tamaño real de la zona en mm. configento.app calcula con ellos los tamaños de letra y la resolución de una imagen.- La zona de la plantilla tiene prioridad sobre la zona dibujada en el editor y sobre Ancho de y Alto de.
- Con
fill="none"el rectángulo queda invisible. - Para ello la plantilla necesita una
viewBox.
Varias características reciben cada una su propio rectángulo. La comprobación de precios en el carrito también lee la plantilla, así que el tamaño y la resolución del pedido coinciden con los del navegador.
Fondo para la comprobación de contraste
Si un texto propio comprueba el contraste, la plantilla puede aportar el fondo. Añade data-configento-bg al rectángulo de la zona de diseño:
<rect data-configento-zone="marca" x="5" y="15"
width="{{$largo - 10}}" height="{{$alto - 20}}" fill="none"
data-configento-bg="{{$carton == 'negro' ? '#1a1a1a' : '#f4efe4'}}"/>
El valor debe ser un color hexadecimal de seis dígitos como #1a1a1a; vacío significa sin comprobación. Si en el texto propio hay un Fondo indicado en Comprobación de contraste, se aplica ese.
Margen de seguridad y agujero
Al cortar o troquelar se puede perder algo del borde. Dos atributos mantienen el texto y la imagen alejados:
data-configento-safe-mm="3"en el rectángulo de la zona de diseño: la distancia en mm que el texto y la imagen deben guardar respecto al borde de la zona.data-configento-keepouten unrect,circleoellipse: una superficie que debe quedar libre, p. ej. el agujero de una etiqueta. Escribe el atributo comodata-configento-keepout="", porque SVG exige un valor. Las zonas excluidas valen para todas las zonas de diseño, también desde una capa superior, por ejemplo en la característica Agujero, si su plantilla tiene la mismaviewBox.
<circle cx="{{$largo / 2}}" cy="8" r="{{$agujero == 'sin' ? 0 : 2.5}}"
fill="#ffffff" data-configento-keepout=""/>
<rect data-configento-zone="marca" data-configento-safe-mm="3"
x="5" y="15" width="{{$largo - 10}}" height="{{$alto - 20}}" fill="none"/>
Si un texto o una imagen se acerca al borde más que el margen o toca el agujero, el campo muestra «Demasiado cerca del borde o del agujero: esta parte puede cortarse o perforarse.» Si el configurador solo avisa o también bloquea el carrito se ajusta en la característica. Más información: Texto propio en el producto e Imagen propia en el producto.
Subir la plantilla
Sube la plantilla como cualquier otra imagen en el valor (SVG de hasta 5 MB). Al subirla, configento.app limpia el archivo:
- Se eliminan los scripts.
- Se eliminan las referencias a archivos de otros servidores, p. ej. imágenes enlazadas. Por eso, incrusta las imágenes directamente o añádelas como capa propia.
- Los marcadores y los atributos
data-se conservan.
Las imágenes de 360° no pueden ser archivos SVG.
Solución de problemas
- El archivo se rechaza al subirlo: la raíz
<svg>no tiene niwidthyheightniviewBox. - Una forma mide 0 o desaparece: el marcador da
0. Comprueba el Nombre interno (ID), incluidas mayúsculas y minúsculas, y si la característica tiene un valor. - Una comparación no se cumple nunca: compara con el Valor de la entrada, p. ej.
redondas, no con la etiqueta Redondas. - El texto se queda en el sitio anterior:
data-configento-zonedebe llevar exactamente el nombre interno de la característica de texto o de imagen, y la plantilla necesita unaviewBox. - No se comprueba el contraste:
data-configento-bgno da un color hexadecimal de seis dígitos, o el texto no tiene Contraste mín. - No se tiene en cuenta el agujero: la forma con
data-configento-keepoutno es unrect,circleoellipse, o su capa tiene otraviewBoxque la plantilla.