Google Product.category and Sale Dates: Map Merchant Center Fields to Schema

Map Merchant Center product type and Google product category values to Product.category, then align sale price dates with Offer and PriceSpecification fields.

Sonar maps merchant feed cards into Product.category and a price-validity calendar while mismatches fall into a warning tray.

Updated August 16, 2026: Google’s July 2026 documentation explains how Product.category can align with Merchant Center’s product_type and google_product_category. It also clarifies the schema fields that can describe a real sale or price-validity window.

The goal is not to copy every feed column into JSON-LD. Build an explicit mapping from one canonical product and offer record so the visible page, schema, Merchant Center feed and checkout agree.

Map category fields by owner

Merchant and Google categories do different jobs
Source fieldOwner and valueSchema mapping
product_typeMerchant-defined category pathProduct.category as text
google_product_categoryGoogle taxonomy identifier or pathProduct.category as text or CategoryCode
Private navigation labelInternal merchandising systemUse only if it accurately describes the visible product

Do not merge two taxonomies into a synthetic category string that neither system owns. Preserve the source field and version so a taxonomy update can be traced.

Map sale dates to the price object they qualify

The correct object depends on what the date qualifies
FieldUseFailure to catch
validFromBeginning of a time-bounded Offer or PriceSpecificationMarkup advertises the sale before purchase is possible
validThroughEnd of the applicable Offer or PriceSpecificationEnd-of-day and timezone assumptions diverge
priceValidUntilDate through which an Offer price remains validExpired price remains in markup or feed

Use ISO 8601 values and include timezone information when the boundary is time-sensitive. A price scheduler should update the page, structured data, feed and checkout from the same promotion record.

Use a field-lineage table

For product ID, variant ID, URL, title, image, category, brand, availability, base price, sale price, currency and sale dates, record the owning system, transformation rule, page selector, schema path, feed column, refresh cadence and failure owner.

This makes mismatches inspectable. A valid JSON-LD document can still describe a different variant from the landing page. A valid feed can still advertise an expired price. Syntax is only one release gate.

The ChatGPT product-feed guide applies the same lineage model to OpenAI commerce and ads paths. The schema guide separates machine-readable accuracy from rich-result eligibility.

Test before, during and after the sale

  1. Before: confirm the normal price is visible and sale objects are inactive or correctly future-dated.
  2. At start: verify the sale price is purchasable and all surfaces switch within the declared propagation window.
  3. During: sample variants, countries, currencies and cached pages.
  4. At end: verify the checkout and visible page revert, expired sale fields disappear, and feeds refresh.
  5. After: inspect rendered HTML and Search Console or Merchant Center warnings without treating absence of a warning as proof of display.

Limit: correct fields can support Google’s understanding and feature eligibility. They do not guarantee a rich result, Shopping placement, ranking or sale.

Primary documentation

Community discussion

Discuss: Google Product.category and Sale Dates: Map Merchant Center Fields to Schema

Have a question, a useful example, or a different perspective? Join the discussion, share evidence, and help other readers reach a better answer.

0 replies Moderated
No replies yet.

Be the first to ask a focused question, share a practical example, or add useful evidence.

Ask a question or join the discussion

Share evidence, a useful example, or a clear question. Be specific, stay on topic, and challenge ideas without attacking people. First-time replies may be held for moderation.