Feed error
Item disapprovedMismatched value: availability
The availability mismatch error means the feed says an item is purchasable but the crawled landing page suggests otherwise, or the reverse. On Shopify it is usually a stale feed after a sell-out, or an availability value derived from inventory quantity alone without accounting for variants that do not track inventory or that allow overselling.
How this appears in your account
The exact wording the channel shows, so you can match what you are looking at.
- Mismatched value (page crawl): availability [availability]
- Availability mismatch
- Product unavailable on landing page
What it affects
- Channels
- Google Shopping Microsoft Advertising
- Attributes
- availability link
- Scope
- A subset of items
Why it happens on Shopify
The product sold out after the last feed generation
The most common case, and a pure timing problem. The feed was accurate when it ran, stock reached zero afterwards, and the crawler compared the live page against a feed describing an earlier moment.
Availability was derived from quantity alone
A variant with zero inventory is still purchasable if it does not track inventory, or if it allows overselling. Mapping in_stock purely on quantity greater than zero marks those items out of stock while the storefront happily sells them.
The link resolves to a variant that is unavailable
If the link omits the variant parameter, the crawler lands on the product's default variant. When that default is sold out but the row describes an in-stock variant, the page and the feed disagree.
Stock is location-scoped
Shopify tracks inventory per location. Summing every location, including warehouses that do not fulfil online orders, overstates what is actually purchasable through the storefront.
The availability value uses the wrong vocabulary
Values must be lowercase with underscores. Older space-separated forms such as "in stock" persist in feed templates and are either rejected or misread.
How to fix it
-
Check the failing row against its own link
Open the link from the row and confirm whether that specific variant is buyable. This separates a timing problem from a logic problem, and the two need completely different fixes.
-
Derive availability from purchasability, not quantity
An item is in stock if it does not track inventory, or tracks inventory with quantity above zero, or allows overselling when out of stock. Only a variant that tracks inventory, has none and denies overselling is genuinely out_of_stock.
-
Scope inventory to the locations that fulfil online orders
Exclude locations that do not serve the storefront before summing quantity, so the feed reflects what a shopper can actually buy rather than what exists somewhere in the business.
-
Include the variant parameter in every link
Adding the variant selector to the landing page URL sends both the shopper and the crawler to the exact variant the row describes, which removes an entire class of false mismatch.
-
Regenerate often enough to track how fast stock moves
For a catalogue with fast-moving or low stock, a daily feed will regularly be wrong. Increase the regeneration frequency, and on channels that support it use a push mechanism for urgent stock changes rather than waiting for the next scheduled pull.
How feedlab handles this
feedlab registers Shopify webhooks, so an inventory change lands in feedlab within seconds and every scheduled run reads current data rather than a nightly snapshot. Availability is mapped through conditional rules over the inventory policy and tracking fields rather than raw quantity, and a daily reconciliation pass catches anything a webhook missed.
Frequently asked questions
How do I correctly map Shopify availability?
Treat it as purchasability rather than quantity. The item is in stock if inventory is not tracked, or tracked with quantity above zero, or the variant allows overselling. Only a tracked variant with no stock that denies overselling is out_of_stock.
Why do out-of-stock products keep getting disapproved?
Usually feed cadence. If stock reaches zero hours after the feed runs, the feed keeps claiming the item is available until the next regeneration, and the crawler can check at any point in that window.
Does Shopify multi-location inventory affect the feed?
Yes. Summing every location counts stock held at warehouses that do not fulfil online orders, which overstates availability. Inventory should be scoped to the locations that actually serve the storefront.
Primary sources
Channel specifications change. These are the official documents this page is based on.