
Para armar un dashboard de ventas en tiempo real para Shopify, conecto los pedidos por API o conector, recibo cambios por webhooks y concilio los totales con Shopify. Uso una actualización de 5 a 15 minutos como punto de partida: tiempo real no significa instantáneo.
Antes de publicarlo, reviso estos puntos:
Mi regla es simple: <u>primero compruebo los datos; después tomo decisiones</u>. Para leerlos sin confusiones, muestro los importes en ARS, los horarios en ART (UTC−3) y marco las métricas que todavía tienen datos pendientes.
Shopify: del pedido al dashboard de ventas confiable
Entrá a Analytics en el administrador de Shopify. Elegí las tarjetas de ventas, pedidos, ticket promedio y sesiones que tengas disponibles. Definí el período y activá una comparación si la opción está habilitada. Las opciones dependen del plan, los permisos y las funciones vigentes.
Estas vistas te sirven como referencia. Para conectar el dashboard externo, necesitás una app, un conector o una integración personalizada. Después, podés avanzar con la carga inicial y el registro de eventos.
Autorizá la integración con los permisos mínimos y definí la versión de la GraphQL Admin API. Hacé una carga histórica inicial con una fecha de corte e importá pedidos, líneas, transacciones, productos, variantes, clientes, inventario, descuentos, reembolsos, devoluciones y estados de preparación y envío. Si el volumen es grande, usá Bulk Operations. Guardá el último cursor o el avance para poder retomar una carga interrumpida.
Para actualizar los datos en tiempo real, registrá los eventos compatibles de pedidos, pagos, cobros o transacciones, preparación y envío, cancelaciones, reembolsos, devoluciones y ediciones. Luego, conciliá los cambios desde el corte inicial con los totales de Shopify.
En el endpoint HTTPS, verificá la firma HMAC sobre el cuerpo original antes de interpretar el contenido. Guardá cada entrega válida en una cola persistente y respondé rápido. Usá X-Shopify-Webhook-Id para detectar duplicados y procesá las actualizaciones por ID de Shopify: una actualización no es una venta nueva.
Aplicá reintentos con espera creciente y separá los errores persistentes. Consultá la API para confirmar estados y respetá sus límites. En GraphQL, el costo depende de los campos solicitados. Estos controles ayudan a mantener el dashboard al día sin duplicar ventas ni perder cambios.
Normalizá los registros, recalculá los indicadores afectados y publicá los valores junto con last_synced_at, data_as_of y el estado de procesamiento. No des por hecho que los eventos llegan en orden. Además, refunds/create no confirma que el reembolso se haya hecho efectivo. Separá el registro del reembolso de su estado financiero para no confundir ajustes de ventas con movimientos de dinero.
Con los eventos conectados, armá un diccionario único para que ventas, pedidos y atribución se midan con los mismos criterios. Registrá la fuente de cada campo y guardá las fechas y horas en UTC.
Los webhooks de pedidos no incluyen todas las sesiones ni la atribución completa. Obtené esos datos desde Analytics o desde eventos de la tienda, con los permisos y consentimientos correspondientes. Si usás Burbuxa, sumá los identificadores de conversación o automatización disponibles, pero no atribuyas toda venta asociada a esa fuente.
| Grupo | Campos que conviene guardar | Fuente |
|---|---|---|
| Pedido y estados | ID de Shopify, creación y actualización, moneda, ventas brutas, descuentos, impuestos, envío, aranceles cuando apliquen, ventas netas, estado financiero, estado de preparación y envío, cancelación, monto de reembolso, estado de devolución y canal de ventas | Pedidos, transacciones y eventos; confirmación por API |
| Líneas y productos | ID de línea, producto y variante; SKU, cantidad, precio unitario, descuento por línea, impuesto y costo unitario | Pedidos, productos e inventario |
| Atribución | Fuente de adquisición, UTM, campaña, canal, ID de conversación, ID de automatización e ingreso atribuido cuando esté disponible | Shopify y sistemas de marketing o conversaciones |
| Comportamiento | Sesiones y pedidos convertidos, con período y canal comparables | Shopify Analytics y eventos de la tienda consentidos |
| Control técnico | ID del evento, versión de API, hora de recepción, hora del evento, procesamiento, errores y última conciliación | Registro de la integración |
Con los pedidos y las sesiones sincronizados, unificá las reglas de cálculo antes de mostrar los KPIs.
Usá el mismo diccionario de métricas en todo el dashboard y dejá visibles la moneda, el período y la zona horaria en cada vista. Mostrá por separado la hora de actualización de pedidos, tráfico, atribución y costos. Si faltan datos, marcá la tarjeta como provisional. Aplicá estas reglas a cada métrica:
| Métrica | Fórmula | Campos necesarios | Actualización esperada | Qué indica |
|---|---|---|---|---|
| Ventas brutas | Precio unitario × cantidad, antes de descuentos, impuestos, envío, devoluciones y reembolsos | ID de pedido, líneas, cantidad, precio, fecha, estado e indicador de pedido de prueba | Tras el evento del pedido | Demanda antes de reducciones |
| Ventas netas | Ventas brutas − descuentos − devoluciones y reembolsos de artículos, sin duplicar ajustes | Ventas brutas, descuentos y ajustes por artículo | Tras cada ajuste | Ingreso neto por productos |
| Pedidos | Cantidad de IDs únicos válidos según la regla definida | ID de pedido, estado, canal, fecha e indicador de pedido de prueba | Al crear pedidos o cambiar su estado | Volumen de compra |
| Ticket promedio (AOV) | Ventas de artículos netas ÷ pedidos válidos | Ventas de artículos, descuentos e IDs de pedidos válidos según la regla definida | Tras crear el pedido | Valor promedio de compra |
| Conversión online | Sesiones de tienda online convertidas ÷ sesiones de tienda online × 100 | Sesiones, canal, fecha y vínculo con el pedido | Según la actualización del tráfico | Eficiencia del tráfico online |
| Margen bruto | (Ventas netas − costo de mercadería vendida (COGS)) ÷ ventas netas × 100 | Ventas netas, SKU, cantidad y costo unitario histórico | Al disponer de los costos | Rentabilidad del producto antes de gastos operativos |
Separá impuestos, envío, aranceles y cargos de las ventas de productos. Un reembolso de pago no siempre equivale a una devolución de productos: si devolvés solo el envío, las ventas netas no cambian.
Vinculá cada ajuste con su línea para no descontar dos veces una devolución y su reembolso. Definí también si el ajuste se registra en la fecha del pedido o en la del evento. Y evitá contar un pedido dos veces por sus estados: puede estar pagado y preparado al mismo tiempo. Para replicar las ventas brutas de Shopify, respetá su regla de inclusión de pedidos pendientes, cancelados y no pagados; excluí los de prueba y los eliminados.
Para replicar el AOV estándar de Shopify, tomá las “ventas de artículos netas” como ventas brutas menos descuentos, sin ajustes posteriores por ediciones o cambios. Dividí ese importe por los pedidos válidos según la regla definida. Ventas netas ÷ pedidos, con devoluciones y reembolsos incluidos, mide el ingreso neto por pedido: no es el mismo AOV.
Para calcular la conversión, usá el mismo período, canal y zona horaria en el numerador y el denominador. Si dividís pedidos de todos los canales por sesiones de la tienda online, llamá al resultado relación pedido/sesión.
Para el margen bruto, usá el costo histórico de cada SKU y aplicá reglas consistentes para impuestos y devoluciones. Revertí el costo asociado cuando corresponda. Este indicador muestra la rentabilidad del producto, pero no reemplaza un análisis financiero completo. Tampoco es lo mismo que el margen de contribución, que puede descontar comisiones, publicidad y otros costos variables.
Si faltan valores, mostrá costo sin cargar y la cobertura de costos. Nunca reemplaces un costo ausente por cero. Si el denominador es cero, mostrá N/D.
Habilitá filtros de fecha, canal, producto, SKU, campaña, dispositivo, cliente nuevo o recurrente, método de pago y estado de preparación y envío, solo donde la fuente los admita. Identificá las tarjetas que no puedan filtrarse.
Usá únicamente los identificadores de conversación o automatización que exporta Burbuxa y confirmá que estén disponibles. Definí la ventana de atribución y la regla para vincularlos con los pedidos. Después, deduplicá por ID de pedido, sumá el ingreso asignado según esa regla y separá el ingreso directo del asistido.
El ingreso asistido no demuestra ventas incrementales: para medirlas, necesitás una comparación o un experimento válido.[B1]
Con estas reglas, métricas y filtros definidos, revisá la consistencia de los resultados del dashboard y activá las alertas.
Con las métricas definidas, comprobá que los datos del dashboard coincidan con Shopify y que las alertas respondan a desvíos reales.
Compará pedidos, ventas brutas y netas, descuentos, reembolsos, impuestos, envío y ticket promedio con los reportes de Shopify. Acordá una tolerancia de revisión e investigá cualquier pedido que falte o aparezca de más.
Como referencia inicial, podés usar una tolerancia del 0,5 % en importes.
Revisá si los desvíos se deben a demoras de actualización, atribución o tipo de cambio.
Después, probá los cambios en los pedidos para confirmar que cada ajuste llegue a los totales correctos. En un entorno de prueba, verificá la creación del pedido, la captura del pago, los descuentos, la edición, la cancelación, la devolución, los reembolsos parciales y totales, la preparación del pedido y los ajustes de inventario y sincronización.
Estas pruebas deben comprobar el flujo de eventos que actualiza ventas, pedidos y ticket promedio (AOV) en tiempo real. Incluí eventos demorados, duplicados y fuera de orden. Procesá cada evento de forma idempotente: actualizá el pedido existente sin duplicarlo. Guardá el ID del evento y del pedido, las horas de origen y recepción, y el resultado del procesamiento. Si los eventos llegan desordenados, consultá el estado actual en Shopify.
Con los eventos validados, dejá a la vista del equipo el estado de sincronización y las alertas clave.
Mostrá por separado el último evento recibido, la última sincronización exitosa, el evento pendiente más antiguo y el retraso de procesamiento. Una tienda sin ventas no es lo mismo que una conexión caída. Usá como umbrales iniciales 5 minutos de retraso o 10 minutos sin actividad.
Para las alertas comerciales, compará períodos equivalentes. Configurá avisos cuando los pedidos estén un 30 % por debajo del período de referencia, el ticket promedio tenga un desvío superior al 20 % con al menos 30 pedidos, o el margen bruto caiga 5 puntos porcentuales. Incluí también alertas de tasa de reembolso e inventario. Para la tasa de conversión, exigí un volumen suficiente antes de activar una alerta.
Dejá claro quién se ocupa de cada tarea: analítica concilia los datos; integraciones mantiene las credenciales, los webhooks y los reintentos; el equipo comercial atiende las alertas; y el responsable de datos aprueba y versiona las definiciones. Guardá los tokens en un gestor de secretos, cifrá los datos en tránsito y en reposo, registrá los accesos y separá producción de pruebas.
Si faltan datos o los totales no cierran, revisá webhooks, firmas, permisos, tokens, cola pendiente, duplicados e IDs. Comprobá también la zona horaria, la moneda, el momento de registro de reembolsos y devoluciones, los costos faltantes, la definición de ventas y los retrasos de analítica.
Si la conversión cambia pero los pedidos no, verificá la cobertura de los eventos de analítica, las restricciones de consentimiento, la ventana de atribución, el seguimiento del checkout y las importaciones diferidas de sesiones.
Para reparar los datos, reprocesá solo los eventos fallidos, después de confirmar que el consumidor sea idempotente. Otra opción es recuperar los pedidos de un período acotado y actualizar cada uno por ID, sin volver a insertarlos. Conservá las fechas originales, identificá el lote y su responsable, recalculá las métricas afectadas y volvé a conciliar los totales con Shopify antes del lanzamiento.
Con los totales conciliados y las alertas activas, publicá el dashboard una vez que estén aprobadas las reglas de reporte y las fórmulas, la sincronización sea estable y los accesos estén limitados por rol. Reuní ventas, pedidos, ticket promedio, conversión, margen y estado de sincronización en una sola vista. Mostrá el día actual, un período equivalente y la tendencia de 7 o 30 días.
Asigná un responsable y un reemplazo para una revisión diaria de 10 minutos. Durante las primeras dos semanas, controlá la calidad de los datos. Después, mantené una conciliación semanal y revisá cada mes las fórmulas, los permisos y la atribución. Registrá cada desvío junto con su causa y la acción tomada.
Si recibís pedidos por WhatsApp e Instagram, usá Burbuxa como fuente de atribución solo para conversaciones y automatizaciones vinculadas con pedidos verificables de Shopify. Documentá el modelo y la ventana de atribución. Separá las ventas atribuidas de las asistidas y no vuelvas a sumarlas al total de ventas de Shopify. Marcá como no atribuidos los pedidos que no tengan un vínculo verificable.
La frecuencia depende de qué querés analizar y del ritmo de tu equipo: reportes diarios para ventas, semanales para rendimiento publicitario y mensuales para rentabilidad o inventario.
Si necesitás tomar decisiones en el momento, los webhooks permiten sincronizar datos en tiempo real, sin actualizaciones manuales. En dashboards dinámicos, los equipos que trabajan a un ritmo acelerado pueden apuntar a 4 a 6 actualizaciones diarias. Para monitorear campañas con datos en vivo, se recomienda usar DirectQuery.
Separá las ventas brutas/GMV (todo lo facturado) de las ventas netas (descontando devoluciones, cancelaciones y costos de envío). Para medir los ingresos por pedido, usá los valores registrados en Shopify al momento de la compra, no los precios actuales.
Configurá el dashboard en pesos argentinos (ARS), con formato local - por ejemplo, $ 1.234,56 - y zona horaria de Argentina. Así evitás inconsistencias al agrupar los datos y analizar el ticket promedio, la conversión y los márgenes sobre los ingresos reales.
Revisá los reportes automatizados de Burbuxa, sincronizados en tiempo real con Shopify, para seguir los ingresos de WhatsApp e Instagram sin cruzar datos a mano.
Desde tu panel, monitoreá los ingresos por conversación, el rendimiento de las difusiones y la recuperación de carritos abandonados. La atribución por flujo te permite ver qué campañas o automatizaciones convierten mejor. Además, el registro de acciones te permite auditar cómo las interacciones se traducen en ventas.