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

# Top Products by Channel, BigCommerce

> Per-channel top-10 SKUs, surfaces 'this product sells on POS but not online' style insights. 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)

> Per-channel top-10 SKUs, surfaces 'this product sells on POS but not online' style insights.

## At a glance

> Top-10 SKUs by revenue per `channel_id` over the trailing 30 days. Surfaces "this product sells on POS but not online" style insights, the merchandising-strategy view that BigCommerce's channel-native architecture makes uniquely visible. Different channels favour different SKUs: Amazon prefers bundles, web prefers hero singles, B2B prefers case-pack quantities, POS prefers walk-out single-units. The card lets the merchant see whether their assortment matches each channel's buyer behaviour.

|                           |                                                                                                                                                                                                                                                                                                                                |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **What it counts**        | `SUM(line_item.total_inc_tax) GROUP BY channel_id, product_id ORDER BY revenue DESC LIMIT 10`. Each channel shows its own top-10. SKUs absent from a channel's top-10 may still be in the catalogue but not selling there.                                                                                                     |
| **API endpoint**          | `GET /stores/{store_hash}/v2/orders/{order_id}/products` for line-item detail per order, joined with `GET /v2/orders` for channel attribution. The OpenSearch index materialises per-channel-per-SKU revenue per day.                                                                                                          |
| **VAT / tax treatment**   | Tax-inclusive line totals.                                                                                                                                                                                                                                                                                                     |
| **Shipping**              | Excluded from product line; shipping isn't attributable to a single SKU.                                                                                                                                                                                                                                                       |
| **Discounts**             | Deducted at line level; bundle discounts are pro-rated across line items.                                                                                                                                                                                                                                                      |
| **Refunds**               | Not deducted. A refunded SKU still appears in the top-10 if its gross revenue makes it.                                                                                                                                                                                                                                        |
| **Cancelled orders**      | Excluded.                                                                                                                                                                                                                                                                                                                      |
| **`Incomplete` orders**   | Excluded.                                                                                                                                                                                                                                                                                                                      |
| **Currency**              | Multi-currency aggregated in primary; per-channel native currency available via Settings.                                                                                                                                                                                                                                      |
| **Channel coverage**      | All BC channels. POS top-10 typically reflects walk-in regulars (coffee, snacks, basics); web top-10 reflects hero / featured products; Amazon top-10 reflects bundle / multi-pack listings; B2B top-10 reflects case-pack and high-volume reorder SKUs.                                                                       |
| **B2B Edition behaviour** | B2B portal top-10 is typically dominated by 5-10 high-volume reorder SKUs that wholesale accounts buy regularly. The pattern is repetitive (same 8 SKUs every month) rather than fashion-style (rotating top-10). **Watch for B2B top-10 destabilising**, that's an early signal of customer churn or assortment misalignment. |
| **SKU vs Variant**        | We aggregate at product level by default; variant-level (size, colour) is available under Settings → Aggregation. Variant view triples the data volume but surfaces "Size M sells on Amazon, Size L on web" patterns.                                                                                                          |
| **Time window**           | `30D` rolling.                                                                                                                                                                                                                                                                                                                 |
| **Alert trigger**         | None (pattern card).                                                                                                                                                                                                                                                                                                           |
| **Roles**                 | owner, marketing, operations                                                                                                                                                                                                                                                                                                   |

## Calculation

Calculated automatically from your BigCommerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A US homewares brand on BigCommerce Pro. Snapshot for 1 Apr to 30 Apr 26. Showing top-3 per channel for brevity (full card shows top-10).

| Rank | DTC web (`channel_id=1`)                    | Amazon (`1019847`)               | B2B portal (`12000004`)          | POS (`1020114`)               |
| ---- | ------------------------------------------- | -------------------------------- | -------------------------------- | ----------------------------- |
| 1    | Linen 4-piece bedding set, King (\$21,400)  | Towel set 6pk, ivory (\$11,200)  | Bulk pillowcase 50ct (\$28,000)  | Hand-soap, lavender (\$1,840) |
| 2    | Throw cushion 18in, sage (\$14,200)         | Bath sheet 4pk, white (\$9,800)  | Bulk hand-towel 100ct (\$22,400) | Candle, vetiver (\$1,420)     |
| 3    | Linen 4-piece bedding set, Queen (\$12,800) | Hand-towel 12pk, ivory (\$8,400) | Bulk pillowcase 100ct (\$18,200) | Linen napkin, ivory (\$980)   |

What's interesting:

