Overview · Analytics

What is e-commerce analytics, and how do you build it in Metabase?

E-commerce analytics turns the activity in your store — orders, products, customers, discounts, and refunds — into shared metrics about how much you sell, how profitably, and how often buyers return. In Metabase, you build it by getting your store data into a SQL database, modeling a small set of clean tables, and standing up dashboards anyone can read.

TL;DR — Almost every store shares the same shape: orders, line items, products, customers, discounts, and refunds. Model that shape once and most metrics and dashboards port across platforms. Metabase reads SQL databases — hosted platforms (Shopify, BigCommerce) sync in first, while WooCommerce already lives in MySQL and can be queried directly.

What does e-commerce analytics measure?

It measures demand, profitability, and retention — not vanity traffic. The durable, leader-friendly questions are:

  • How much are we selling, and is it growing? (net revenue, orders, AOV)
  • Are buyers coming back? (repeat-purchase rate, cohorts)
  • What's actually profitable? (discount depth, refund rate, margin)
  • What's selling and what's stuck? (product performance, inventory turnover)
  • Where does the funnel leak? (conversion rate, cart abandonment)

Avoid vanity metrics (raw pageviews, gross revenue with no returns netted out). They're easy to inflate and rarely change a decision.

Which tools feed e-commerce analytics?

The same pattern applies to every store platform. Per-tool setup lives on each integration page:

ToolBest forGetting data into Metabase
ShopifyHosted stores of every sizeManaged connector, dlt, or Admin API; MCP for exploration
WooCommerceSelf-hosted WordPress storesQuery the MySQL database directly (read replica)
BigCommerceOpen-SaaS and headless buildsConnector, dlt, or REST/GraphQL API; managed MCP
commercetoolsComposable, API-first commerceExport API, GraphQL, or dlt; official Commerce MCP
MedusaOpen-source headless commerceQuery the PostgreSQL database directly (read replica)
VTEXEnterprise commerce & marketplaceOMS and Catalog APIs, or dlt; official Developer MCP
Amazon SellerAmazon marketplace sellersSP-API via connector or dlt; managed MCP
EtsyHandmade & craft marketplace sellersOpen API v3 via connector or dlt; managed MCP
eBayeBay marketplace sellersSell APIs via connector or dlt; managed MCP
KlaviyoEmail/SMS marketing attributionAPI or managed connector; official MCP with OAuth
GorgiasE-commerce support tied to ordersSync alongside store data to link support and revenue

What is the shared commerce data model?

Almost every store maps onto these entities. Model them as clean tables, not raw connector JSON:

ConceptCommon termsUsed for
OrderOrder, sale, transactionThe unit of sale
Line itemLine item, order product, order itemProduct and basket analysis
ProductProduct, variant, SKUCatalog performance
CustomerCustomer, contact, buyerRepeat purchase, cohorts
DiscountDiscount, coupon, price rulePromo depth and ROI
RefundRefund, return, creditNet revenue

The single most important decision is a consistent definition of net revenue and a fixed set of order statuses that count as "paid." With them, every card agrees; without them, sales numbers drift between reports.

Which e-commerce metrics matter most?

Define each one once and reuse the definition everywhere:

  • Net revenue — gross minus discounts and refunds; state your stance on taxes and shipping.
  • Average order value (AOV) — net revenue ÷ orders, computed at the order grain.
  • Repeat-purchase rate — share of customers with two or more paid orders in a window.
  • Conversion rate — orders ÷ sessions; needs storefront/analytics data joined in.
  • Revenue per visitor — net revenue ÷ sessions; ties demand to traffic.
  • Cart abandonment rate — abandoned ÷ started checkouts; needs checkout data.
  • Refund rate — refunded amount ÷ gross; break out by product.
  • Inventory turnover — units sold ÷ average units on hand; needs inventory snapshots.

How do you connect a store to Metabase?

Three routes, depending on the platform:

  1. Direct database — WooCommerce lives in MySQL, so Metabase queries a read replica directly, no ETL.
  2. Pipeline route (warehouse-backed) — sync hosted platforms (Shopify, BigCommerce) into a database with a managed connector, dlt, or the API, then build durable dashboards.
  3. MCP route (AI-assisted) — pair the platform's MCP server with the Metabase MCP server for live, exploratory questions. Treat it as exploratory, and remember it creates no history.

Which dashboards should you build first?

  • Store overview — net revenue, orders, AOV, and repeat-purchase rate in one exec roll-up.
  • Product / catalog performance — top SKUs, units, and refund rate.
  • Customers & cohorts — repeat purchase and revenue by acquisition month.
  • Discounts & refunds — promo depth and where revenue leaks.

Common mistakes

Reporting off raw connector tables.→ Model a thin clean layer first, with consistent order statuses and one definition of net revenue.
Reporting gross revenue as net.→ Subtract discounts and refunds; be explicit about taxes and shipping.
Averaging line-item prices for AOV.→ Compute AOV at the order grain, or multi-item baskets skew the number.
Comparing week-over-week through seasonal peaks.→ Compare like periods — this Black Friday vs. last — instead.
History-dependent metrics without history.→ Inventory turnover and cart abandonment need snapshots and checkout events — caveat them otherwise.

Integrations

FAQ

Does Metabase connect natively to Shopify or BigCommerce?
No. Metabase reads SQL databases and warehouses. Sync the platform's data into a database first, then connect Metabase to that database. WooCommerce is the exception — it already lives in MySQL, so Metabase can query it directly.
Can I use the same dashboards across store platforms?
Mostly yes, if you model each platform onto the shared commerce schema. Metric definitions and chart structure port across; only source-specific fields differ.
How do I measure conversion rate and cart abandonment?
Both need funnel data beyond orders. Join storefront sessions (from your web analytics) for conversion rate and revenue per visitor, and sync abandoned-checkout events for cart abandonment. Without them, caveat the metric.