Desencadenantes personalizados de la tienda

Los desencadenantes integrados de la tienda online abarcan los eventos que recoge Shopify. Un desencadenante personalizado de la tienda online abarca todo lo demás que ocurre en tu tienda online: publicas un evento desde tu plantilla con una sola línea de JavaScript y este se convierte en un desencadenante que puedes utilizar en Shopify Flow.

El ejemplo más claro es el cajón del carrito. El evento «cart view» de Shopify se activa en la página /cart, y la mayoría de los temas modernos nunca navegan hasta allí, sino que, en su lugar, abren el cajón mediante un efecto de deslizamiento. Shopify no registra nada, por lo que ninguna aplicación puede verlo. Publicar tu propio evento cuando se abre el cajón permite subsanar esa carencia.

Otros usos que le dan las tiendas:

  • Añadirlo a la lista de deseos o hacer clic en «Notificarme», acciones de las que Shopify no informa.
  • Se ha abierto una guía de tallas o una política de devoluciones, como indicación sobre un producto.
  • Un** cambio** en el selector, que no supone una nueva vista de la página (véase Condiciones de activación de Storefront).
  • Cualquier dato que tu tema o una aplicación de terceros ya conozca y que Shopify no conozca.

Cómo funciona

  1. Crea el disparador en la aplicación y asígnale un nombre de evento; por ejemplo, cart_drawer_opened. Al igual que todos los disparadores de Storefront, necesita el acceso a «Storefront Behaviour», que se concede una sola vez en la página «Permisos».
  2. Copia el fragmento de código de una línea que te muestra la aplicación y pégalo en tu tema, en el lugar donde se produzca ese problema. Si no estás seguro de qué pegar o dónde, Generar código de activación con IA genera el fragmento de código para tu tema a partir de una descripción en lenguaje sencillo.
  3. Escribe una transformación si quieres filtrar o modificar el contenido que se envía, o déjalo en blanco para reenviar todo.
  4. Actívalo y, a continuación, añade un «Desencadenador de tienda personalizada» en Flow y crea una rama según el nombre del evento.

El fragmento de código es toda la integración por parte del tema:

El editor de activadores personalizados de la tienda, con el nombre, el nombre del evento y el fragmento de código que se va a añadir al tema
Un disparador de tienda personalizada: el nombre del evento es el que publica tu tema, y el editor te proporciona el fragmento de código que debes copiar.
Publish the event from your themejavascript
Shopify.analytics.publish("cart_drawer_opened", {
  // anything you want the Flow to receive
  itemCount: 3,
  total: "129.90"
});

Nombre del evento

El nombre del evento es lo que determina las ramificaciones de tu flujo de trabajo en Flow, así que elige algo que sea fácil de entender y no lo modifiques una vez que los flujos de trabajo lo estén utilizando.

Los nombres pueden contener letras, números, guiones bajos y guiones; deben empezar por una letra o un número, y pueden tener hasta 64 caracteres. La aplicación convierte lo que escribes en un «slug», por lo que Cart drawer opened se convierte en cart_drawer_opened.

El nombre tiene un espacio de nombres interno, por lo que nunca puede solaparse con un evento de Shopify ni con un disparador personalizado de webhook del mismo nombre.

Filtrado y remodelación

Los datos que pasas como segundo argumento llegan a Flow como el output del disparador. Si eso es todo lo que necesitas, ya está.

Si quieres activar eventos solo en determinados casos, o enviar campos distintos a los que publica el tema, escribe una transformación - el mismo módulo de JavaScript que utiliza Desencadenantes personalizados - . Devuelve un objeto para activar el evento, y devuelve null para omitirlo:

Only fire for drawers worth acting onjavascript
export async function transform(payload, topic, shop, ctx) {
  // Anything you published is on `payload`.
  if ((payload.itemCount || 0) < 2) return null;

  return {
    itemCount: payload.itemCount,
    total: payload.total,
    // Present only when the shopper is signed in.
    customerId: payload.customerId,
  };
}

