> ## 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.

# B2B Revenue, Shopify

> B2B Revenue for Shopify stores. Wholesale revenue filtered to orders tagged B2B. How to read it, why it matters, and how to act on it.

**Card class:** [Non-Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Wholesale revenue. Filtered to orders tagged `B2B`.

## At a glance

> Gross revenue from your wholesale and trade orders in the period, isolated by the `B2B` order tag. For a brand that sells both direct-to-consumer and to trade accounts through the same Shopify store, this card pulls out the wholesale half so you can track it on its own. It is gross revenue, the same arithmetic as Total Revenue, restricted to tagged orders.

|                               |                                                                                                                                                                                                                                                                                           |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `SUM(totalPrice)` across orders in the window carrying the `B2B` tag. The wholesale slice of gross revenue.                                                                                                                                                                               |
| **How "B2B" is identified**   | By the `B2B` order tag. Orders placed through Shopify B2B / wholesale, or manually tagged `B2B`, are included. **The tag must be applied consistently for this card to be accurate**, an untagged wholesale order will be missed and an over-tagged retail order will be wrongly counted. |
| **VAT / tax treatment**       | Follows each order's `taxesIncluded` mode. Wholesale orders are often quoted ex-VAT (trade pricing), so for a UK store the B2B slice may be ex-tax while the DTC slice is inclusive. Read the two with that difference in mind.                                                           |
| **Shipping**                  | **Included** (part of `totalPrice`). Wholesale orders often carry freight or palletised shipping lines.                                                                                                                                                                                   |
| **Discounts**                 | Already deducted. Trade discounts and account-specific pricing are reflected in the post-discount total.                                                                                                                                                                                  |
| **Refunds**                   | **NOT deducted.** A refunded wholesale order still contributes.                                                                                                                                                                                                                           |
| **Cancelled / voided orders** | Included if Shopify indexed them.                                                                                                                                                                                                                                                         |
| **Currency**                  | **Multi-currency arithmetic sum WITHOUT FX conversion.** Wholesale accounts in different countries transacting in different currencies produce a blended figure; filter by currency for a clean number.                                                                                   |
| **Channels / sources**        | Filtered by tag, not by sales channel. A `B2B`-tagged order on any channel counts; an untagged Shopify B2B order may not.                                                                                                                                                                 |
| **Time window**               | `30D` (default 30D rolling)                                                                                                                                                                                                                                                               |
| **Alert trigger**             | Configurable. Wholesale revenue is lumpy (few large orders), so absolute-drop alerts misfire; trend over a longer window is more meaningful.                                                                                                                                              |
| **Roles**                     | owner, marketing                                                                                                                                                                                                                                                                          |

## Calculation

```
SUM(totalPrice WHERE tags CONTAINS 'B2B')
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

A UK homewares brand selling DTC online and to a handful of trade accounts through Shopify B2B. All wholesale orders carry the `B2B` tag. The 30-day window covers 14 Mar 26 to 12 Apr 26.

| Account                     | B2B orders | Revenue (ex-VAT trade pricing) | Note                                      |
| --------------------------- | ---------- | ------------------------------ | ----------------------------------------- |
| Independent retailer A      | 2          | £8,400                         | Monthly restock                           |
| Independent retailer B      | 1          | £5,100                         | Quarterly order, larger basket            |
| Hospitality group           | 1          | £12,800                        | Project order, one-off                    |
| Garden centre chain         | 3          | £9,700                         | Three regional stores ordering separately |
| **B2B Revenue (this card)** | **7**      | **£36,000**                    | Roughly 18% of total store revenue        |

Three things to notice:

1. **Wholesale is lumpy.** Seven orders made £36,000, an average wholesale basket of over £5,000 versus a DTC basket nearer £90. A single missing account next month can swing this card hard, so judge it on a quarter, not a week.
2. **Customer concentration is the risk.** The hospitality project order (£12,800) is 36% of the month's B2B revenue and was a one-off. Strip it out and the recurring B2B base is closer to £23,000. Track the recurring accounts separately from project spikes.
3. **The tag is doing the work.** This figure is only as good as the tagging discipline. If a new trade account placed an order that nobody tagged `B2B`, it lands in DTC revenue and this card understates wholesale. Audit tagging when the number looks wrong before assuming a real change.

## Sibling cards merchants should reference together

| Card                                                                                           | Why pair it with B2B Revenue                                                                               |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [B2C Revenue Only](/nerve-centre/kpi-cards/shopify/b2c-revenue-only)                           | The direct-to-consumer counterpart. The two tags should sum towards total revenue (minus untagged orders). |
| [Revenue by Sales Channel (Tag)](/nerve-centre/kpi-cards/shopify/revenue-by-sales-channel-tag) | The full per-tag breakdown; B2B is one bar of it.                                                          |
| [Total Revenue](/nerve-centre/kpi-cards/shopify/total-revenue)                                 | The aggregate. B2B as a share of it tells you how wholesale-dependent the store is.                        |
| [Average Order Value](/nerve-centre/kpi-cards/shopify/average-order-value)                     | Wholesale baskets are far larger than DTC; a B2B spike lifts blended AOV mechanically.                     |
| [Top Customers](/nerve-centre/kpi-cards/shopify/top-customers)                                 | Trade accounts dominate the top-customers list; pair to see account concentration.                         |
| [Marketplace Revenue](/nerve-centre/kpi-cards/shopify/marketplace-revenue)                     | Another tagged segment; together they show how much revenue is non-DTC.                                    |

## Reconciling against Shopify Admin

**Where to look in Shopify Admin:**

[Orders](https://admin.shopify.com/orders) → filter by **Tagged with** `B2B`, set the same date window, and the order list export summed on `totalPrice` is the direct reconstruction. Stores on Shopify B2B can also use the **B2B** section and the **Sales by ...** reports filtered to wholesale customers, though those reports key on customer type rather than the tag this card uses.

Other Shopify Admin views and why they differ:

* **Reports → Sales** filtered by customer (company): keys on the B2B company record, not the order tag. If a wholesale order wasn't tagged, the report still counts it but this card won't.
* **Shopify B2B catalog / company orders**: shows wholesale activity by company, a different lens to the tag.

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

| Reason                   | Direction    | Why                                                                                                                                  |
| ------------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Tagging gaps**         | Ours lower   | Any wholesale order that wasn't tagged `B2B` is missed by this card. This is the single biggest source of divergence.                |
| **Tagging over-reach**   | Ours higher  | A retail order wrongly tagged `B2B` is wrongly counted.                                                                              |
| **Customer-type vs tag** | Either       | Shopify B2B reports key on company / customer type; this card keys on the order tag. The two agree only when tagging is disciplined. |
| **Refund treatment**     | Ours higher  | This card is gross; Shopify net reports deduct returns.                                                                              |
| **Multi-currency**       | Ours blended | No FX conversion here.                                                                                                               |

**Cross-connector reconciliation:**

| Card                                   | Expected relationship       | What causes legitimate divergence                                                                                                             |
| -------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Your accounting / ERP wholesale ledger | Should align with this card | Many brands also invoice wholesale outside Shopify on net-30 / net-60 terms; those orders never appear here, so the ledger is usually higher. |

***

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

  The same tagged-wholesale concept lives on other commerce platforms. This is **not a reconciliation**, your Shopify store doesn't have a parallel store on BigCommerce or Adobe Commerce. These cross-links exist so agencies running multi-platform client books can navigate between identical metrics.

  * [`bigcommerce.b2b_revenue`](/nerve-centre/kpi-cards/bigcommerce/b2b-revenue)
  * [`adobe_commerce.b2b_revenue`](/nerve-centre/kpi-cards/adobe-commerce/b2b-revenue)
</details>

## Known limitations / merchant FAQs

**Why is my B2B Revenue lower than I expect?**
Almost always a tagging gap. This card counts only orders carrying the `B2B` tag. If a wholesale order was placed without the tag (manual order, new account not yet set up, a teammate who forgot), it lands in DTC and this card misses it. Audit tagging before assuming wholesale actually fell.

**Can I change which tag identifies B2B?**
The card keys on the `B2B` tag by default. If your store uses a different convention (`Wholesale`, `Trade`), align it under the card configuration so the filter matches your tagging. The accuracy of the card depends entirely on consistent tagging.

**Why is the number so jumpy month to month?**
Wholesale is lumpy by nature, a few large orders rather than many small ones. One project order or one account ordering early or late can swing the figure 30% or more. Judge B2B on a rolling quarter, not week to week.

**My wholesale prices are ex-VAT but my DTC is inclusive. Does that distort the comparison?**
Yes, be aware of it. Trade orders are often quoted ex-VAT while DTC is VAT-inclusive, so a like-for-like comparison of the two slices isn't perfectly clean. Use the ex-VAT revenue cards if you need both segments on the same tax basis.

**Does it include wholesale I invoice outside Shopify?**
No. Only orders created in this Shopify store and tagged `B2B` are counted. Net-terms invoicing handled in your accounting system or ERP never reaches Shopify, so for total wholesale combine this card with your finance ledger.

**Do B2B and B2C add up to Total Revenue?**
Only if every order is tagged exactly one of the two and nothing is untagged or double-tagged. In practice there is usually an untagged remainder, so the two segment cards sum to slightly less than Total Revenue. The gap is your tagging-coverage shortfall.

***

### Tracked live in Vortex IQ Nerve Centre

*B2B Revenue* is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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.
