Índice
- Elige los topics que merecen interrumpirte
- Paso 1 — Crea el canal
- Paso 2 — Añade el webhook en Shopify
- Paso 3 — Pon en plantilla solo los campos que lees
- Paso 4 — Enruta por topic con una condición
- Despiértame solo por pedidos grandes
- Lo que esto no hace
- Preguntas frecuentes
- ¿Necesito una app de Shopify para esto?
- ¿Puede mi almacén ver los pedidos sin ver mi admin de Shopify?
- ¿Debo poner nombres de clientes en la notificación?
- ¿Puedo recibir una llamada por un contracargo?
- Cierre
- Contenido relacionado
Los correos de pedido de Shopify llegan cuando a tu aplicación de correo le apetece sincronizar, aterrizan en una carpeta que tienes filtrada, y se ven idénticos tanto si el pedido fue de 12 € como de 1.200 €. Si llevas la tienda tú, esa es la forma equivocada de señal.
Un webhook lo arregla. Shopify hará POST de cada pedido a la URL que elijas, y Echobell convierte ese POST en una notificación cuyo volumen decides tú.
Elige los topics que merecen interrumpirte
Shopify llama topics a los tipos de evento de webhook. Estos cuatro cubren casi cualquier tienda de una sola persona:
| Topic | Qué significa | Urgencia |
|---|---|---|
orders/create | Se hizo un pedido. | Normal |
orders/paid | El pago se completó. Usa este si solo te importa el dinero que realmente llegó. | Normal |
orders/cancelled | Un cliente canceló. Conviene saberlo antes de empaquetar. | Sensible al tiempo |
refunds/create | Se emitió un reembolso. | Sensible al tiempo |
Suscríbete a orders/create o a orders/paid, no a los dos, salvo que de verdad quieras dos notificaciones por venta. Para la mayoría de tiendas, orders/paid es el honesto.
Paso 1 — Crea el canal
Crea un canal en Echobell llamado por ejemplo "Pedidos Shopify", copia su URL de webhook y activa Solo POST. Shopify siempre envía por POST.
Si quieres un canal aparte y más ruidoso para cancelaciones y reembolsos, créalo ahora también y ponlo en sensible al tiempo.
Paso 2 — Añade el webhook en Shopify
En el admin de Shopify ve a Configuración → Notificaciones → Webhooks → Crear webhook. Elige el topic, pon el formato en JSON y pega la URL de tu canal.
Shopify envía un payload de prueba al guardar. Si te vibra el móvil, el camino funciona.
Paso 3 — Pon en plantilla solo los campos que lees
Los payloads de pedido de Shopify son largos: más de cien campos por pedido. Solo necesitas unos pocos:
Título
Pedido #{{order_number}} · {{total_price}} {{currency}}
Cuerpo
{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}
line_items es un array, así que line_items[0] es el primer artículo. Las plantillas de Echobell admiten acceso por índice, pero no hay bucles: un pedido de tres artículos muestra el primero y nada más. Si eso importa, pon el recuento al lado:
{{line_items[0].title}} · {{line_items.length}} artículos en total
A diferencia de Stripe, Shopify envía total_price como cadena decimal —"49.00", no 4900— así que se lee bien sin ninguna cuenta.
Paso 4 — Enruta por topic con una condición
Si apuntas varios topics al mismo canal, Shopify te dice cuál es cuál en una cabecera:
header["x-shopify-topic"] == "orders/paid"
Es la forma más limpia de separar comportamientos sin crear un webhook por canal en el admin.
Despiértame solo por pedidos grandes
El patrón que casi todo comerciante quiere de verdad: todos los pedidos van a un canal discreto y solo los que superan un umbral van a uno ruidoso.
Crea un segundo canal, ponlo en sensible al tiempo, apunta otro webhook de orders/paid hacia él y dale una condición:
total_price > 500
Ahora un día normal es un zumbido de fondo y un pedido de 900 € es algo que notas.
Lo que esto no hace
Sin verificación HMAC. Shopify firma cada webhook con la cabecera X-Shopify-Hmac-Sha256. Echobell no la verifica, así que la URL de tu canal es lo único que deja fuera a los desconocidos. Mantenla en secreto, deja Solo POST activado, y si una notificación de pedido falsificada causara un daño real, pon tu propio endpoint delante para verificar el HMAC y que sea él quien llame a Echobell.
Shopify puede entregar el mismo webhook dos veces. Reintenta ante fallos y los reintentos no se deduplican. Trata la notificación como un aviso para mirar el pedido, no como un recuento de pedidos. Tu admin de Shopify es la fuente de verdad.
Los topics de inventario se vuelven ruidosos rápido. inventory_levels/update se dispara con cada movimiento de stock, incluidas tus propias ediciones. Si quieres alertas de stock bajo, filtra con dureza o te arrepentirás antes de comer.
Preguntas frecuentes
¿Necesito una app de Shopify para esto?
No. Los webhooks bajo Configuración → Notificaciones vienen en el admin y no requieren app, ni cuenta de partner, ni código.
¿Puede mi almacén ver los pedidos sin ver mi admin de Shopify?
Sí. Comparte el canal con ellos. Reciben las notificaciones y nada más: sin acceso al admin y sin datos de clientes más allá de lo que incluya tu plantilla.
¿Debo poner nombres de clientes en la notificación?
Es decisión tuya, y conviene tomarla a conciencia. Todo lo que va en la plantilla aparece en la pantalla de bloqueo. El número de pedido y el total suelen bastar para actuar.
¿Puedo recibir una llamada por un contracargo?
Las disputas de Shopify Payments llegan por el topic disputes/create en tiendas que usan Shopify Payments. Apúntalo a un canal de llamada: es el único evento de pedido con una fecha límite asociada.
Cierre
Un webhook, una plantilla y una condición si quieres la versión ruidosa. Se tarda unos cinco minutos y sustituye a refrescar la página de pedidos.
Descarga Echobell para iPhone o consíguelo en Google Play, y luego haz un pedido de prueba y míralo llegar antes que el correo de confirmación.