ClearStock is live on the Shopify App Store.Install free →

← All blogs

Choosing a Tool9 min read

Tags vs metafields in Shopify: where inventory ops data actually belongs

Shopify tags vs metafields for inventory ops: the decision rule, a field-by-field table for bin codes and supplier refs, and a migration checklist.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

The misconception: tags are the free, easy option and metafields are the developer option, so a small store should max out tags first and graduate to metafields later. The real split isn't cost or difficulty — it's structure. Tags are labels: good for grouping things that belong together, useless for values that must be typed, validated, filtered, or exported consistently. A tag called bin-12 and a tag called bin 12 will both "work" while quietly being two different bins, and no error message will ever tell you. If a piece of data has a right and wrong spelling, it wants to be a metafield; if it's just a bucket, a tag is fine.

This guide applies that rule to the data an inventory operator actually stores — bin locations, supplier references, seasons, reorder cadences — with a field-by-field decision table, the verified behavioral quirks of both systems, and a migration path for data you've already put in the wrong place.

What each system actually does

Tags are free-text labels, up to 250 per product, using ordinary letters, numbers, and hyphens (Shopify Help Center, "Tag formats," accessed November 2026). Two behaviors matter more than the limit. First, special characters are treated as equivalent — red_new, red+new, and red&new all count as the same tag — which sounds forgiving but means near-duplicates merge unpredictably and can't coexist. Second, tags can leak: in some themes they're visible to customers in filter menus, so internal codes like hazard-usb-recall can surface on the storefront. Tags aren't used by search engines, and they cost nothing to set up — no definitions, no settings, just type and go.

Metafields are typed, defined fields. You create a definition in Settings > Metafields and metaobjects (a name, a type like single line text or integer, optional validation rules), then attach values per product or per variant. The definition is what buys you structure: values conform to a type, invalid entries get flagged, and the field behaves as data rather than text. Metafields can be connected to themes through dynamic sources, used as dimensions in Shopify analytics and reports, and activated for admin filtering on the Products page (Shopify Help Center, "Metafields" and "Filtering products using product metafields," accessed November 2026). Shopify's own guidance on collection conditions draws the same line: tags are useful "when you need a simple label or grouping method," while metafields "provide more flexibility and structure than tags" ("Collections with metafields").

The quirks that decide real cases

Four verified behaviors flip decisions in practice, so it's worth knowing them before the table:

  • Variant metafields can't be displayed to customers. Product-level metafields can render in themes; variant-level ones currently can't (Shopify Help Center, "Variants," as of November 2026). Fine for bin codes and internal refs; disqualifying for anything customer-facing that varies by variant.
  • Variant metafields don't ride the product CSV. Product metafields import and export through the product CSV once defined, but variant metafields require the variant bulk editor instead (Shopify Help Center, "Using CSV files," accessed November 2026). If you need to bulk-move a value for 2,000 variants, know which kind you're dealing with first — the Shopify bulk edit inventory guide covers the mechanics.
  • Filtering and collections require activation, not just definition. A metafield only appears as an admin filter after you switch on "Filter on the product list" in its definition, and only becomes usable as an automated collection condition after you activate it for collections — with supported types limited to things like single line text, true/false, integers, and decimals (Shopify Help Center, accessed November 2026). A definition you forgot to activate looks exactly like a broken feature.
  • Automated collection conditions can use metafields, up to 60 conditions per collection, with a 128-definition activation cap for the collections setting. That's the structural ceiling where metafield-driven merchandising starts needing discipline.

Tags have their own structural ceiling, and it's human: no validation, no types, no required format. Every tag-based field is one typo away from silently splitting its values.

The decision table, applied to inventory ops

Here's the field-by-field audit for a realistic catalog — a dog-harness brand, 340 SKUs across 40 styles, selling wholesale and direct, one warehouse plus a market stall:

Data field Tags or metafield Why
Bin location (B12-C3) Variant metafield, single line text Must be typed correctly and filtered; lives per variant, never shown to customers
Supplier reference code Product metafield, single line text A value with one right spelling; used in PO work and CSV exports
Season (FW26, SS26) Tag A pure grouping label; feeds automated collection conditions and promo sweeps
Preorder-eligible Metafield, true/false Boolean drives a clean collection condition; tags can't say "is/is not"
Country of origin Product metafield Needs to export in CSV for compliance paperwork
Restock cadence (weekly, monthly) Tag Broad internal grouping; no arithmetic done on it
Care/wash instructions Product metafield, text Displayed in theme via dynamic sources, unique per product
Internal promo state (vip, do-not-discount) Tag Fast to add/remove in bulk, invisible enough, no validation needed

