A fact you’ve entered in a metafield or a category attribute hasn’t reached Shopify Catalog until you’ve seen it in a returned record. Until then, it’s populated, not received.

Shopify’s help page for its Shopify Catalog Mapping tool, as rendered on October 27, 2026, says you can change the sources for the Catalog title, description or category, for example pointing the description at a product metafield. You can also use a metafield to group products into one combined listing. Be careful: a copy of the same page served that day still said category can’t be mapped, so re-read it before you rely on it. Mapping is an instruction, not proof. In 1,620 records we pulled from Shopify’s Global Catalog search, no categories or metadata.attributes field appeared at all. The spec and feature lists that did appear are ones Shopify marks Inferred, meaning Shopify generated them.

So check each fact by field, and give it one of five statuses: matched, changed, generated, not observed or unknown.

Populated, mapped, received: three different claims

Merchants often treat these as one step. They’re three.

Claim What it means How you’d know
Populated The value is in your admin, in a field or metafield You can see it in the product editor
Mapped Shopify documents a route from that field into Catalog Shopify’s help page names the route
Received The value appears in a record that Catalog returns You’ve read the returned record and found it, in a named field

Only the third is evidence. The first two are intentions.

What Shopify documents today, and what we observed

The table lines up each place your data can live against the route Shopify documents and what we saw in 1,620 returned search records (October 26, 2026, no buyer context). “Not observed” means the key was absent from every record, not that Shopify never uses the data.

Where your data lives Documented route into Catalog Field in our returned records
Product title Default source; can be remapped to a metafield or combined with text or Liquid title: all 1,620
Product description Default source; can be remapped to a metafield or combined with text or Liquid description: all 1,620. Shopify marks it Inferred
Product category (Standard Product Taxonomy) Rendered help page: the category source can be changed in Shopify Catalog Mapping (another copy says it can’t). Shopify also classifies from your product information for eligibility categories: 0 of 1,620
Category metafields (taxonomy “product attributes”) Can drive variant options, and a category metafield can be the grouping key. No route as their own record field is documented metadata.attributes: 0 of 1,620
Your own product metafields By mapping them as the source of the title, description or (per the rendered page) category, or using them to group products No field of their own
Variant options and option names Sent by default; option display names can be set in Shopify Catalog Mapping Product options: 988. Shopify marks options Inferred
Type, vendor, collections, tags, barcode Shopify’s optimizing page says AI platforms “consider” them No tags, barcodes or sku key on any record
Compare-at price You choose whether Catalog sends compare-at prices; one copy says it goes out as the list price Variant list_price: 423
External URL standard metafield (Agentic plan) Required for Agentic-plan stores without a published store Not checked
Generated spec, feature and selling-point lists Shopify generates them; you can’t map them metadata.tech_specs, top_features, unique_selling_points: 1,548

Two things in that table are easy to get wrong.

The metadata in the record isn’t your metafields. The Universal Commerce Protocol, which Shopify’s catalog follows, defines product metadata as business-defined custom data. But the metadata keys we saw in Shopify’s Global Catalog were the three lists Shopify marks Inferred. Seeing a spec in metadata.tech_specs tells you Shopify produced it. It doesn’t tell you your metafield arrived.

“Considered” isn’t “received”. Shopify says AI platforms consider type, vendor, collections, tags and barcode. None of those appeared as a key in the search records we read. They may be used for matching inside Shopify. The documentation doesn’t say, so record them as unknown.

The metafield-to-record mapping template

Fill in one row per fact that matters to a shopper. The first three columns come from your admin; the last three from the returned record. This template is our proposal, not a Shopify feature.

Fact Where you entered it (field or metafield, exact value) Documented route Field in the returned record Value found Status
[e.g. noise level] [custom.noise_level: 26 dB, sleep mode, 1 m] [description mapping, or none] [description / metadata.tech_specs / none] [quote] [status]

Use exactly one status per row:

Status Meaning What to do
Matched Your value appears, with the same number and unit, in a named field Nothing. Re-check after big edits
Changed It appears, but the number, unit or condition differs Find out which copy is right, fix the source, re-check
Generated A value appears only in an Inferred list and you didn’t write it there Confirm it against a real source. If it’s wrong, correct your own text so there’s a right value to work from
Not observed You looked at the record and the fact isn’t there Map it into the description, or write it into the description directly
Unknown You haven’t seen a returned record, or the route isn’t documented Leave it unknown. Don’t mark it received because the admin field is filled

The last row is the discipline that matters. A filled metafield with no observed record stays unknown.

Worked case 1: one backpack, one ambiguous line

We can’t see any merchant’s admin, so this case fills only the record side of the template. It’s still the side most merchants never look at.

Search: “anti theft backpack for city travel”, position 8. The description lists its size as “Volume: 28L Height: 11.2 inch Width: 7.5 inch Depth: 2.4lbs”. It gives no weight anywhere. Shopify’s generated spec list says:

  • “Weight: 2.4 lbs (1.1 kg)”
  • “Dimensions: Height 11.2 in, Width 7.5 in, Depth 2.4 in”
