Saltar al contenido principal

Productos

La página Productos muestra el catálogo completo con opciones de búsqueda y filtrado.

Funciones del panel​

Una única franja de estado del catálogo en la parte superior, no una fila de tarjetas. Muestra N productos · N categorías · N marcas, y junto a ella una etiqueta por cada asunto que requiere atención: productos sin stock, productos con stock bajo y productos sin categoría o sin marca. Cuando no hay nada que señalar dice El catálogo está completo. Los recuentos cubren todo el catálogo, no la página que estás viendo.

Filtros​

Filtra productos con varios criterios:

FiltroDescripción
BuscarEncuentra productos por nombre, descripción o SKU
CategoríaFiltra por categoría de producto
MarcaFiltra por nombre de marca
Estado de inventarioTodo el inventario, disponibles, con poco inventario o agotados

Tabla de productos​

Una tabla ordenable que muestra:

ColumnaDescripción
ImagenMiniatura o marcador de posición del producto
NombreNombre y SKU del producto
PrecioPrecio de venta actual y precio de comparación (tachado)
CategoríaCategorías de producto (etiquetas)
MarcaNombre de la marca
InventarioDisponible (verde), un aviso de poco inventario con las unidades que quedan (ámbar) o agotado (rojo)
Ingresos 30 dIngresos de los últimos 30 días, con una flecha para la variación frente a los 30 anteriores y las unidades vendidas debajo. Los productos sin ventas en la ventana lo indican

Consultar productos​

  1. Ve a Comercio electrónico > Productos.
  2. Usa el cuadro de búsqueda para encontrar productos concretos.
  3. Aplica filtros para acotar los resultados.
  4. Recorre los resultados paginados.

Comprender los datos de producto​

Campos de producto​

CampoDescripción
externalIdIdentificador único del producto (por ejemplo, SKU)
nameNombre de visualización del producto
pricePrecio de venta actual. Vacío cuando la tienda no da precio al producto: el catálogo muestra "Sin precio" y el producto nunca cumple una condición de precio ("precio menor que 10" no lo trata como 0). Un precio 0 puesto en la tienda sigue siendo 0
compareAtPricePrecio original (muestra el descuento)
currencyCódigo de moneda del precio
categoriesMatriz de nombres de categorías
tagsMatriz de etiquetas del producto
brandNombre de marca o proveedor
imageUrlImagen principal del producto
inStockEstado de disponibilidad
variantsVariaciones de talla, color u otras opciones

Variantes​

Los productos pueden tener varias variantes con distintos:

  • Precios
  • SKU
  • Estados de inventario
  • Opciones: talla, color, etc.

Sincronizar productos​

Los productos normalmente se sincronizan desde tu plataforma de comercio electrónico. Joryio admite:

  • Shopify: sincronización automática mediante webhook.
  • WooCommerce: integración con API REST.
  • Magento: extensión Joryio Connect.
  • Plataformas personalizadas: usa la API de productos.

Importación masiva​

Usa la API de actualización o inserción masiva para importar productos: envía mediante POST una matriz JSON sin envoltorio - máximo 500 elementos - al endpoint de productos:

POST /catalog/products
[
{ "productId": "SKU-001", "name": "Product 1", "price": 19.99, "source": "shopify" },
{ "productId": "SKU-002", "name": "Product 2", "price": 29.99, "source": "shopify" }
]

Usar productos en campañas​

Recomendaciones de productos​

Incluye productos en campañas de email mediante plantillas Liquid:

{% assign picks = 'featured' | products %}
{% for product in picks %}
<div class="product">
<img src="{{ product.imageUrl }}" alt="{{ product.name }}">
<h3>{{ product.name }}</h3>
<p>${{ product.price }}</p>
<a href="{{ product.url }}">Comprar ahora</a>
</div>
{% endfor %}

'featured' es el nombre de una selección de productos guardada en la página Productos. El filtro products se ejecuta en cada envío y en la vista previa; consulta la referencia de Liquid.

Para selecciones por cliente (personalizadas, comprados juntos, artículos similares, novedades y más) en cualquier canal, consulta Recomendaciones de productos.

Personalización​

Tres variables describen lo que el destinatario compró, o está a punto de comprar. Se resuelven por contacto al enviar y en la vista previa, en todos los canales, tanto en campañas como en recorridos - y están vacías para un contacto sin pedidos en la tienda, así que envuelve cada una en {% if %}.

VariableQué contieneCuándo usarla
cartEl carrito de la tienda sincronizado del contacto: items, value, subtotal (subtotal de los artículos, antes del envío), currency, itemCount, checkoutUrl. Vacío cuando el carrito está vacíoRecuperación de carrito - "dejaste esto atrás", con el enlace de pago
last_orderSu pedido más reciente que no fue cancelado ni reembolsado: id, placedAt, total, currency, status, itemCount, items, orderUrlRepetir pedido y seguimiento - "¿qué tal tu pedido?", "pídelo de nuevo"
top_productsLos productos que más piden, hasta 5, el más frecuente primero: name, sku, imageUrl, url, timesOrdered, lastOrderedAtOfertas basadas en hábitos - "¿lo de siempre?"

