BigCommerce × Metabase

How to build BigCommerce dashboards in Metabase

BigCommerce is an open-SaaS commerce platform that runs storefronts and headless builds alike, holding the record of every order, product, and customer. Metabase is where you turn that activity into shared, trustworthy dashboards. This guide covers two complementary paths: a lightweight MCP + CLI route that pulls live data with the BigCommerce MCP and loads a CSV into Metabase with the Metabase CLI for quick analysis, and a durable pipeline route that syncs BigCommerce into a database so you can build dashboards anyone can read.

Heads up: Metabase connects to databases and warehouses — it does not ship a native BigCommerce connector. For dashboards that need history and reliability, you'll sync BigCommerce into a database first (covered below).

How do you connect BigCommerce to Metabase?

Most teams combine both routes: use the BigCommerce MCP and Metabase CLI route to pull live data and stand up a quick analysis, and the pipeline route for the dashboards people depend on.

1 · MCP + CLI route (AI-assisted)

Live data in, quick analysis out

Pair a BigCommerce MCP server (to read live order, catalog, and customer data) with the Metabase CLI, whose upload command loads a CSV into Metabase as a ready-to-query table and model.

Best for
  • Quick lookups like "top products this week?"
  • Loading a BigCommerce CSV export into Metabase in seconds
  • Spot-checks on orders, catalog, and customers without a warehouse
Trade-offs
  • Great for exploration, not governed reporting
  • Use read-only mode on the BigCommerce MCP to avoid accidental writes
  • CSV uploads are snapshots — refresh or move to the pipeline for history
2 · Pipeline route (warehouse-backed)

Durable dashboards with history

Sync BigCommerce into a database or warehouse with a managed connector, dlt, or the REST/GraphQL API, then point Metabase at it.

Best for
  • Sales, AOV, and cohort dashboards leaders depend on
  • Joining orders with marketing, support, and finance data
  • Peak-season comparisons across quarters and years
Trade-offs
  • You own the refresh schedule and the data model
  • Reconcile refunds, taxes, and discounts to report net revenue
  • Capture order products to analyze basket and catalog behavior

What can you analyze from BigCommerce data in Metabase?

  • Sales — net revenue, orders, and AOV over time
  • Repeat purchase — how many buyers come back, and how fast
  • Catalog performance — top SKUs, units, and refund rate
  • Sales channels — revenue split across storefronts and channels
  • Customer groups — B2B/wholesale vs. retail revenue mix
  • Discounts & refunds — depth, coupons, and where revenue returns

Which BigCommerce dashboards should you build in Metabase?

For: Store owners

Store overview

The daily pulse of sales and demand.

  • Net revenue vs. prior period (number + trend)
  • Orders per day (line)
  • Average order value (number + trend)
  • New vs. returning customer revenue (bar)
For: Merchandising

Catalog performance

What's selling across the catalog.

  • Top products by net revenue (bar)
  • Units sold by SKU (table)
  • Refund rate by product (bar)
  • Inventory on hand vs. sell-through (table)
For: Growth / retention

Customers & repeat purchase

Are buyers coming back?

  • Repeat-purchase rate by cohort (line)
  • Orders per customer distribution (bar)
  • Customer group revenue mix (bar)
  • Revenue by acquisition month (cohort table)
For: Ops & finance

Channels & margin

Where sales come from, and what's left.

  • Revenue by sales channel (bar)
  • Discount depth as % of gross (line)
  • Refunds by week (line)
  • Shipping and handling as % of order (table)

How do you use the BigCommerce MCP server with the Metabase CLI?

Pair a BigCommerce MCP server with the Metabase CLI for fast, hands-on analysis. There's no first-party BigCommerce MCP today, so most teams connect the BigCommerce API through a managed MCP such as Pipedream to read live order, catalog, and customer data; the Metabase CLI's uploadcommand loads a CSV into Metabase and creates a ready-to-query table and model. For analysis, connect BigCommerce in read-only mode.

Example workflow

  • Ask the BigCommerce MCP which products drove the most revenue this week.
  • Export the orders or catalog performance you want to keep as a CSV.
  • Run mb upload csv to load it into Metabase as a table and model, then build questions and dashboards on top.

Be honest about the limits

  • The BigCommerce MCP is great for live lookups — not for scheduled or audited reporting.
  • A CSV upload is a point-in-time snapshot; refresh it with mb upload replace or move to the pipeline for real history.
  • No first-party MCP exists yet; a managed connector such as Pipedream fills the gap, so use its read-only option so analysis can't trigger writes.
  • mb upload csv needs an uploads database configured under Admin → Settings → Uploads.

How do you set up the BigCommerce MCP server and the Metabase CLI?

BigCommerce MCPmanaged

Endpoint
https://mcp.pipedream.net/v2
Transport
Streamable HTTP
Auth
Connect BigCommerce inside Pipedream, then use the URL
Scope
REST API actions — orders, products, customers

Metabase CLIofficial

