At a glance
Active product count grouped by vendor. Vendor in Shopify is the brand or supplier name attached to a product. The card surfaces sourcing concentration: how many SKUs come from each supplier, and where supply risk sits.
| What it counts | GROUP BY vendor.keyword → COUNT(products). Each Product.id has exactly one vendor (or empty string if unset). The card displays the top N (typically 20) by count, plus an “(no vendor)” bucket for unassigned products. |
| API endpoint | Admin GraphQL. Product.vendor (returns single String). |
| What “Vendor” means in Shopify | A single string field intended to identify the brand or supplier of the product. For multi-brand retailers (a department store, a marketplace), vendor is the brand the customer is buying. For DTC own-brand stores, vendor is usually set to the store’s own brand name on every product. For dropship stores, vendor is the supplier (Printful, AliExpress merchant, etc.). |
| Vendor vs Type vs Tag | Vendor identifies who made it; type identifies what kind of thing it is; tags are everything else. Vendor and type rarely collide; vendor and tags often do, with merchants double-tagging vendor names for filterability. The duplication is wasteful but harmless. |
| VAT / tax / shipping / discounts / refunds / cancellations | Not applicable. Vendor describes products, not orders. |
| Currency | Not applicable. |
| Channels / sources | Not filtered. Vendor belongs to the product record across all channels. |
| Status filter | Active products only. DRAFT and ARCHIVED excluded. |
| Empty / unset | Products with no vendor set fall into “(no vendor)”. Most stores either have ~all products set (multi-brand or dropship setups) or ~all products set to a single own-brand value (own-brand DTC). High “(no vendor)” share usually indicates migration debris. |
| Casing and spelling | Like type, vendor is preserved exactly as written. “Acme Co”, “Acme Co.”, and “ACME” are three separate buckets unless normalised. Acquisitions and rebrands often leave vendor drift in their wake. |
| Single-brand stores | If you’re a DTC own-brand, this card has one row at near-100%. The card is more diagnostic for retailers, marketplaces, dropship operations, and acquired-brand consolidations where multiple vendors coexist. |
| Time window | RT (real-time snapshot). |
| Alert trigger | None. The card is informational; the actionable signals are vendor concentration risk (one supplier > 50% of catalog), unrecognised vendor names, or sudden new-vendor appearances (a botched import). |
| Roles | owner, operations |
Calculation
Worked example
A US multi-brand specialty retailer on Shopify Plus, 2,140 active products sourced across 38 brand vendors. Snapshot at 12 May 26.| Rank | Vendor | Products | Share |
|---|---|---|---|
| 1 | Patagonia | 412 | 19.3% |
| 2 | The North Face | 286 | 13.4% |
| 3 | Arc’teryx | 198 | 9.3% |
| 4 | Salomon | 142 | 6.6% |
| 5 | Salomon Inc | 38 | 1.8% |
| 6 | Smartwool | 124 | 5.8% |
| 7 | Black Diamond | 108 | 5.0% |
| 8 | Patagonia, Inc. | 22 | 1.0% |
| 9 to 38 | (long tail of smaller brands) | 762 | 35.6% |
| (no vendor) | 48 | 2.2% | |
| Total | 2,140 | 100% |
- Vendor fragmentation: Patagonia and “Patagonia, Inc.” are the same brand. Same with “Salomon” (142) and “Salomon Inc” (38). The split is almost certainly migration debris or a merchant who entered the brand differently across two POs. Consolidating gives Patagonia 434 (20.3%) and Salomon 180 (8.4%), changing the ranking. Vendor cleanup is more consequential than tag cleanup: vendor drives Smart Collections (one per brand), brand-page navigation, brand-filter chips, and Google Shopping brand fields.
- Top-3 vendor concentration (Patagonia + The North Face + Arc’teryx = 41.9%) is healthy for outdoor specialty. Single-brand dominance over 50% is a supply-chain risk; if Patagonia hits a quality issue, allocation problem, or contract dispute, ~20% of the catalog can disappear. Above 60% concentration warrants an explicit risk plan.
- The (no vendor) 2.2% is small but worth fixing. 48 unassigned products will not show up in brand-keyed Smart Collections, brand filters, or the brand-page navigation. Audit the source: usually CSV import gaps or app-created products.
- Long tail of 30+ smaller vendors is normal for specialty retail. Each contributes 1 to 50 products. The long tail is hard to merchandise effectively (one product from a vendor doesn’t justify a brand page), but removing them often hurts assortment perception. The pragmatic split: top-10 vendors get dedicated brand pages and SEO investment; long-tail vendors live inside type-driven collections.
- Reconciliation against POs reveals data-entry quality. Pull a 90-day PO list from the merchant’s procurement system. Each PO should have a single vendor name. Compare to this card’s vendor list. Drift indicates either (a) merchandising staff using different conventions to procurement, or (b) products being added without going through procurement (sample stock, marketing items). Either is fixable; both are invisible without this reconciliation.
Sibling cards merchants should reference together
| Card | Why pair it with Products by Vendor |
|---|---|
| Products by Type | Type x Vendor cross-tab reveals sourcing concentration per category. One vendor supplying 80% of one type is a supply-chain risk worth pricing in. |
| Product Tags | Many merchants double-up vendor as a tag. The duplication is wasteful; pick the structured field as canonical. |
| Total Products | The denominator. Vendor share only reads against catalog size. |
| Top Products by Revenue | Reveals whether vendor concentration in catalog matches vendor concentration in revenue. Mismatch (one vendor’s products dominate revenue) is a margin / negotiation insight. |
| Inventory Alerts | Vendor concentration intersects with stockout risk. If your top vendor is on extended lead time, half your inventory alerts will cluster on that vendor. |
| Refund Rate | Per-vendor refund rate (when sliced) exposes quality issues at specific suppliers. |
google_ads.gads_brand_groups | Google Shopping brand groups keyed off vendor field. Drift in vendor names fragments brand bids. |
bigcommerce.products_by_vendor | BC equivalent uses brand_id. Documentation cross-link. |
adobe_commerce.products_by_vendor | Adobe uses a Manufacturer attribute. Documentation cross-link. |
Reconciling against the vendor’s own dashboard
Where to look in Shopify Admin:Products → All products → click Filter → Vendor → select a vendorThe product list filtered to a single vendor shows the count at the top of the table. There is no native “all vendors ranked” view in Shopify Admin; this card surfaces the global distribution. For setting / editing vendor in bulk, use the product list’s bulk-edit toolbar (select rows → Bulk edit → add Vendor column). Plus stores can use Shopify Flow to auto-set vendor based on product creation rules. Other Shopify Admin views adjacent to vendor:
- Online Store → Navigation → Collections: Smart Collections often condition on vendor (one collection per brand). Where this card shows fragmentation, those collections fragment too.
- Reports → Sales by vendor: revenue side, useful for comparing stocked-vs-sold by brand.
- Inventory by location: inventory often segments by vendor for receiving and PO management.
| Reason | Direction | Why |
|---|---|---|
| Status filter | Ours lower | Vortex IQ counts only ACTIVE products; Shopify Admin’s vendor-filter shows all statuses. To match, set the status filter to “Active”. |
| Casing fragmentation | Either | Both see the data exactly as written. The bar chart visualises drift more obviously than the dropdown. |
| Sync lag | Ours lower for last 5 to 15 minutes | Webhook-driven, with index lag. Bulk vendor reassignments take 5 to 30 minutes. |
| (no vendor) | Both show empty | Filter “Vendor: empty” in admin matches the “(no vendor)” bucket. |
| Marketplace-channel-only products | Either | Products published only to a marketplace channel (Amazon, eBay) sometimes have vendor set by the channel app; Shopify Admin’s product list shows them but the vendor name may differ from the merchant’s intended convention. |
| Card | Expected relationship | Notes |
|---|---|---|
google_ads.gads_brand_groups | vendor flows into Google Merchant Center as the brand field; PMax brand groups based on it should align ±1 to 2 days lag | Merchant Center re-pulls feeds daily. |
klaviyo.kl_catalog_brand | Klaviyo recommendation feed mirrors vendor | Drift indicates a feed-sync delay. |
Known limitations / merchant FAQs
Why are “Patagonia” and “Patagonia, Inc.” showing as separate vendors? Because Shopify preserves the string exactly. Two strings that differ by punctuation are two separate values. Cleanup: bulk-rename via the Shopify product list (filter “Patagonia, Inc.”, select all, bulk-edit Vendor to “Patagonia”). Set a canonical naming convention and document it (a one-pager: “vendor names use full legal name minus ‘Inc.’/‘Ltd.’/etc., title case, no punctuation”). Without a convention, drift returns within months. I’m a single-brand DTC, what use is this card? Limited as a daily metric. The card has one row at near-100%. The actionable signal is a sudden second vendor appearing, which usually means: (1) an app created products with its own vendor name (review apps, gift cards), (2) a CSV import set vendor incorrectly, or (3) a staff member typoed the brand name and created a 1-product sub-vendor. For DTC own-brand stores, treat this card as a tripwire for unwanted variation, not a daily diagnostic. Multi-brand retailer / marketplace, how should I read this? Concentration first. What’s the share of your top vendor? Above 50% is a supply-chain risk; document the contingency. What’s your top-3 share? Below 30% means breadth-of-assortment is your value prop; above 70% means brand-anchor is your value prop. The card surfaces the answer at a glance. Dropship store, vendor is the supplier, what’s the practical use? Vendor concentration = supplier risk. If 70% of your dropship catalog is one supplier and they pause shipping, your store’s “in stock” rate craters. The card surfaces this concentration. Cross-reference Inventory Alerts split by vendor to pre-empt the problem. Multi-currency stores, does the card change? No. Vendor belongs to the product, currency-agnostic. Subscription products, is the vendor the same as the parent product? Yes. Subscription apps (Recharge, Bold, Shopify Subscriptions) inherit the underlying product’s vendor; they don’t create separate vendor entries. A subscription “Coffee Box” by your own brand has the brand name as vendor. Shopify Plus vs basic plan, behavioural differences? Largely none for the vendor field itself. Plus stores can use Shopify Flow to auto-set vendor on product creation; basic stores set it manually. B2B Edition products use the same vendor field. B2B vs DTC, do they share vendors? Yes, vendor belongs to the product regardless of channel. Stores selling the same product to both DTC and B2B see one vendor entry; the channel split is independent. Refresh cadence? Webhook-driven, near real-time. Vendor changes propagate within 5 to 15 minutes. Bulk operations take 5 to 30 minutes. The card shows a vendor I don’t recognise, where did it come from? Three usual sources: (1) a product-creation app set the vendor to its own name (gift cards, review widgets, bundle apps), (2) a CSV import included it, (3) a staff member entered it manually. Filter the Shopify product list by that vendor to find the products and their Created date. Often a single dev/QA test product is the culprit. Action playbook for vendor cleanup:- Pull the vendor-frequency export. Drift jumps off the page.
- Build a canonical-name map. Decide singular/plural, punctuation, abbreviation. Document the convention.
- Audit Smart Collections (one per brand usually), brand-page navigation, app rules, and Liquid template references before renaming.
- Bulk-rename via the product list filter + bulk edit (Admin API for >500).
- Verify Smart Collections and Google Merchant Center brand groups re-populated correctly. Allow 24 to 48 hours for ad-channel feed re-pulls.
- Set a quarterly cadence; new vendors come in with new POs and new staff.