1. **Web sells king-size hero items, Amazon sells multi-packs.** This is the BC merchant's intentional channel strategy: web carries the full premium catalogue (king bed sets, decorative throws); Amazon carries bulk-friendly utility SKUs that work well in Amazon's volume-seeker buyer base. **The fact that Amazon top-3 contains zero web top-3 SKUs is a sign of disciplined per-channel merchandising**, not channel weakness.
2. **B2B portal is dominated by case-pack quantities.** The "Bulk pillowcase 50ct" at $28k and "Bulk hand-towel 100ct" at $22k reflect hotel / hospitality wholesale customers buying for their property operations. **B2B top-3 SKUs typically don't appear on any other channel** because the case-pack SKUs are B2B-only listings. This is the BC B2B Edition merchandising pattern at its purest.
3. **POS top-3 are small-ticket walk-out items.** Hand-soap, candles, napkins, classic specialty-retail flagship-store impulse buys. Average POS line at $20-50 vs web average line at $80-150. **POS top-3 should rarely include big-ticket items**, those are walk-in tour-and-leave items, not buy-on-spot.
4. **The big strategic question: Should the merchant promote the Bulk pillowcase 50ct on web?** Currently it's B2B-only (\$28k revenue). If priced for prosumer / Airbnb operator market, it could reach DTC web buyers. **The card surfaces these cross-platform-opportunity questions** that aggregate top-products lists hide.
5. **Watch for top-10 instability over time.** A B2B top-10 that suddenly shifts (the pillowcase drops from #1 to #5) usually means a wholesale customer churned or shifted to a competitor; investigate within days.

Action priority order:

1. **Audit cross-platform duplicate listings.** SKUs in top-3 on multiple channels are your hero products; ensure inventory allocation matches.
2. **Surface channel-exclusive opportunities.** A B2B-only top-SKU may have prosumer DTC potential.
3. **Identify channel-misfits.** A high-AOV web SKU absent from web top-10 but present on Amazon means web isn't merchandising it; fix the website's hero placement.
4. **For POS specifically, top-3 should match impulse / regular categories.** A big-ticket item in POS top-3 is unusual and worth investigating (was it gift-bought? Was a tour group involved?).
5. **For B2B, monitor top-10 stability.** Sudden drops indicate customer-churn risk.

## Sibling cards merchants should reference together

| Card                                                                                         | Why pair it with Top Products by Channel                                                     |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [BC Top SKUs](/nerve-centre/kpi-cards/bigcommerce/top-skus)                                  | Store-wide top-10; this card is per-channel decomposition.                                   |
| [BC Top SKUs Revenue](/nerve-centre/kpi-cards/bigcommerce/top-skus-by-revenue)               | Revenue-weighted view of hero products.                                                      |
| [BC Channel Inventory Split](/nerve-centre/kpi-cards/bigcommerce/inventory-split-by-channel) | Pair to verify allocation matches per-channel demand.                                        |
| [BC Channel AOV](/nerve-centre/kpi-cards/bigcommerce/aov-by-channel)                         | Top-product mix drives per-channel AOV.                                                      |
| [BC Channel Refund Rate](/nerve-centre/kpi-cards/bigcommerce/refund-rate-by-channel)         | Cross-reference: high-revenue + high-refund SKUs are quality / fit issues.                   |
| [BC Channel Revenue Trend](/nerve-centre/kpi-cards/bigcommerce/channel-revenue-trend)        | Trend context; rising channel revenue with shifting top-10 means the assortment is changing. |
| [BC Stock vs Sales](/nerve-centre/kpi-cards/bigcommerce/stock-vs-sales-velocity)             | Velocity-vs-stock view per top SKU.                                                          |
| [BC Margin by Brand](/nerve-centre/kpi-cards/bigcommerce/margin-by-brand)                    | Margin context for top-revenue SKUs.                                                         |

## Reconciling against the vendor's own dashboard

**Where to look in BigCommerce Control Panel:**

[Analytics → Sales](https://login.bigcommerce.com/deep-links/manage/analytics/in-store-conversion) → "Top products" view shows store-wide top-10. [Channel Manager → individual channel → Reports](https://login.bigcommerce.com/deep-links/manage/channel-manager) shows per-channel sales by product on Plus / Pro / Enterprise.

For B2B Edition: [Channel Manager → B2B Edition → Reports](https://login.bigcommerce.com/deep-links/manage/channel-manager) shows wholesale-customer top products.

**Why our top-10 may differ from BC reports:**

| Reason                                                                                                          | Direction                |
| --------------------------------------------------------------------------------------------------------------- | ------------------------ |
| **Bundle / kit treatment**. We aggregate at parent product level; BC sometimes shows component SKUs separately. | Different rows           |
| **Refund treatment**. Default we use gross; BC's view varies.                                                   | Higher / lower per-SKU   |
| **Window alignment**. Rolling-30 vs calendar-month near boundaries.                                             | Either direction         |
| **B2B inclusion**. BC main analytics excludes B2B; we include.                                                  | Different denominators   |
| **Variant aggregation**. We aggregate at product; BC shows variants separately in some views.                   | Different SKUs in top-10 |

**Cross-connector reconciliation (when marketplace and ad integrations are connected):**

| Card                                                                                   | Expected relationship                                             | What causes legitimate divergence                                                                 |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [`amazon_sp.amazon_top_listings`](/nerve-centre/amazon_sp/amazon_top_listings)         | Amazon SP-API's top listings should match Amazon channel slice    | SP-API shows units sold; we show revenue. Same rank usually, sometimes different.                 |
| [`google_ads.ga_top_converting_skus`](/nerve-centre/google_ads/ga_top_converting_skus) | Top-converting paid-traffic SKUs typically match web top-10       | Paid traffic skews to first-time buyers; some SKUs over-index on paid vs organic.                 |
| [`klaviyo.kl_top_purchased_products`](/nerve-centre/klaviyo/kl_top_purchased_products) | Klaviyo's email-attributed top products correlate with web top-10 | Klaviyo's attribution is click-window; some orders attributed to Klaviyo had earlier touchpoints. |

**The per-channel top products view is BC-aligned with similar cards on Shopify (per `source_name`) and Adobe Commerce (per `store_id`); merchant-facing semantics are equivalent.**

***

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

  * [`shopify.top_products_by_channel`](/nerve-centre/shopify/top_products_by_channel) (planned)
  * [`adobe_commerce.top_products_by_store`](/nerve-centre/adobe_commerce/top_products_by_store) (planned)
</details>

## Known limitations / merchant FAQs

**My web top-10 has zero overlap with my Amazon top-10. Is that bad?**
Not necessarily. If the lack of overlap reflects intentional channel-specific merchandising (Amazon-only bundles, web-only premium SKUs), it's strategic discipline. If it reflects accidental misalignment (a web hero SKU isn't even listed on Amazon), it's an opportunity. Audit each top-10 SKU against your other-channel listings to differentiate.

**Why doesn't shipping appear as a "product" in my top-10?**
Shipping is order-level, not line-item-level. It's excluded from the per-product aggregation. For shipping-revenue analysis use [Total Revenue](/nerve-centre/kpi-cards/bigcommerce/total-revenue) and decompose by line component.

**My B2B portal top-10 is identical month-over-month for 6 months. Healthy?**
Yes, that's the normal B2B pattern. Wholesale customers reorder the same SKUs on schedules. **Stability is healthy; sudden change is a warning sign**, either you onboarded new accounts (good) or lost old ones (bad). Read alongside customer-count change.

**Should I aggregate by product or by variant?**
Default product-level. Variant-level is useful for fashion / apparel where size and colour are critical (M sells on Amazon, L sells on web is a real merchandising signal). Configure under Settings → Aggregation → Variant.

**My new SKU launched 2 weeks ago and is already in web top-10. Real or noise?**
Both possible. New launches often spike in week 1-2 from launch-promo traffic, then settle into normal velocity. Read week-3 ranking to see whether it sticks. **For new launches always look at the 60-day vs 30-day position**, sustained top-10 means it's a hero; one-time top-10 means it was a launch artifact.

**Why doesn't bundling show as a top-product?**
Bundles are aggregated at parent-product level. The bundle parent appears; component SKUs don't appear separately. Configure under Settings → Bundle treatment if you want components shown.

**My headline top-10 doesn't match the per-channel top-10s. Why?**
Because the headline is store-wide; per-channel is per channel. A SKU that's #5 on web and #15 on Amazon may be #8 store-wide. The aggregation gives different rankings; this is expected.

**Multi-currency stores: how is revenue compared across currencies?**
By default we convert to your primary currency at daily FX rates for ranking. Configure native-currency view if you want each channel's top-10 in its own currency without FX conversion. Native view doesn't allow cross-platform SKU comparison but is more accurate for finance.

**What if a SKU has been discontinued mid-period?**
It still appears in the top-10 if its 30-day revenue makes it. The rank is based on past sales, not current availability. If discontinued, mark with the discontinued flag in BC catalogue; we annotate the SKU on the card.

**Can I configure top-20 or top-50 instead of top-10?**
Yes, the per-card setting under Settings → Display → Top-N. For very-long-tail catalogues (10,000+ SKUs) top-20 or top-50 is more useful; for tight assortments top-5 is enough. Default top-10 fits most BC store assortments.

***

### Tracked live in Vortex IQ Nerve Centre

*Top Products by Channel* is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce 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.
