How do you analyze e-commerce data in Metabase?
Store platforms like Shopify, WooCommerce, and BigCommerce hold the record of every order, product, and customer. To analyze them in Metabase, you get the data into a SQL database — synced for hosted platforms, or read directly for self-hosted WooCommerce — map its objects to a shared commerce model, and build dashboards on top.
Which tools does this cover?
This pattern applies to hosted and self-hosted store platforms, including:
- Shopify — orders, line items, products, customers, refunds; sync via managed connector, dlt, or the Admin API
- WooCommerce — runs on WordPress/MySQL, so Metabase can query the store database directly (HPOS + analytics lookup tables)
- BigCommerce — open-SaaS orders, order products, customers, and channels; sync via connector, dlt, or the REST/GraphQL API
- commercetools — headless, composable commerce; sync via the Export API, GraphQL, or dlt
- Medusa — open-source headless commerce on PostgreSQL, so Metabase can query the database directly
- VTEX — enterprise commerce and marketplace; sync via the OMS and Catalog APIs or dlt
Marketplaces follow the same model, with fees and settlements added:Amazon Seller (SP-API), Etsy, and eBay.
Support, payments, and marketing data pairs naturally with store data — see Klaviyo for email/SMS revenue attribution and Gorgias for e-commerce support tied to orders.
What is the shared commerce data model?
Almost every platform maps onto these entities. Model them as clean tables, not raw connector JSON:
| Concept | Shopify term | WooCommerce term | Used for |
|---|---|---|---|
| Order | Order | Order (shop_order) | The unit of sale |
| Line item | Line item | Order item | Product & basket analysis |
| Product | Product / variant | Product | Catalog performance |
| Customer | Customer | Customer | Repeat purchase, cohorts |
| Discount | Discount / price rule | Coupon | Promo depth and ROI |
| Refund | Refund | Refund | Net revenue |
The single most important decision is a consistent definition of net revenue (gross − discounts − refunds, with an explicit stance on taxes and shipping) and a fixed set of order statuses that count as "paid." Define both once and reuse them everywhere.
How do you connect a store to Metabase?
- Direct database (WooCommerce) — because WooCommerce data lives in MySQL, Metabase can query a read replica directly, no ETL required.
- Pipeline route (hosted platforms) — sync Shopify or BigCommerce into a database with a managed connector, dlt, or the API, then build durable dashboards.
- MCP route (AI-assisted) — pair the platform's MCP server (official or managed) with the Metabase MCP server for fast, exploratory questions. Treat it as exploratory, not governed reporting.
See the per-tool setup on the Shopify, WooCommerce, and BigCommerce pages, or the e-commerce analytics overview for the full pattern.
What can you analyze across store platforms?
- Sales — net revenue, orders, and AOV over time
- Retention — repeat-purchase rate and customer cohorts
- Catalog — top products, units, and refund rate by SKU
- Promotions — discount depth and coupon ROI
- Margin leaks — refunds, returns, and shipping costs
Which dashboards should you build?
- Store overview — net revenue, orders, AOV, and repeat-purchase rate
- Product / catalog performance— top SKUs, units, and refund rate
- Customers & cohorts — repeat purchase and revenue by acquisition month
- Conversion funnel — session-to-purchase drop-off and checkout completion