Short answer. Merchant Center disapproves a product with “Invalid value [availability]” when the availability attribute holds anything other than in_stock, out_of_stock, preorder or backorder. Replace the word in your export with one of those four, and make sure it matches what the product page shows.
| Shown in Merchant Center as | Invalid value [availability] |
|---|---|
| Attribute | availability |
| Effect | Product disapproved |
| Where to find it | Products → Needs attention, then filter by this issue |
| Free check | Reported by the free feed check |
What Merchant Center means by “Invalid value [availability]”
availability is required and takes one of a fixed set of values. Google’s availability specification lists them: in_stock, out_of_stock, preorder and backorder (plus build_to_order for vehicle ads only). Anything else, including a perfectly clear English word like “available” or “sold out”, is “Invalid value [availability]”, listed as invalid_enum_value in the Content API’s product issues reference, and the product is disapproved.
Google does not interpret. It also does not default: a missing availability is a different error. The value has to be one of the four, spelt as the specification spells it, and it has to agree with what your product page shows, or the product runs into the page-crawl mismatch next.
Why it happens
- Translated words.
disponibil,auf Lager,skladem,dostępny: the store’s language written into the feed. - Booleans and counts.
yes,true,1, or the stock quantity itself (37). - Store vocabularies.
available,limited,low stock,sold out,discontinued,coming soon. - Typos and spacing.
instock,in-stock,In Stockwith a trailing space in a hand-edited file. - One file for several channels. Meta and Microsoft document the spaced forms (“in stock”); Google’s specification lists the underscore forms. Google reads the spaced spelling too, but a file written for a comparison site’s vocabulary will not pass.
How to fix it
In Shopify
Shopify has no availability text field; the value is derived from inventory quantity and the “continue selling when out of stock” setting, and Shopify’s channel writes the correct word. If you see this error from a Shopify store, the feed is built by a tool that maps a custom field or a tag to availability. Remove that mapping and let the tool derive it from inventory.
In WooCommerce
WooCommerce’s stock status is instock, outofstock or onbackorder internally, none of which is a Google value as-is. A feed plugin has to translate; our free connector maps them to in_stock, out_of_stock and backorder, per variation. If you export with a generic tool, add the same mapping or the raw status leaks through.
In a CSV or XML feed
Replace every value in the availability column with one of the four. A mapping table is enough: any “available”, “yes”, “limited” or stock count above zero becomes in_stock; “sold out”, “discontinued”, “no” or zero becomes out_of_stock; “coming soon” with a date becomes preorder (and needs availability_date); orderable-but-not-in-stock becomes backorder. Trim whitespace and use lower case.
How long until Merchant Center clears it
The disapproval lifts on the next fetch that carries a valid value, within 24–72 hours. Products that were out of stock all along are then correctly excluded from ads, which can make the approved count look lower than before; that is the feed telling the truth for the first time.
What FeedRobin does about it
This is one of the defects the free check both finds and repairs. It reports every row whose availability word no channel recognises, as critical, because such a product is read as unavailable everywhere while your store still sells it. Then the fix preview shows the translation we would apply, before and after, for the words we know (schema.org spellings, and stock words in English, Romanian, Hungarian, Czech, Slovak, Polish and German); words we do not know stay flagged for a person rather than guessed, since guessing a stock state wrong either hides a product that is for sale or advertises one that is not. Spaced spellings are reported separately as legacy, not as errors, and each channel we render gets the spelling its own documentation asks for.
Questions merchants ask
Is “in stock” with a space valid?
Google’s specification lists the underscore forms and reads the spaced ones. Meta and Microsoft document the spaced forms. Use in_stock for Google and let each other channel have its own spelling rather than sending one file to all three.
Why does “available” fail?
Because it is not on the list. Google does not guess: any value that is not one of the four is invalid, including translations, “yes”, “true”, “1”, “limited” and “sold out”.
What if I have more stock states than four?
Map them. Low stock is in_stock; discontinued and sold out are out_of_stock; coming soon with a date is preorder; temporarily unavailable but orderable is backorder. Your store keeps its own vocabulary; the feed uses Google’s.
Sources
- Availability [availability] — Google Merchant Center Help
- Product issues (Content API for Shopping): the issue codes and the titles Merchant Center shows — Google Merchant Center Help
- Product data specification — Google Merchant Center Help