Cómo utilizarlo en Shopify Flow

Todos los «Custom Storefront Trigger» se importan a Flow con el mismo nombre: «Custom Storefront Trigger». Añádelo a un flujo de trabajo y, a continuación, añade una condición en la que «eventName» sea igual al nombre que hayas elegido.

Eso es lo que permite que un «Flow» active todos los eventos de tu tienda online. El activador también incluye el nombre que le has dado en la aplicación y el resultado de tu transformación.

Se ha separado deliberadamente de «Custom Trigger», que da soporte a los eventos de tienda (Desencadenantes personalizados) basados en webhooks. Ambos se diferencian en un aspecto que conviene conocer: un disparador personalizado de webhook se ejecuta en nuestros servidores y es fiable, mientras que un evento de tienda depende de que el navegador del comprador nos envíe la información y de su consentimiento para el uso de datos analíticos.

Qué no hay que enviar

El segundo argumento de la función publish está totalmente bajo tu control, lo que significa que es tu responsabilidad asegurarte de que no contenga datos personales.

Envía los identificadores y los datos: los ID del producto y de la variante, las cantidades, los precios y el nombre del incidente. El ID del cliente que ha iniciado sesión se añade automáticamente cuando existe, por lo que nunca tendrás que indicarlo tú mismo.

No envíes nombres, direcciones de correo electrónico, números de teléfono ni direcciones postales. Tu flujo de trabajo puede obtener cualquiera de esos datos a partir del identificador de cliente en Flow, por lo que no se gana nada al incluirlos en un evento de la tienda virtual, y hacerlo convierte un evento de análisis en uno que contiene datos personales.

¿Se descuenta de mi saldo del plan?

Sí. Todos los eventos que nos llegan cuentan, incluidos aquellos que tu transformador omite al devolver un valor null; se aplica la misma regla que en Desencadenantes personalizados. Los eventos descartados en el navegador por falta de consentimiento nunca nos llegan y nunca cuentan.

Como eres tú quien decide dónde se inserta el fragmento de código, controlas directamente el volumen. Un evento de apertura de cajón se activa con mucha menos frecuencia que una visualización de producto.

¿Puedo publicar el mismo evento desde más de un sitio?

Sí. Lo importante es el nombre, no desde dónde se publica. Incluir información en la carga útil que indique su procedencia es una buena idea si quieres que el flujo de trabajo pueda distinguirlos.

¿Se considerará un solo evento que se abran dos cajones?

No. Los eventos deliberados se mantienen diferenciados, ya que publicarlos dos veces suele significar que realmente ocurrieron dos veces. Esto difiere de los desencadenantes integrados, que agrupan las repeticiones de la misma visita a la página.

¿Puedo cambiar el nombre del evento más adelante?

Puedes hacerlo, pero tu flujo de trabajo de Flow aplica un filtro en función de ese nombre, por lo que, si lo cambias, el flujo dejará de ejecutarse hasta que actualices la condición; además, tendrás que actualizar el fragmento de código de tu tema para que coincida. Considera que el nombre es fijo una vez que un flujo de trabajo lo utiliza.

¿Cómo puedo probarlo antes de que se publique en mi tienda?

La página del disparador en la aplicación incluye una prueba que ejecuta tu transformación y activa tu flujo de trabajo de Flow, para que puedas ver cómo se ejecuta de principio a fin sin tener que modificar tu tema. Las pruebas no consumen tu cupo.

Una vez que el fragmento de código esté en tu tema, la página «Historial de eventos» mostrará los eventos reales a medida que se produzcan.

¿Funciona en las páginas de pago?

Al publicar desde el código de tu propia plantilla, se muestra la página principal de tu tienda. El proceso de pago se gestiona a través de Shopify y no es posible añadir código de la plantilla en esa página; por lo tanto, utiliza en su lugar los disparadores integrados «Error en el proceso de pago» y «Código de descuento rechazado en el proceso de pago».

Próximos pasos