Los artículos de cart.items y last_order.items comparten una misma forma - name, quantity, price, total, imageUrl, url, sku - así que un bucle escrito para uno funciona con el otro.

Carrito abandonado:

{% if cart %}
{% for item in cart.items %}
<p>{{ item.name }} x {{ item.quantity }} - {{ item.total | currency: cart.currency }}</p>
{% endfor %}
<p>Total del carrito: {{ cart.value | currency: cart.currency }}</p>
<a href="{{ cart.checkoutUrl }}">Completar compra</a>
{% endif %}

Qué enlace. {{ cart.checkoutUrl }} es el enlace de recuperación de la propia tienda para el carrito (WooCommerce, Magento y PrestaShop: el enlace que envía el plugin de Joryio cuando se abandona el carrito; Shopify: el enlace de recuperación del checkout), así que reconstruye el carrito en cualquier dispositivo. Solo un carrito para el que la tienda no envió enlace de recuperación usa la página de pago de la tienda. Nunca se usa un enlace que no esté en la dirección de la tienda conectada. Un carrito abandonado antes de esta regla (2026-11-01) conserva la página de pago normal hasta que la tienda lo vuelva a notificar como abandonado.

Un contacto sin carrito. Un email de carrito cuyo botón enlaza {{ cart.checkoutUrl }} no se envía a quien no tiene un carrito sincronizado (o un carrito sin enlace de recuperación de la tienda): el enlace saldría vacío, un botón que no lleva a ninguna parte. Se registra como omitido, con el motivo No hay enlace de carrito para enviar (cart_link_missing). Para enviarlo de todos modos, dale al enlace un valor alternativo: {{ cart.checkoutUrl | default: 'https://your-store.com/cart' }}. La vista previa del email muestra un carrito de ejemplo señalado para un contacto sin carrito, y Launch Review avisa cuando un mensaje del recorrido lee cart pero el recorrido no empieza con un evento de carrito (Cart Abandoned, Checkout Started, Product Added, Cart Updated, Cart Viewed).

Último pedido y productos habituales:

{% if top_products.size > 0 %}
<p>¿Lo de siempre, {{ user.firstName }}? {{ top_products | map: "name" | join: " + " }}</p>
{% endif %}
{% if last_order %}
<p>La última vez ({{ last_order.placedAt | date_format }}) pediste:</p>
{% for item in last_order.items %}
<p><a href="{{ item.url }}">{{ item.name }}</a> x {{ item.quantity }}</p>
{% endfor %}
{% endif %}

Elige uno en el grupo Shopping del selector de personalización de cualquier editor para insertar un fragmento listo. La lista completa está en la referencia de Liquid.

Selecciones de productos​

Una selección es un filtro guardado y reutilizable sobre el catálogo de productos. Por ejemplo: «calzado rebajado», «artículos disponibles por menos de 50 USD» o «todo lo etiquetado como new-arrival». Créala una vez y reutilízala en cualquier lugar donde muestres productos.

Para crear una: en la página Productos, selecciona Selecciones → Nueva selección. Asigna un nombre, añade una o más reglas sobre campos de producto - nombre, marca, precio, inventario, categorías, etiquetas, etc. - con operadores adecuados para cada tipo, elige si deben coincidir todas o cualquiera de las reglas y define el número máximo de productos. La vista previa muestra exactamente qué productos coinciden en ese momento.

Las selecciones son el equivalente en el catálogo de productos a las selecciones de entidades: un árbol de filtros guardado al que puedes dirigir contenido y recomendaciones, en vez de enumerar IDs de productos manualmente.

Buenas prácticas​

  1. Mantén los productos sincronizados: asegúrate de sincronizar con regularidad la plataforma de comercio electrónico.
  2. Usa imágenes de alta calidad: mejoran la interacción con los emails.
  3. Mantén un inventario preciso: las notificaciones de agotado dependen de datos correctos.
  4. Categoriza de forma coherente: usa categorías consistentes para filtrar mejor.
  5. Incluye URL: las URL de producto permiten medir los clics.

Solución de problemas​

Los productos no aparecen​

  • Revisa la autenticación de la API.
  • Comprueba que el ID del espacio de trabajo sea correcto.
  • Confirma que los productos contienen los campos necesarios: externalId, name y price.

Las imágenes no cargan​

  • Comprueba que las URL de imagen sean accesibles públicamente.
  • Revisa los requisitos de HTTPS.
  • Asegúrate de que las URL de imagen no hayan caducado.

El estado de inventario es incorrecto​

  • Puede ser necesario ajustar el intervalo de sincronización.
  • Revisa la configuración del webhook.
  • Confirma que el seguimiento del inventario esté activado.

Siguientes pasos​