Install
npm install -g @metabase/cli
Auth
mb auth login (browser OAuth on v62+, or an API key)
Load data
mb upload csv --file data.csv
Requires
An uploads database (Admin → Settings → Uploads)
Cursor~/.cursor/mcp.json or .cursor/mcp.json
{
  "mcpServers": {
    "bigcommerce": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.pipedream.net/v2"
      ]
    }
  }
}
TerminalLoad a BigCommerce CSV with the Metabase CLI
# Install the Metabase CLI
npm install -g @metabase/cli

# Log in (opens your browser; requires Metabase v62+)
mb auth login --url https://your-metabase.example.com

# Load a BigCommerce CSV export — creates a table AND a model
mb upload csv --file bigcommerce-orders.csv --collection root

# Refresh that same table later from a new export
mb upload replace <table-id> --file bigcommerce-orders.csv

Connect your BigCommerce store inside Pipedream first, then use the static MCP URL; on first connection the server opens a browser window to authorize. The Metabase CLI stores its credentials securely after mb auth login.

Verify before shipping: confirm an uploads database is enabled under Admin → Settings → Uploads (Metabase docs) and the BigCommerce API reference in the BigCommerce developer docs.

Can you generate a BigCommerce dashboard with AI?

Yes. Use the prompt below with any assistant that can run the BigCommerce MCP server and the Metabase CLI. It works end to end: if BigCommerce tables already exist in Metabase it analyzes those; otherwise it pulls the data over the BigCommerce MCP, loads it with mb upload csv, then builds the dashboard — reporting net revenue and skipping cards it has no data for.

Prompt for creating a BigCommerce Store Overview dashboard
Create a polished Metabase dashboard for BigCommerce ecommerce analytics.
Work end to end: get the data into Metabase if it isn't there yet, then build.

Goal: Help store operators understand sales, average order value, repeat purchase,
catalog performance, and discounts/refunds from BigCommerce data.

Step 1 — Find or load the data:
- First, check what already exists in Metabase (search for BigCommerce tables and
  models). If durable BigCommerce data is already present — synced from a warehouse
  or uploaded earlier — use it and skip to Step 2.
- If nothing is there, pull it with the BigCommerce MCP server in read-only mode:
  orders, order products (line items), products, customers, and (if present) sales
  channels and inventory. Write each result to a CSV, then load it with the Metabase
  CLI — run "mb upload csv --file <export>.csv" so each upload creates a table and a
  ready-to-query model. Use "mb upload replace <table-id> --file <export>.csv" to
  refresh an existing table instead of creating duplicates.

Step 2 — Inspect before querying:
BigCommerce CSV exports are usually flat and pre-aggregated (one row per order or
product, with columns like order total, refunded amount, units, and net revenue).
Warehouse tables are raw and order-grained (join orders to order_products for
line-item detail, filter by status_id for paid orders). Inspect the actual tables
and column names first; do not assume exact names.

Important:
- Build on whatever data is present; don't claim Metabase connects natively to
  BigCommerce — it reads a database or CLI-uploaded tables.
- Report NET revenue: subtract refunds, discounts, and (per your policy) taxes and
  shipping. State the definition on the dashboard.
- Use order-level grain for AOV.
- Count only completed/awaiting-fulfillment orders, not incomplete or cancelled.
- Define a "repeat customer" once (2+ paid orders) and reuse it everywhere.
- Only build a card if its underlying column/metric exists in the data.
- A single CSV is a point-in-time snapshot: only build trend cards if there is a
  usable date column or multiple periods have been uploaded.

Dashboard title: BigCommerce Store Overview

Sections:
1. Executive summary (KPI cards): Net revenue last 30 days; Orders; AOV; Repeat-
   purchase rate; Refund rate.
2. Sales & demand: Net revenue by day; Orders by day; AOV trend; New vs returning
   revenue.
3. Catalog performance: Top products by net revenue; Units by SKU; Refund rate by
   product.
4. Customers & retention: Repeat-purchase rate by cohort; Orders per customer;
   Revenue by acquisition month; Customer group mix.
5. Channels & margin: Revenue by sales channel; Discount depth; Refunds by week.

Filters: Date range, Sales channel, Product category, Customer group, Coupon.

Reuse the models Metabase auto-created from uploaded CSVs, or (for a warehouse)
create reusable models: modeled_bc_orders, modeled_bc_order_products,
modeled_bc_products, and modeled_bc_customers.

Output: Build the dashboard if you have permission; otherwise provide the exact
questions, SQL, model definitions, and layout. Include caveats for any metric
that cannot be calculated from the available data. Keep it practical, dense,
and executive-readable. Avoid vanity metrics.

How do you sync BigCommerce data into a database or warehouse?

For dashboards that need history and reliability, land BigCommerce data in a database first, then connect Metabase to that database.

Connector options

  • Managed ETL — check whether your ETL vendor (Fivetran, Airbyte, and others) offers a BigCommerce source; availability varies, so confirm before relying on it.
  • dlt(code) — write a Python pipeline against the BigCommerce API for full control over tables and refresh.
  • BigCommerce REST/GraphQL API(raw) — the source of truth; paginate orders, order products, products, and customers and upsert on a schedule.
  • Store alongside adjacent data — sync ad spend, support, and finance so you can join orders to acquisition and service.

