How to fix lifecycle oos schema not updated on OpenCart

Update the `offers.availability` value in your Product structured data from `InStock` to `OutOfStock` (or `PreOrder`) whenever a product sells out, so Google's records always match your actual inventory.

Steps for OpenCart

  1. OpenCart does not output Product schema by default; it is typically added via an extension (e.g. SEO extensions from the OpenCart marketplace).
  2. Identify which extension or template file is generating your JSON-LD. Check `catalog/view/theme/<your-theme>/template/product/product.twig` (OpenCart 3) for any `application/ld+json` blocks.
  3. Update the availability value to use a Twig conditional based on OpenCart's stock status variable: `{% if product.stock_status == 'In Stock' %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}` — adjust the stock_status label to match your store's configured stock status name.
  4. Clear OpenCart's cache under Admin → Dashboard → (gear icon) → Refresh, then validate with Google's Rich Results Test.
Official OpenCart documentation ↗

What is lifecycle oos schema not updated?

Every product page on your store can include hidden structured data (called "Product schema" or "JSON-LD") that tells Google key facts about your item — its price, currency, and whether it is in stock. One field in that data, `offers.availability`, uses a standard vocabulary to signal stock status: `https://schema.org/InStock`, `https://schema.org/OutOfStock`, or `https://schema.org/PreOrder`. When a product sells out but this field is never updated, the schema keeps saying "InStock" even though the real page says "Sold Out." Google sees the contradiction and flags it as misleading data.

Google uses Product schema to power free Shopping listings and rich results. If Google detects that your structured data claims a product is "InStock" when it is actually sold out, it will disapprove those listings — meaning you lose free traffic from Google Shopping for every affected product. Repeated or widespread mismatches can also reduce Google's overall trust in your site's structured data, dragging down the rich-result eligibility of products that genuinely are in stock. Fixing stale availability data keeps your Shopping listings live, protects your click-through rates, and ensures customers who land on a product page aren't misled — reducing bounce rate and potential complaints.

See the complete Lifecycle oos schema not updated guide for every platform and the full background.

Not sure if your OpenCart store has this?

Run a free SEOLZ scan — we’ll find lifecycle oos schema not updated and every other issue across your whole site.

Scan my site free

Fix lifecycle oos schema not updated on another platform