> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Unique Customers, Adobe Commerce

> Unique Customers for Adobe Commerce stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## At a glance

> Distinct customer count over the trailing 30 days, computed via `CARDINALITY(customer_email)` on the orders index. Adobe Commerce uses email as the practical customer identifier (the `customer_id` field is null for guest orders). The count therefore conflates registered customers with guests-using-the-same-email. On Adobe Commerce specifically, the card distinguishes B2B Companies (single Company can have many billing emails) from consumer accounts.

|                                                        |                                                                                                                                                                                     |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                                     | `CARDINALITY(customer_email)` over orders in the 30-day window. Distinct emails. Compared to prior 30-day for delta.                                                                |
| **API field**                                          | `customer_email` from `GET /rest/V1/orders`. Optionally `customer_id` for registered-only counts.                                                                                   |
| **VAT / tax treatment**                                | n/a, this is a count metric.                                                                                                                                                        |
| **Shipping inclusion**                                 | n/a.                                                                                                                                                                                |
| **Discounts**                                          | n/a.                                                                                                                                                                                |
| **Credit Memo refund treatment**                       | A customer who ordered then was fully refunded still counts. They placed an order, the count reflects intent.                                                                       |
| **`state` machine inclusion**                          | All states except `canceled` (a customer whose only order was cancelled is not really an active customer).                                                                          |
| **`pending_payment` quirk**                            | Included. B2B net-30 customers whose orders sit in `pending_payment` are real customers in pipeline.                                                                                |
| **Multi-currency `grand_total` vs `base_grand_total`** | n/a.                                                                                                                                                                                |
| **Store View scope (`store_id`)**                      | All Store Views by default. The same email across multiple Store Views counts as one customer.                                                                                      |
| **B2B Company aggregation**                            | Each Company is counted as one customer when filtered to the B2B segment, even if multiple buyer emails sit under the Company. This is configurable; the default groups by Company. |
| **Time window**                                        | `30D vsP`.                                                                                                                                                                          |
| **Alert trigger**                                      | None by default.                                                                                                                                                                    |
| **Roles**                                              | owner, marketing                                                                                                                                                                    |

## Calculation