Notes

  • Land raw tables first, then build clean models on top.
  • Capture refunds and discounts so you can report net — not gross — revenue.
  • The Orders API and the separate Order Products endpoint together give you line-item detail.

How should you model BigCommerce data in Metabase?

Core tables

TableGrainKey columns
ordersone row per orderid, customer_id, date_created, total_inc_tax, status_id, refunded_amount
order_productsone row per lineorder_id, product_id, sku, quantity, total_inc_tax
productsone row per productid, name, sku, categories
customersone row per customerid, email, customer_group_id, date_created
transactionsone row per transactionorder_id, amount, gateway, status

Modeling advice

  • Normalize status_id to labels (Completed, Awaiting Fulfillment, Refunded, Cancelled) and decide which count as "paid."
  • Define net revenue once (gross − discounts − refunds) and reuse it.
  • Compute AOV at the order grain, not by averaging line prices.
  • Treat order_products as the bridge between orders and products for basket analysis.
  • Use customer_group_id to separate B2B/wholesale from retail.

Which BigCommerce metrics should you track in Metabase?

MetricDefinitionNotes
Net revenueGross − discounts − refunds.State whether taxes/shipping are included.
Average order value (AOV)Net revenue ÷ orders.Order grain; segment by channel/group.
Repeat-purchase rateCustomers with 2+ paid orders ÷ all.Fixed window; watch by cohort.
Refund rateRefunded amount ÷ gross.Break out by product to find problem SKUs.
Channel mixRevenue share by sales channel.Useful for omnichannel and headless stores.

What SQL powers BigCommerce dashboards in Metabase?

These assume synced tables in a warehouse (PostgreSQL dialect). Status IDs 10 and 11 are Completed and Awaiting Fulfillment — adjust to your definition of paid.

Net revenue and orders per dayPostgreSQL

Order totals net of refunds over the last 30 days.

SELECT
  date_trunc('day', o.date_created)                   AS day,
  COUNT(*)                                            AS orders,
  SUM(o.total_inc_tax - COALESCE(o.refunded_amount, 0)) AS net_revenue
FROM orders o
WHERE o.status_id IN (10, 11)          -- Completed, Awaiting Fulfillment
  AND o.date_created >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY 1
ORDER BY 1;
Average order value by weekPostgreSQL

AOV computed at the order grain, on paid orders.

SELECT
  date_trunc('week', o.date_created) AS week,
  COUNT(*)                           AS orders,
  ROUND(
    SUM(o.total_inc_tax) / NULLIF(COUNT(*), 0),
  2)                                 AS aov
FROM orders o
WHERE o.status_id IN (10, 11)
GROUP BY 1
ORDER BY 1;
Top products by revenuePostgreSQL

Units and gross revenue by product over 90 days.

SELECT
  op.name                          AS product,
  SUM(op.quantity)                 AS units,
  SUM(op.total_inc_tax)            AS gross_revenue
FROM order_products op
JOIN orders o ON o.id = op.order_id
WHERE o.status_id IN (10, 11)
  AND o.date_created >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY op.name
ORDER BY gross_revenue DESC
LIMIT 20;
Repeat-purchase ratePostgreSQL

Share of customers with two or more paid orders.

WITH customer_orders AS (
  SELECT
    customer_id,
    COUNT(*) AS paid_orders
  FROM orders
  WHERE status_id IN (10, 11)
    AND customer_id IS NOT NULL
    AND customer_id > 0
  GROUP BY customer_id
)
SELECT
  ROUND(
    100.0 * COUNT(*) FILTER (WHERE paid_orders >= 2) / NULLIF(COUNT(*), 0),
  2) AS repeat_purchase_rate_pct
FROM customer_orders;

What are common mistakes when analyzing BigCommerce in Metabase?

Counting incomplete or cancelled orders as sales.→ Filter on status so only real, paid orders hit your sales numbers.
Reporting gross revenue as if it were net.→ Subtract discounts and refunds — and 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.
Ignoring guest checkouts in repeat-purchase analysis.→ Guest orders may have customer_id 0; decide how to attribute them before computing repeat rate.
Treating MCP answers as governed reporting.→ Use MCP for live exploration; build warehouse-backed dashboards for anything people depend on.

Related analytics

Related integrations

FAQ

Does Metabase connect natively to BigCommerce?
No. Metabase reads SQL databases and warehouses. Sync BigCommerce into a database first (a managed connector, dlt, or the REST/GraphQL API), then connect Metabase to that database.
Is there an official BigCommerce MCP server?
Not today. There's no first-party BigCommerce MCP, so most teams connect the BigCommerce API through a managed MCP such as Pipedream for AI-assisted exploration.
How should I define net revenue?
Start from gross order totals, subtract discounts and refunds, and decide explicitly whether to include taxes and shipping. Define it once as a Metabase model and reuse it so every card agrees.