Read the table's rule out loud: if the value would embarrass you in a filter, an export, or a collection condition when it's misspelled, it's a metafield. If it's just a flag for humans to sort by, it's a tag. Bin codes and supplier refs fail the typo test immediately — which is why they're the classic first metafields an ops team builds, along with the lot numbers and reorder fields covered in the Shopify metafields for inventory guide.

What tags-for-structure actually costs

The bin-code example is worth running with numbers, because the failure mode is slow and expensive rather than dramatic. Suppose Field & Folio's harness warehouse stores stock in 212 bin positions, and the team records bins as tags: bin-12, bin 12, B12, bin-012. An illustrative audit of the tag list finds 14 near-duplicate clusters — call it 14 bins that resolve to two or more tags. Every pick-path printout now needs a human merge step: at an estimated five minutes to reconcile each cluster during a weekly cycle-count prep, that's about 70 minutes a month of pure typo tax, plus the risk that a count or a transfer gets recorded against a bin that doesn't exist.

The metafield version costs one setup session: a Bin location definition, single line text, variant-level, with the product-list filter activated. Values import by CSV; the filter view "everything in bin B12" is one click forever; and a misspelled bin is still possible but visible — it shows up in the filtered list as the stray value it is, instead of hiding inside a 3,000-tag cloud. Structure doesn't prevent errors; it makes them findable, which at 340 SKUs is the difference between a two-minute fix and a quarterly mystery.

The migration checklist

For data already living on the wrong side, the move is mechanical if you do it in this order:

  1. Export the product CSV and inventory the field in question — list every distinct tag or value, including the near-duplicates. This list becomes your validation target.
  2. Create the definition first: Settings > Metafields and metaobjects, choose product or variant level deliberately (bin codes are variant-level; supplier refs are usually product-level), pick the type, add validation if the format is strict.
  3. Activate the right options on the definition — product-list filtering, collections, whatever you'll actually use — before populating, so the field is testable immediately.
  4. Move values in bulk: product metafields go through the product CSV (define first, then the column appears in exports); variant metafields go through the variant bulk editor. Spot-check 20 rows before trusting the rest.
  5. Re-point anything that consumed the old data — automated collection conditions that matched the old tags, saved views, staff habits. Conditions on metafields need the definition activated for collections to work.
  6. Delete the dead tags only after the metafield values verify clean. Tags are cheap to keep and dangerous to trust; retire them once nothing reads them.

Doing steps in the wrong order produces the classic migration headache — 2,000 populated values with no definition to validate against — so definition-before-values is the one rule to keep.

One boundary worth stating: this piece is the storage decision only. Building the tag taxonomy itself — naming conventions, when tags beat collections, the seasonal-tag workflow — is covered in the Shopify product tags guide, and building out the metafield layer for bin codes, supplier refs, and inventory annotations is the territory of the metafields for inventory guide. And when the point of the structure is merchandising itself — restock views, ABC slices, collection-driven promo sweeps — the Shopify collections guide covers that layer. Use this piece to decide which system each field belongs to; use those to build the systems.

Common questions

Should bin codes be tags or metafields in Shopify? Metafields — a variant-level, single-line-text definition with product-list filtering activated. Bin codes must be typed consistently and filtered precisely, which is exactly what tags can't enforce. As a bonus, variant metafields for internal data never surface to customers, while tags can appear in storefront filter menus depending on the theme.

Do Shopify metafields work for automated collections? Yes, once the definition is activated for collections. Supported condition types include true/false, integer, decimal, rating, and single line text, and a single collection can hold up to 60 conditions. Remember the activation step: a defined-but-not-activated metafield won't appear as a condition option at all.

What's the tag limit on Shopify products? 250 tags per product, using ordinary letters, numbers, and hyphens. Special characters are treated as equivalent — sale25 and sale25% are the same tag — and product tags can run up to 255 characters, though short, consistent tags are far easier to keep clean as the catalog grows.

Can I export metafields from Shopify? Product metafields export in the product CSV once a definition exists, in a Name (product.metafields.namespace.key) column. Variant metafields are the exception: they don't ride the product CSV and must be bulk-edited in the variant editor instead. Plan your field level around which one needs bulk export.

Are tags visible to customers on Shopify? In some themes, yes — product tags can appear in dropdown filter menus on collection pages, and Shopify's documentation warns merchants to name tags with customers in mind. Internal-only labels like promo states or supplier codes can leak. If a value must never be customer-facing, a metafield is the safer container.

Next step

Audit one field this week: pull your tag list, find the field that's really a value wearing a label costume (bin codes and supplier refs are the usual suspects), and run the migration checklist on it — definition, activation, bulk move, tag cleanup. If the audit shows your whole tag system needs rethink rather than one field migrating, start with the product tags guide to rebuild the taxonomy, then use the metafields for inventory guide to give the structured fields a proper home.