How to Fix “Universal product code or availability is missing” in Meta Commerce Manager
Meta needs an availability value it recognizes on every item. Free-text stock states such as “available”, “Disponible” or “2 in stock” are read as missing, and the product drops out of dynamic ads.
Scan your feed for this error for free
Paste your product feed URL (XML, CSV or JSON). The audit checks Universal product code or availability is missing along with 25+ other pre-channel rules.
Why this happens
Technical root cause
Availability is a controlled vocabulary in the Meta catalog spec, but most store exports emit whatever the inventory system stores — a boolean, a localized word, or a stock count. Meta does not coerce those values, so the field is treated as absent.
Meta Commerce Manager reports it as Universal product code or availability is missing and applies: Product not eligible for Advantage+ catalog ads or Shops.
Native CMS friction
Shopify
Inventory policy and inventory quantity are separate fields; the native export can publish a variant with tracking disabled and no availability signal at all.
VTEX
Availability derives from seller-level logistics data, which is often flattened into a numeric quantity rather than a catalog keyword.
WooCommerce
The stock_status meta returns instock / outofstock / onbackorder, none of which match Meta's accepted values verbatim.
Fixing it manually
- 1
Open Commerce Manager → Catalog → Data sources and download the list of rejected items.
- 2
Confirm which inventory field your export actually publishes for each product.
- 3
Translate every stock state into one of Meta's accepted values: in stock, out of stock, preorder, available for order or discontinued.
- 4
Republish the feed and re-run the data source so Meta revalidates the items.
The IRONFEED automated solution
One rule, applied to every product on every export. No spreadsheets, no re-uploads.
IF availability NOT IN ('in stock','out of stock','preorder')
SET availability = normalize_stock(inventory_quantity, stock_status)
ELSE IF inventory_quantity > 0 SET availability = 'in stock' ELSE 'out of stock'Run automatic linter checks before Meta Commerce Manager crawls your feed. IRONFEED validates every export against the channel spec, so this error is caught in Feed Review instead of in your channel dashboard.
Attribute requirements
| Attribute | Meta Ads requirement | Accepted format | IRONFEED transformation |
|---|---|---|---|
availability | Required on every item | in stock | out of stock | preorder | available for order | discontinued | Lookup table mapping every source stock state to an accepted keyword |
inventory | Recommended for Shops and checkout | Non-negative integer | Cast to integer, negatives clamped to 0 |
Frequently asked questions
Related Feed Issues & Fixes
Other critical errors affecting catalog performance on Google, Meta, TikTok, and Mercado Libre.
Image resolution is too low (< 500x500)
Storefront platforms serve derivative image sizes through URL parameters or filename suffixes. Feed exports commonly reuse the listing thumbnail rather than requesting the original asset from the CDN.
View Fix & RuleMissing field: description
Store descriptions are rich HTML written for a product page. When exported verbatim they contain markup, scripts or only a spacer tag, which Meta discards — leaving the attribute effectively empty.
View Fix & RuleMismatched value [availability]
Stock is the fastest-moving attribute in any catalog. Scheduled exports lag behind sales, and backorder or pre-order states have no direct equivalent in the storefront's boolean stock flag.
View Fix & RuleLooking for a different error?