Skip to content

Open Graph price and availability tags that say "undefined"

SuiteCommerce fills its Open Graph product tags by reading microdata from the rendered product page: og:price:currency from [itemprop="priceCurrency"], og:availability from [itemprop="availability"]. A theme built for JSON-LD has no microdata, so those tags publish the literal string "undefined".

Updated · By the SuiteAnalytics team

What we detect

Product pages whose og:price:currency or og:availability value is "undefined". These are the product fields Facebook’s shopping surfaces read; most other link previews ignore them — but the same mapping produces the rest of the card.

Where the values come from

The mapping lives in core (metaTagMappingOg). Each tag has a selector: the title reads [itemprop="name"], the description [data-type="social-description"] or [itemprop="description"], the image [data-type="social-image"] or [itemprop="image"]. The data-type hooks let a JSON-LD theme feed the image and the description; price, currency and availability have no such hook.

How to fix it

  1. Decide which source is authoritative for your theme: JSON-LD or microdata.
  2. If JSON-LD: override metaTagMappingOg from an extension so these tags read the item model instead of itemprop selectors.
  3. If microdata: add the itemprop attributes for price, currency and availability to the product page templates.
  4. Re-crawl and confirm og:price:currency carries the currency code.