```
CARDINALITY(customer_email.keyword)
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

A homewares brand on Adobe Commerce 2.4.6 with US, UK, and B2B Store Views. Snapshot Monday 4 May 26.

**Customer count by Store View:**

| Store View            | Distinct emails (30D) | Distinct registered customers       | Distinct B2B Companies |
| --------------------- | --------------------- | ----------------------------------- | ---------------------- |
| US consumer           | 2,420                 | 1,840                               | n/a                    |
| UK consumer           | 1,910                 | 1,520                               | n/a                    |
| B2B portal            | 188 distinct emails   | 156 customers (linked to Companies) | 142 distinct Companies |
| **Blended (deduped)** | **4,396 emails**      | **3,360 registered**                | n/a                    |

**Vs prior 30-day:**

| Metric                | Current | Prior | Delta |
| --------------------- | ------- | ----- | ----- |
| Total distinct emails | 4,396   | 4,180 | +5.2% |
| Registered customers  | 3,360   | 3,210 | +4.7% |
| Guest emails          | 1,036   | 970   | +6.8% |
| B2B Companies         | 142     | 138   | +2.9% |

What this is telling marketing:

1. **Customer base grew 5.2% MoM.** Healthy.
2. **Guest growth (6.8%) is outpacing registered (4.7%).** New traffic is converting but not creating accounts. This may reflect a deliberate "guest checkout first" UX, or it may be a missed opportunity for retention (registered customers are worth 2 to 3x lifetime value of guests in most categories).
3. **B2B Company count grew slightly** (+2.9%, 4 net new Companies). Each Company is potentially worth tens of thousands per year, so 4 new Companies is a measurable acquisition win.
4. **The 188 B2B emails belong to 142 Companies**: average 1.3 buyer-emails per Company. Most Companies have one buyer; some have 2 to 5. This matters for B2B email marketing: each Company should receive one strategic-Sales-touch communication, not 1.3.
5. **Cross-checking [Customer Trend](/nerve-centre/kpi-cards/adobe-commerce/customer-acquisition-trend)**: of the 3,360 registered customers, 1,420 are first-time orderers in this period (new customers). This means 1,940 are returning, a 57.7% repeat-share among registered customers. Cross with [Repeat Customer Rate](/nerve-centre/kpi-cards/adobe-commerce/repeat-customer-rate) for the lifetime view.
6. **Strategic question**: should marketing push guest-to-registered conversion (post-purchase email cadence with account-creation incentive)? On a 1,036-guest base growing at 6.8%, converting 30% to registered would add \~310 registered customers/month, materially improving retention metrics.

The point: customer count is the simplest acquisition metric, but on Adobe Commerce the registered-vs-guest split and the B2B-Company-vs-emails split add necessary nuance.

## Sibling cards merchants should reference together

| Card                                                                                        | Why pair it with Customer Count                                           |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [New Customers](/nerve-centre/kpi-cards/adobe-commerce/new-customers)                       | First-time orderers, the leading-edge subset of customer count growth.    |
| [Customer Trend](/nerve-centre/kpi-cards/adobe-commerce/customer-acquisition-trend)         | Trend chart visualising count over time.                                  |
| [Repeat Customer Rate](/nerve-centre/kpi-cards/adobe-commerce/repeat-customer-rate)         | Loyalty companion. High customer count + low repeat = leaky bucket.       |
| [Guest vs Account Checkout](/nerve-centre/kpi-cards/adobe-commerce/guest-vs-account-orders) | Decomposes count into registered vs guest.                                |
| [Customer Segments](/nerve-centre/kpi-cards/adobe-commerce/customer-spend-segments)         | LTV-cohort decomposition.                                                 |
| [B2B Revenue Share](/nerve-centre/kpi-cards/adobe-commerce/b2b-revenue-share)               | The dollar-weighted view. Customer count is people-weighted; both matter. |
| [Total Orders](/nerve-centre/kpi-cards/adobe-commerce/total-orders)                         | Order count divided by customer count = order frequency.                  |
| [`shopify.customer_count`](/nerve-centre/kpi-cards/shopify/unique-customers)                | Cross-platform peer.                                                      |

## Reconciling against the vendor's own dashboard

**Where to look in Adobe Commerce Admin:**

> **Customers > All Customers** lists registered customers; the grid total at the bottom shows the count. This excludes guests by definition (guests don't have customer entities).

> **Reports > Customers > Customers by Number of Orders** is the closest aggregated view, ranks customers by order count.

> **Sales > Orders** filtered to a date range has a "Customer Email" column; the distinct-email count is your "this card" equivalent. Group by Customer Email in CSV export to compute manually.

For B2B (Adobe Commerce paid edition):

> **Customers > Companies** counts Company entities. **Customers > Companies > \[Company] > Users** shows users per Company.

**Why our number may legitimately differ from Admin:**

| Reason                                                                                                                                                                                                                         | Direction of divergence                         |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------- |
| **Guest inclusion**. Card includes guest emails; Admin's customer list shows registered only.                                                                                                                                  | Card count higher                               |
| **Multi-Store-View deduplication**. Card dedupes the same email across Store Views. Admin's customer list often shows duplicate customer entities for the same email if the customer registered separately on each Store View. | Card count lower than admin all-Store-Views sum |
| **B2B Company aggregation**. Card can group by Company; Admin counts buyer-emails.                                                                                                                                             | Material if many Companies have multiple buyers |
| **Time window**. Card uses 30-day-ordering activity; Admin's customer list is all-time-registered.                                                                                                                             | Card count smaller                              |
| **Sync lag**. Card uses OpenSearch sync (5-15 min); Admin live.                                                                                                                                                                | Negligible at 30D                               |

**Cross-connector reconciliation (when these connectors are connected for this merchant):**

| Pair                                                                             | Expected relationship                                                    | What divergence tells you                                                                                                                             |
| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`google_analytics.ga_purchasers`](/nerve-centre/google_analytics/ga_purchasers) | GA4 purchasers ≈ Adobe customer count × (1 - tracking gap)               | GA4 typically misses 10-25%. Material lower divergence (>25%) suggests GA4 tag-fire issues at checkout.                                               |
| ESP active-list size                                                             | ESP list usually exceeds customer count (subscribers who haven't bought) | Inverse relationship would be alarming (customers buying without subscribing); sometimes legitimate (B2B where buyers don't sign up to consumer ESP). |

***

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  * [`shopify.customer_count`](/nerve-centre/kpi-cards/shopify/unique-customers)
  * [`bigcommerce.customer_count`](/nerve-centre/kpi-cards/bigcommerce/unique-customers)
</details>

## Known limitations / merchant FAQs

**My customer count seems lower than my CRM, why?**
The card counts customers who placed an order in the trailing 30 days. Your CRM probably contains all-time-registered customers, including dormant or churned. For a like-for-like, filter your CRM to "ordered in last 30 days".

**Why use email rather than `customer_id` for distinct counting?**
Adobe Commerce stores `customer_email` on every order regardless of guest vs registered status. `customer_id` is null for guest orders. Using `customer_email` captures both. The trade-off: a guest who later registered with the same email is counted once across both order types (correct behaviour); a guest who used different emails on different orders counts as multiple customers (overcount).

**Adobe Commerce vs Magento Open Source: difference?**
None at the calculation. The B2B Companies module on the paid edition lets the card group by Company; Open Source merchants without the module count by buyer-email. For Open Source merchants who want B2B Company aggregation, custom attributes can be configured but it's manual work.

**My multi-store Adobe Commerce, can the same customer count differently per Store View?**
Yes if they registered separately on each Store View (Adobe Commerce historically created per-Store-View customer entities; modern installations use `customer_share_account_information` to share across websites). The card dedupes by email regardless. If your historical data has duplicate registrations, the card's count is more accurate than the Admin customer-grid count.

**B2B Company has 5 buyer emails, do I count it as 1 or 5?**
Depends on the question. For "how many decision-making units do we serve", group by Company (count = 1). For "how many people log in and order", count by email (count = 5). The card defaults to grouping by Company on the B2B segment; configurable per the use case.

**Why doesn't this card include cancelled orders?**
A customer whose only order was cancelled is functionally equivalent to a customer who never ordered. Counting them inflates customer count without reflecting purchasing behaviour. The exception: Adobe Commerce auto-cancellations from `pending_payment` timeout where the customer would have been a real customer if the gateway worked. Those are excluded too, which understates "intent to be a customer" slightly. For a count-of-intent metric, see Quote-Create count via [Cart-Abandonment Spike Alert](/nerve-centre/kpi-cards/adobe-commerce/cart-abandonment-spike-alert).

**My customer count grew but revenue is flat, what's happening?**
Likely AOV contraction. New customers are smaller-basket than existing customers; if customer count grew faster than revenue, the new customers are buying less per visit. Cross-check [AOV](/nerve-centre/kpi-cards/adobe-commerce/average-order-value) and [New Customers](/nerve-centre/kpi-cards/adobe-commerce/new-customers). This is the "successful acquisition, weak retention" pattern that needs an early-customer cadence intervention.

***

### Tracked live in Vortex IQ Nerve Centre

*Unique Customers* is one of hundreds of KPI pulses Vortex IQ tracks across Adobe Commerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
