Why Your Meta Catalog Shows 'Items Not Available' Even Though Shopify Inventory Is Live
- info wittelsbach
- 5 days ago
- 5 min read
Your Shopify dashboard shows 240 active SKUs. Your Meta Catalog shows 80 as Items Not Available. Your Advantage+ Shopping campaigns are running on a third of your real inventory and you're losing daily revenue to a desync that has no obvious cause.
This is one of the most expensive silent failures in D2C catalog operations. Meta's catalog logic doesn't always match Shopify's inventory logic, and the gap between them is where revenue leaks. Here's what's happening and how to fix it.
First: Confirm the Items Are Really Marked Unavailable
Open Commerce Manager → Catalogs → your catalog → Items tab. Filter by Availability: Not Available. Click into 3-5 of the unavailable items to see Meta's diagnostic message for each.
Out of Stock — Meta thinks inventory is zero.
Price Issue — price field is malformed or missing.
URL Issue — product page returns 404, 301, or non-HTTPS.
Image Issue — image link is broken or too small.
Policy Violation — title or description triggers Meta's commerce policy.
Each diagnostic points to a specific cause. Don't fix without reading the message — random catalog reuploads make the problem worse.
The Root Cause: Inventory Sync Lag and Field Mismatch
Shopify pushes inventory to Meta via the Meta sales channel or via product feed XML. Both methods have a sync delay (15 minutes to 24 hours) and both fail silently when field mapping is off.
The 7 most common failure patterns are below — diagnose, fix, and the catalog rebuilds within 4-12 hours.
The 7 Causes Behind 'Items Not Available'
Cause 1: Shopify Inventory Tracking Turned Off
If you don't track inventory on a SKU (because it's a service or made-to-order), Shopify pushes inventory as null. Meta reads null as zero. Fix: in the Shopify product editor, set inventory tracking on with Continue selling when out of stock enabled — pushes inventory as high constant, not null.
Cause 2: Variant Inventory Below Threshold
Meta's catalog marks items unavailable when stock drops below a threshold (usually 1). If one variant in a product is out of stock, Meta sometimes marks the whole product unavailable depending on feed structure. Fix: enable variant-level catalog or hide zero-stock variants from the feed.
Cause 3: Product Page URL Broken
You renamed the product, the URL slug changed, Shopify auto-redirected, but Meta's catalog cached the old URL. Now it 404s on Meta's crawler. Fix: in Catalog → Item Details, update the link manually, or trigger a feed refresh after every URL change.
Cause 4: Image Below Meta's Size Threshold
Meta's minimum is 500x500px for catalog images. Many product images on lifestyle Shopify themes are served at 300x300 by default. Fix: upload high-resolution PDP images (1080x1080 minimum) and verify Shopify isn't auto-downsizing in the feed XML.
Cause 5: Currency or Price Format Wrong
Price feed shows `Rs. 1,250` or `INR 1250` instead of `1250.00 INR`. Meta requires ISO 4217 currency code suffix with no symbols. Fix: in Shopify Markets, ensure INR is set as the default catalog currency.
Cause 6: Product Title Triggers Policy Filter
Words like slimming, whitening, cure, CBD, or anti-aging trigger Meta's commerce policy filter and items get marked unavailable. Fix: rewrite titles to descriptive product names — *Brightening Vitamin C Serum* instead of *Whitening Serum*.
Cause 7: Feed Refresh Not Running
Your scheduled feed refresh failed silently. Meta is still using a 7-day-old snapshot. Fix: in Catalog → Data Sources, check Last refresh. If it's more than 24 hours old, trigger manual refresh and investigate why scheduled refresh broke.
The Diagnostic Flow — Match Your Symptom to the Cause
Run this in order. The first match is usually the answer.
Click into 3-5 unavailable items — read the Meta diagnostic verbatim.
Check Data Sources last-refresh timestamp — if stale, Cause 7.
Verify product URLs — open them in incognito, watch for redirects, Cause 3.
Inspect image dimensions — right-click → Inspect → check natural dimensions, Cause 4.
Spot-check titles for restricted words — Cause 6.
Cross-check Shopify inventory tracking — settings per product, Cause 1 and 2.
Validate price format in raw feed XML — open Data Source URL in browser, Cause 5.
The Permanent Fix — Catalog Hygiene That Holds
One-time fixes break again the next time you launch a new product or rename an old one. Build these into your catalog ops.
Run a weekly catalog audit — Commerce Manager → Items → filter Not Available, fix root causes.
Standardize Shopify inventory tracking across all SKUs — never null inventory.
Use Shopify's Meta Channel app instead of manual XML feeds for the auto-update logic.
Audit new product titles against the restricted-words list before publishing.
Lock catalog currency to INR in Shopify Markets to prevent USD drift.
How Wittelsbach AI Catches Catalog Drift in Real Time
Bach AI runs daily catalog reconciliation between your Shopify inventory and your Meta Catalog availability. When the gap exceeds 5%, it flags every impacted SKU with the specific cause (inventory, URL, image, currency, policy) and the exact Shopify field to fix.
Most Indian D2C brands discover catalog drift after Advantage+ Shopping performance tanks. Bach AI catches it before the campaign sees the loss. Run a free Meta Ads audit at [app.wittelsbach.ai](https://app.wittelsbach.ai).
Frequently Asked Questions
How long does Meta take to update catalog availability after I fix a SKU?
If you triggered a manual refresh, 1-4 hours. If you're waiting for the scheduled refresh (typically every 24 hours), up to 24 hours. The Items tab in Commerce Manager shows the Last Updated timestamp per SKU — once that updates, your fix is live. Meta sometimes takes an additional 2-6 hours to propagate availability changes to active ad sets.
Does using Shopify's Meta Channel app eliminate catalog desync?
It reduces it significantly — typically catalog accuracy goes from 70-80% (manual XML) to 92-97% (Meta Channel). It doesn't eliminate desync entirely because Meta's policy filter still rejects items based on title/description, and inventory thresholds still apply. Use the Channel app plus weekly catalog audits — that's the 2026 best practice.
Should I run Advantage+ Shopping if 20% of my catalog is unavailable in Meta?
No. Advantage+ Shopping optimizes against your full catalog. When 20% is unavailable, Meta either ignores those SKUs (your bestsellers might be in that 20%) or surfaces irrelevant products. Fix catalog availability above 95% before scaling Advantage+ Shopping. Brands that skip this typically see 30-50% lower ROAS than they should.
Can a single low-quality product image affect my entire catalog's performance?
Yes, indirectly. Items with image issues are marked unavailable, which reduces your effective catalog. But beyond availability, Meta's algorithm weights image quality in dynamic creative — low-resolution images get less impression share in mixed-catalog ads. Maintain 1080x1080 minimum across the entire catalog for both availability and performance.
What's the difference between 'Out of Stock' and 'Items Not Available' in Meta Catalog?
Out of Stock means Meta knows the SKU exists but inventory is zero. Items Not Available is broader — includes out of stock plus URL issues, image issues, price issues, and policy issues. In Commerce Manager, the filter shows them separately so you can prioritize. Out of Stock fixes itself when you replenish; Items Not Available requires structural fixes to feed or product setup.