Fact Description says Generated spec list says Status
Volume “28L” “28 liters” Matched
Height and width “11.2 inch”, “7.5 inch” “11.2 in”, “7.5 in” Matched
Depth “2.4lbs” (a weight unit on a length) “2.4 in” Changed
Weight Nothing “2.4 lbs (1.1 kg)” Generated

One line in the description became two different facts in the generated list: a depth in inches and a weight in pounds, plus a kilogram conversion nobody wrote. Our guess is that “2.4lbs” was a weight typed into the depth line. That’s an inference, and the record can’t settle it. We don’t know whether the depth is 2.4 inches, or whether the bag weighs 2.4 pounds. Neither does an agent reading this record.

The fix is at the source. Put depth and weight in their own measurement fields, with units, so each value has one home. Then make sure the text Catalog receives states both correctly, and re-read the record. Our specification template covers which Shopify measurement types fit which facts.

Worked case 2: the same fact, counted two ways

For “humidifier for dry winter air large room quiet top fill”, a decibel figure appears in the description of 4 of the 10 listings (positions 2, 3, 5 and 7). Counting the description or Shopify-generated metadata, it appears in 6 of 10 (adding positions 6 and 9). It’s in no title.

Both counts are true, and they mean different things. For positions 6 and 9, the decibel figure exists in the record only as a generated value. If you owned either listing, your template row would read: noise level, your source unknown to us, no documented route, metadata.tech_specs, “26 dB”, Generated. That’s a fact you should confirm and then state in your own text, with the setting it was measured at. Our humidifier audit has the full field-by-field breakdown.

How to get a metafield fact into the record

Shopify documents four levers. We haven’t tested what any of them produces in a returned record, so re-read the record after using one.

  1. Put the fact in the description text. The description is in every record we read. That makes it the one field you write that reliably travels, though Shopify marks it Inferred too.
  2. Map the description in Shopify Catalog Mapping. Shopify’s example is changing the description source to a product metafield, and one copy of the page adds that text fields can combine sources with entered text or Liquid. That’s how a structured value such as “Noise level: 26 dB (sleep mode, measured at 1 m)” could be appended to the Catalog description without changing your storefront. If a mapped metafield is empty for a product, Shopify falls back to the default source. Changes are processed with a delay Shopify doesn’t specify.
  3. Check the category source. The rendered help page lists category among the fields whose source you can change. Shopify doesn’t say how a mapped category shows up in a returned record, and none of our 1,620 search records carried a categories field. So treat a category mapping as unknown until you see it in a record.
  4. Connect category metafields to variant options. Shopify says category metafields can drive variant options, and options do travel (on 988 of our records). Shopify also lets you set the option display names Catalog uses. Keep them plain words; Shopify’s listing insights flag acronyms and numbers.

And pick the right taxonomy category anyway. Shopify classifies products from their information for Catalog eligibility, and an Uncategorized product is excluded. The taxonomy itself has limits, though: Shopify says unit of measurement and dimension-type attributes aren’t available, and custom attributes aren’t supported. Measurements still need their own fields.

How to read the returned record

You need the record, not the admin. Two documented ways:

  • The product preview in Shopify Catalog Mapping. Shopify says it shows how Catalog receives your product data, and that it isn’t an exact indicator of how AI channels view or display it. We haven’t seen the screen.
  • A developer lookup in Shopify’s Global Catalog. Shopify documents lookup_catalog, which accepts a product URL, and get_product for full details. Our counts come from the search route. A lookup may return fields a search doesn’t, and we didn’t test that.

Write down the date and the field name for every value you find. “It’s in Catalog” isn’t a finding. “description, 27 Oct, quoted” is.

For how a returned record is grouped with other sellers’ offers of the same product, see the Global Catalog identity guide.

How we checked

On October 27, 2026 we read Shopify’s help pages on customizing product data for Shopify Catalog, the Standard Product Taxonomy, category metafields, Catalog requirements and optimizing products, plus the Global Catalog and Global Catalog extension developer pages and the Universal Commerce Protocol catalog specification (version 2026-08-25).

We then re-read our saved Global Catalog responses for 162 searches, taken October 26, 2026 through Shopify’s command-line tool (catalog search, top 10, no buyer, country or currency context). A script counted which keys were present on each product and on its single returned variant, across all 1,620 records. It found:

  • no categories, metadata.attributes or tags on any product;
  • no sku, barcodes or tags on any variant;
  • non-empty metadata.tech_specs, metadata.top_features and metadata.unique_selling_points on 1,548 products;
  • product options on 988, variant list_price on 423, and variant disclosures on 2.

For the backpack, it extracted the description with HTML removed and the generated spec list for position 8 of “anti theft backpack for city travel”. The description contains “lbs” once, in “Depth: 2.4lbs”, and no other weight. We did not query the catalog again.

Your next step

Pick the three facts your customers ask about most for one product. Fill in one template row for each, and leave the record columns blank until a developer or the Shopify Catalog Mapping preview shows you the actual record. Any row that ends as “Generated” or “Not observed” is your first fix. Any row still marked “Unknown” means you haven’t checked yet. It isn’t a pass.