Parte de nuestra serie Data Analytics & BI
Leer la guía completaConexión de Shopify a Power BI para análisis avanzado
Los análisis integrados de Shopify cubren lo básico: tendencias de ventas, fuentes de tráfico, productos principales y tasas de conversión. Pero a medida que las tiendas crecen, las preguntas se vuelven más complejas: ¿Cuál es el LTV de 12 meses de los clientes adquiridos a través de TikTok en comparación con Google? ¿Qué categorías de productos tienen las tasas de devolución más altas? ¿Cómo se correlaciona la rotación de inventario con el momento de la promoción? ¿Cuál es la curva de retención de cohortes para suscriptores frente a compradores únicos?
Estas preguntas requieren Power BI, la herramienta que transforma los datos sin procesar de Shopify en inteligencia procesable. Esta guía cubre la integración completa: arquitectura de conexión de datos, medidas DAX clave para el comercio electrónico, diseño de paneles para la toma de decisiones operativas y patrones de análisis avanzados que los informes nativos de Shopify no pueden proporcionar.
Conclusiones clave
- El conector Power BI oficial de Shopify (a través de la API de Shopify o conectores de terceros) actualiza los datos en intervalos programados, no en tiempo real.
- La ruta de exportación de datos de Shopify más completa es: Shopify API → Azure Data Factory o ETL personalizado → Azure SQL Database → Power BI
- La API GraphQL Bulk Operations de Shopify es el método más eficiente para grandes exportaciones de datos históricos
- DAX es el lenguaje de consulta para las medidas de Power BI: las medidas clave de comercio electrónico (LTV, CAC, abandono, AOV) requieren un diseño DAX cuidadoso.
- El modelo de datos de esquema en estrella (tablas de hechos + tablas de dimensiones) es la estructura correcta para el análisis de comercio electrónico de Power BI
- El análisis de cohortes de clientes en Power BI requiere una tabla de fechas, una columna de asignación de cohortes y medidas de fechas relativas
- La actualización incremental de Power BI permite actualizaciones de datos diarias sin volver a procesar conjuntos de datos históricos completos
- Los paneles de control de múltiples fuentes que combinan Shopify con plataformas publicitarias (Meta, Google) permiten un verdadero análisis de atribución.
Arquitectura de datos de Shopify para Power BI
Antes de conectarse a Power BI, comprenda qué datos contiene Shopify y cómo extraerlos a escala.
Objetos de datos clave de Shopify:
| Objeto | Campos de interés | Volumen |
|---|---|---|
| Pedidos | id, creado_en, estado_financiero, estado_cumplimiento, precio_total, precio_subtotal, descuentos_totales, id_cliente, nombre_fuente, etiquetas | 1-100 mil por año para la mayoría de las tiendas |
| Ordenar líneas de pedido | order_id, product_id, variante_id, cantidad, precio, descuento_total, sku | Recuento de pedidos de 2 a 5 veces |
| Productos | ID, título, tipo_producto, proveedor, creado_en, publicado_en, etiquetas | 100-100K SKU |
| Variantes | product_id, sku, precio, comparar_al_precio, cantidad_inventario | Igual que productos × variantes |
| Clientes | ID, correo electrónico, creado_en, recuento_pedidos, total_gastado, etiquetas, acepta_comercialización | Base de clientes acumulada |
| Reembolsos | order_id, creado_en, total_reembolsado, reabastecimiento | 3-20% del recuento de pedidos |
| Niveles de inventario | inventario_item_id, ubicación_id, disponible | Instantánea en el momento de la extracción |
| Fuentes de tráfico | Google Analytics / GA4 (no en la API de administración de Shopify) | A través de exportación de datos GA4 |
Límites de tasa de API de Shopify para extracción de datos:
API REST: 2 solicitudes por segundo (grupo de 40). Para exportaciones de datos históricos de más de 50 000 pedidos, esto lleva horas y no es práctico para actualizaciones nocturnas.
API GraphQL con operaciones masivas: procesa todo el conjunto de datos de forma asincrónica y devuelve un archivo JSONL. Recomendado para todas las extracciones de datos históricos.
Opciones de arquitectura de extracción de datos:
Opción 1: Conector directo de Shopify en Power BI (Más simple)
Disponible a través de Obtener datos > Servicios en línea > Shopify de Power BI o mediante conectores de terceros como Coupler.io o Windsor.ai.
Ventajas: Configuración rápida (1-2 horas), no se requiere código Desventajas: profundidad de datos históricos limitada, uniones de tablas limitadas, actualización más lenta, sin transformación personalizada
Opción 2: ETL a través de una canalización de datos de terceros (recomendado para tiendas con ingresos de más de 1 millón de dólares)
Fivetran, Stitch, Airbyte o Windsor.ai extraen los datos de Shopify a un almacén de datos (BigQuery, Snowflake, Azure SQL) según un cronograma. Power BI se conecta al almacén.
Ventajas: datos históricos completos, consultas más rápidas, uniones de múltiples fuentes (Shopify + anuncios + reseñas), transformaciones personalizadas Desventajas: Costo adicional ($99-500+/mes para el servicio ETL), tiempo de configuración (1-2 semanas)
Opción 3: ETL personalizado con Azure Data Factory (Control máximo)
Cree una extracción personalizada utilizando la API GraphQL Bulk Operations de Shopify, transforme datos con Azure Data Factory, cárguelos en Azure SQL Database, conecte Power BI a través de DirectQuery o Import.
Ventajas: control total, máxima integridad de los datos, menor costo por consulta a escala Desventajas: tiempo de ingeniería (4-8 semanas), mantenimiento continuo
Modelo de datos de Power BI para el comercio electrónico de Shopify
Un modelo de datos bien estructurado es la base de una implementación de Power BI eficaz. Para el comercio electrónico, utilice un esquema en estrella.
Esquema de estrellas para Shopify:
Fact Tables (transactional data):
├── FactOrders (one row per order)
├── FactOrderLineItems (one row per line item)
├── FactRefunds (one row per refund)
└── FactInventorySnapshots (periodic snapshots)
Dimension Tables (descriptive data):
├── DimDate (calendar table — essential)
├── DimCustomers (one row per customer)
├── DimProducts (one row per product template)
├── DimVariants (one row per variant)
├── DimLocations (one row per Shopify location)
└── DimChannels (traffic sources / acquisition channels)
Esquema de la tabla FactOrders:
CREATE TABLE FactOrders (
order_id BIGINT PRIMARY KEY,
created_date_key INT, -- FK to DimDate
customer_id BIGINT, -- FK to DimCustomers
financial_status VARCHAR(20),
fulfillment_status VARCHAR(20),
gross_revenue DECIMAL(10,2),
discounts DECIMAL(10,2),
shipping DECIMAL(10,2),
taxes DECIMAL(10,2),
net_revenue DECIMAL(10,2),
order_number VARCHAR(20),
channel_source VARCHAR(50),
customer_cohort_month VARCHAR(7), -- Derived: YYYY-MM of first order
is_first_order BIT,
order_sequence INT, -- 1 = first order, 2 = second, etc.
tags VARCHAR(500)
);
Tabla DimDate (dimensión de calendario: obligatoria para la inteligencia de tiempo):
-- Generate dates from 2020-01-01 to 2030-12-31
CREATE TABLE DimDate (
date_key INT PRIMARY KEY, -- YYYYMMDD
full_date DATE,
year INT,
quarter INT,
month INT,
month_name VARCHAR(12),
week INT,
day_of_week INT,
day_name VARCHAR(12),
is_weekend BIT,
is_holiday BIT,
fiscal_year INT,
fiscal_quarter INT,
fiscal_month INT
);
Medidas clave de DAX para análisis de comercio electrónico
DAX (Expresiones de análisis de datos) es el lenguaje de fórmulas de Power BI. Estas medidas forman el núcleo de cualquier implementación de análisis de Shopify.
Medidas de ingresos:
-- Total Gross Revenue
Gross Revenue = SUM(FactOrders[gross_revenue])
-- Total Net Revenue (after discounts)
Net Revenue = SUM(FactOrders[net_revenue])
-- Total Discount Amount
Total Discounts = SUM(FactOrders[discounts])
-- Discount Rate
Discount Rate = DIVIDE([Total Discounts], [Gross Revenue])
-- Average Order Value
AOV = DIVIDE([Net Revenue], [Total Orders])
-- Revenue Growth (Year-over-Year)
Revenue YoY Growth =
VAR CurrentRevenue = [Net Revenue]
VAR PriorYearRevenue = CALCULATE([Net Revenue], SAMEPERIODLASTYEAR(DimDate[full_date]))
RETURN DIVIDE(CurrentRevenue - PriorYearRevenue, PriorYearRevenue)
Métricas de clientes:
-- Total Unique Customers (in selected period)
Total Customers = DISTINCTCOUNT(FactOrders[customer_id])
-- New Customers (first-time buyers)
New Customers = CALCULATE(
DISTINCTCOUNT(FactOrders[customer_id]),
FactOrders[is_first_order] = 1
)
-- Returning Customers
Returning Customers = [Total Customers] - [New Customers]
-- Repeat Customer Rate
Repeat Customer Rate = DIVIDE([Returning Customers], [Total Customers])
-- Average Customer Lifetime Value (LTV)
Customer LTV =
AVERAGEX(
VALUES(DimCustomers[customer_id]),
CALCULATE(SUM(FactOrders[net_revenue]))
)
-- Purchase Frequency (orders per customer per year)
Purchase Frequency =
DIVIDE(
[Total Orders],
[Total Customers]
)
Análisis de retención de cohortes:
-- Cohort Month (month of customer's first purchase)
-- This is a calculated column in FactOrders, set during ETL
-- Cohort Retention Rate at Month N
Cohort Retention Month 1 =
VAR CohortMonth = SELECTEDVALUE(FactOrders[customer_cohort_month])
VAR CohortCustomers =
CALCULATE(
DISTINCTCOUNT(FactOrders[customer_id]),
FactOrders[customer_cohort_month] = CohortMonth,
FactOrders[is_first_order] = 1
)
VAR Month1Returners =
CALCULATE(
DISTINCTCOUNT(FactOrders[customer_id]),
FactOrders[customer_cohort_month] = CohortMonth,
FactOrders[order_sequence] >= 2,
-- Orders within 30-60 days of first order
DATESINPERIOD(
DimDate[full_date],
DATE(LEFT(CohortMonth,4), RIGHT(CohortMonth,2), 1),
2, MONTH
)
)
RETURN DIVIDE(Month1Returners, CohortCustomers)
Medidas de inventario:
-- Current Total Inventory Value
Inventory Value =
SUMX(
DimVariants,
DimVariants[available_quantity] * DimVariants[cost]
)
-- Inventory Turnover Rate (annual)
Inventory Turnover =
DIVIDE(
[Gross Revenue], -- Or COGS if available
[Inventory Value]
)
-- Days of Inventory Remaining (at current sales velocity)
Days of Inventory =
VAR DailySalesRate = DIVIDE([Net Revenue], 365)
VAR CurrentInventoryValue = [Inventory Value]
RETURN DIVIDE(CurrentInventoryValue, DailySalesRate)
Diseño de panel: descripción general de ingresos
Diseño del panel de descripción general de ingresos:
Fila 1: Tarjetas KPI:
- Ingresos brutos (período actual)
- Ingresos netos (período actual)
- Órdenes totales
- AOV
- Nuevos clientes
- Tarifa de clientes repetidos
Fila 2 - Serie temporal:
- Ingresos a lo largo del tiempo (alternancia diaria/semanal/mensual)
- Órdenes a lo largo del tiempo
- tendencia AOV
Fila 3 - Desglose:
- Ingresos por tipo de producto (gráfico de barras horizontales)
- Ingresos por fuente de canal (pastel o donut)
- Ingresos por ubicación (si tiene varias ubicaciones)
Fila 4 - Comparación:
- Tabla de rendimiento mes a mes
- Comparación año tras año (año actual versus año anterior en el mismo período)
Configuración de la cortadora:
- Segmentación de rango de fechas (con períodos preestablecidos: este mes, el mes pasado, este trimestre, este año, personalizado)
- Filtro de tipo de producto
- Filtro de fuente de canal
- Filtro de segmento de clientes (nuevos versus recurrentes)
Panel de control de cohortes de clientes
El panel de retención de cohortes es el informe de mayor valor analítico para la toma de decisiones de comercio electrónico. Muestra, para cada mes de adquisición, qué porcentaje de clientes volvieron a comprar en los meses siguientes.
Diseño de tabla de cohortes en Power BI:
Cree una visualización matricial:
- Filas: Mes de cohorte (mes de la primera compra)
- Columnas: Mes 0, Mes 1, Mes 2, ... Mes 12 (en relación con la primera compra)
- Valores: Tasa de retención (porcentaje de la cohorte original que compró en ese mes)
Escala de colores: rojo (baja retención) → amarillo → verde (alta retención)
Esta visualización revela instantáneamente:
- Qué meses de adquisición tienen la mejor retención a largo plazo (qué campañas adquirieron los mejores clientes)
- Qué retención mes a mes cae más drásticamente (momento óptimo para campañas de recuperación)
- Si la retención mejora o se degrada con el tiempo (calidad del producto, señales de servicio al cliente)
Construyendo el modelo de datos de cohorte:
El análisis de cohortes requiere estos campos en FactOrders:
customer_cohort_month: AAAA-MM del primer pedido del cliente (constante por cliente, independientemente de cuándo se realizó el pedido actual)order_sequence: Número de pedido secuencial para este cliente (1 = primer pedido, 2 = segundo, etc.)months_since_first_order: Número de meses entre la fecha del primer pedido y la fecha de este pedido
Estos campos se calculan mejor durante ETL (fuera de Power BI) por motivos de rendimiento.
Análisis de múltiples fuentes: Shopify + Datos publicitarios
El uso más potente de Power BI para el comercio electrónico es combinar los datos de Shopify con los datos de la plataforma publicitaria para medir el verdadero retorno de la inversión del canal.
Fuentes de datos a integrar:
| Fuente | Datos | Método de integración |
|---|---|---|
| Shopify | Pedidos, clientes, productos | Conector nativo o ETL |
| Anuncios de Google | Gasto, clics, impresiones, conversiones | Conector de Google Ads |
| Metaanuncios | Gasto, alcance, conversiones, ROAS | Conector de anuncios de Facebook |
| Anuncios de TikTok | Gasto, vistas, clics | API personalizada o Funnel.io |
| Google Analytics 4 | Sesiones, tráfico, eventos | Exportación de BigQuery GA4 |
| Klaviyo | Métricas de correo electrónico, atribución de ingresos | Klaviyo → Fivetran |
Panel de eficiencia de marketing:
| Métrica | Cálculo |
|---|---|
| Canal CAC | Inversión publicitaria del canal/Nuevos clientes del canal |
| ROAS del canal | Ingresos del canal/Inversión publicitaria del canal |
| Relación LTV/CAC del canal | LTV de 12 meses del Canal / Canal CAC |
| CAC combinado | Gasto total en marketing/Total de nuevos clientes |
| Período de recuperación | Canal CAC / Ingresos Netos Mensuales por Cliente |
Conectar el gasto en publicidad con los datos del pedido de Shopify requiere una coincidencia de parámetros UTM: los datos de la sesión GA4 unen el clic publicitario con el pedido de Shopify.
Actualización programada e implementación de producción
Configuración del servicio Power BI para Shopify:
- Publique su archivo de Power BI Desktop en el servicio Power BI (app.powerbi.com)
- Configure una puerta de enlace de datos si su fuente de datos es local (normalmente no es necesaria para Shopify en la nube → SQL en la nube)
- Programe la actualización de datos: la mayoría de los paneles de análisis de Shopify funcionan bien con la actualización nocturna (4 a. m. UTC cuando el tráfico es más bajo)
- Configure la actualización incremental para tablas grandes (pedidos): procese solo los últimos 30 días en cada actualización, conserve 2 años de datos históricos
- Configure notificaciones por correo electrónico sobre fallas de actualización
Configuración de actualización incremental:
-- Power Query: Define RangeStart and RangeEnd parameters
-- Set type: Date/Time, required
-- Filter table during import using these parameters:
#"Filtered Rows" = Table.SelectRows(
Source,
each [created_at] >= RangeStart and [created_at] < RangeEnd
)
En el servicio Power BI, configure:
- Filas de tiendas en los últimos: 2 años (retención histórica)
- Actualizar filas en los últimos: 30 días (ventana incremental)
Esto significa que cada actualización solo consulta los datos de Shopify de los últimos 30 días, lo que reduce drásticamente las llamadas a la API y el tiempo de actualización en comparación con la actualización completa del conjunto de datos.
Preguntas frecuentes
¿Cuál es el mejor conector para obtener datos de Shopify en Power BI?
Para tiendas con ingresos inferiores a 1 millón de dólares o menos de 10 000 pedidos: Coupler.io, Windsor.ai o el conector nativo Shopify Power BI de Microsoft AppSource funcionan bien y requieren una configuración mínima. Para tiendas más grandes donde la integridad de los datos y la confiabilidad de la actualización son importantes: Fivetran o Stitch proporcionan una canalización ETL sólida a un almacén de datos, con Power BI conectado al almacén. El enfoque de almacén agrega costos ($200-1000+/mes) pero proporciona una calidad de datos significativamente mejor, consultas más rápidas y la capacidad de unir datos de Shopify con otras fuentes de datos comerciales.
¿Puede Power BI mostrar datos de Shopify en tiempo real?
No a través del modo de importación estándar. El modo de importación de Power BI carga una instantánea de los datos que se actualiza según una programación (máximo 8 veces al día en Power BI Pro, 48 veces en Premium). Para datos de Shopify casi en tiempo real, use el modo Power BI DirectQuery conectado a una base de datos que recibe eventos de webhook de Shopify en tiempo real. Esto requiere más infraestructura, pero permite paneles de control que muestran datos a los pocos minutos de realizar el pedido. Para la mayoría de las decisiones de comercio electrónico (que no requieren una actualización de los datos en menos de una hora), la actualización diaria es suficiente.
¿Cómo atribuyo los ingresos de Shopify a campañas publicitarias específicas en Power BI?
La atribución requiere conectar tres fuentes de datos: datos de la plataforma publicitaria (Google Ads, Meta Ads: gasto por campaña), datos de sesión GA4 (sesiones con parámetros UTM de campaña → conversiones) y datos de pedidos de Shopify (pedidos con parámetros UTM en etiquetas de clientes o atributos de pedidos). Utilice los parámetros UTM de pedidos (capturados a través del campo landing_site de Shopify) para atribuir pedidos a campañas. Únase a esto con datos de inversión publicitaria para calcular el CAC y el ROAS a nivel de campaña. La atribución completa requiere aceptar que el seguimiento UTM captura entre el 60% y el 80% de las conversiones; el resto es directo o entre dispositivos.
¿Qué funciones DAX son más útiles para el análisis de comercio electrónico?
Las funciones DAX más valiosas para el comercio electrónico: CALCULATE (aplica filtros a cualquier medida), FILTER (crea contexto filtrado), SUMX / AVERAGEX (itera sobre tablas con cálculo a nivel de fila), DATESINPERIOD / DATEADD / SAMEPERIODLASTYEAR (inteligencia de tiempo), DIVIDE (división segura que maneja denominadores cero), RANKX (clasificación de productos/clientes/canales), DISTINCTCOUNT (cuenta clientes/productos únicos) y RELACIONADO (acceda a columnas de tablas de dimensiones relacionadas). Dominar estas 10 funciones cubre el 80% de los requisitos analíticos del comercio electrónico.
¿Cómo manejo las múltiples monedas de Shopify en Power BI?
Las tiendas Shopify multidivisa presentan un desafío: los pedidos se registran en la moneda de la transacción, pero los informes necesitan una moneda base única. Durante ETL, convierte todos los montos de los pedidos a tu moneda base usando: (1) los campos presentment_money vs shop_money de Shopify (Shopify ya convierte al tipo de cambio al momento del pedido), o (2) una tabla de tipos de cambio con tasas diarias, aplicando la tasa para la fecha de cada pedido. Utilice los campos shop_money de Shopify (que representan montos en la moneda base de su tienda) como cifras de informes en Power BI para evitar la complejidad del tipo de cambio manual.
Próximos pasos
Conectar Shopify a Power BI para análisis avanzados requiere experiencia en ingeniería de datos, fluidez en DAX y habilidades de diseño de paneles que brinden información procesable en lugar de volcados de datos.
Los servicios Power BI y los servicios Shopify de ECOSIRE incluyen arquitectura de integración de datos de Shopify, desarrollo de paneles de Power BI para análisis de comercio electrónico, implementación de análisis de cohortes, atribución de marketing de múltiples fuentes y soporte de análisis continuo.
Programe una consulta de análisis de Shopify para analizar la creación de una pila de análisis de Power BI para su tienda Shopify.
Escrito por
ECOSIRE Research and Development Team
Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.
Artículos relacionados
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: eCommerce Migration to Shopify with Odoo Backend
How a fashion retailer migrated from WooCommerce to Shopify and connected it to Odoo ERP, cutting order fulfillment time by 71% and growing revenue 43%.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
Más de Data Analytics & BI
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.
GoHighLevel Reporting and Analytics: Measuring What Matters
Master GoHighLevel reporting and analytics. Learn to build custom dashboards, track ROI across channels, measure funnel conversion, and make data-driven marketing decisions.
Odoo Events Module: Planning, Registration, and Analytics
Complete guide to Odoo 19 Events: create events, manage registrations, sell tickets, track attendance, and analyze event ROI with native ERP integration.
Odoo + Power BI: Complete Analytics Integration Guide
Connect Odoo 19 to Power BI for enterprise analytics. Covers DirectQuery, Import mode, data modeling, DAX measures, live dashboards, and deployment architecture.