Feed attribute
availability
Stock availability
The availability attribute tells a channel whether an item can be bought right now, using a fixed vocabulary rather than a stock count. On Shopify it cannot be read from inventory quantity alone, because a variant that does not track inventory or that allows overselling is purchasable at zero quantity.
Specification
- Attribute
- availability
- Data type
- Enumerated value
- Format
- One of a fixed set of values, lowercase with underscores: in_stock, out_of_stock, preorder, backorder. Channels differ on which of the four they accept, and older specifications used space-separated forms such as "in stock" that still circulate in templates.
- Examples
-
in_stockout_of_stockpreorderbackorder
Support by channel
How each channel treats availability.
| Channel | Requirement | Field name | Notes |
|---|---|---|---|
| Google Shopping | Required | availability | Crawled from the landing page and compared against the feed. |
| Meta | Required | availability | Also accepts available_for_order and discontinued. |
| Microsoft Advertising | Required | availability | |
| Required | availability | Only refreshed once every 24 hours. | |
| OpenAI | Required | availability | Accepts in_stock, out_of_stock, pre_order, backorder or unknown. The Google-compatible variant spells the third one preorder. |
Frequently asked questions
How do I work out availability from Shopify inventory?
Quantity alone is not enough. A variant is purchasable if it does not track inventory at all, or if it tracks inventory and has quantity above zero, or if it allows overselling when out of stock. Only a variant that tracks inventory, has no stock and denies overselling is genuinely out_of_stock.
What are the valid availability values?
The core vocabulary is in_stock, out_of_stock, preorder and backorder, written lowercase with underscores. Channels differ on which they accept, and Meta additionally recognises available_for_order and discontinued.
Why does Google say my availability does not match my site?
Usually the feed is stale. If a product sells out after the last feed generation, the feed still says in_stock while the crawled page says sold out. Regenerating the feed on a schedule that reflects how fast stock moves is the fix.
Errors involving this attribute
Related attributes
Related concepts
Primary sources
Channel specifications change. These are the official documents this page is based on.