PrestaShop Product Feed: Solving Availability Issues with Default Variants

Issue with Product Variations Availability in Google Merchant Center

Hello,

I have configured the PrestaShop product feed for Google Merchant Center. The feed is currently set to send only the default product variation for each item.

However, I’m encountering an issue: some products are not approved by Merchant Center because the first variation displayed on the product page is out of stock, even though other variations (e.g., different sizes) are in stock.

In the product data structure, all variations are correctly listed with their respective availability statuses, but Google still appears to consider only the first variation when evaluating the product’s availability.

Example:
A product has “Small”, “Medium”, and “Large” size variations. The “Small” size is out of stock, while “Medium” and “Large” are in stock. The feed shows the product as “in stock”, but Merchant Center rejects it because it seems to read only the “Small” variation.

Do you have any suggestions on how to resolve this issue?

Thank you in advance,
Adela

The short answer is:

Why does Google Merchant Center (GMC) disapprove a product for “out of stock” availability even when other variations are in stock in PrestaShop?

Your Prestashop feed is likely structured to send only one entry per product, and Merchant Center is reading the stock status of the first variant it sees, which is out of stock, causing a mismatch disapproval.

To solve this, you must change your feed export logic to send every single in-stock size/variant as a separate, unique item with its own id, availability set to in_stock, and a unique link URL that pre-selects that specific variant on the landing page, while using the same item_group_id to keep them grouped in Shopping ads.

The long answer is:

Adela, this is an incredibly common challenge, especially with older Prestashop modules or default feed configurations, because Google Merchant Center’s core rule is that the availability in the feed must match the availability shown on the landing page for the primary product link.

The moment you have a product link that defaults to an “out of stock” variant (“Small”), Google’s system sees the mismatch and disapproves the entire product, regardless of what the product page’s structured data says about “Medium” or “Large.”

There are two primary ways to resolve this.

The immediate, tactical solution is to change your Prestashop feed configuration.

You must update your module or custom script to: first, export all product variants (combinations), not just the default one.

Second, give each variant a unique id (e.g., productID-variantID) but assign them all the same item_group_id (the parent product ID).

Third, critically, the link attribute for each variant must be a deep link that pre-selects that specific size on the product page.

For example, the link for “Medium” should be yourstore.com/product-name?size=medium.

This ensures that when Google crawls the link for the “Medium” variant, the page loads with “Medium” selected and its availability status showing in_stock.

Any variants that are out_of_stock should either be excluded entirely from the feed or submitted with out_of_stock as the availability.

The excellent and cheap long-term solution you asked about involves using server-side logic and the Google APIs for guaranteed data accuracy and real-time updates.

While the tactical fix works for initial approval, stock changes happen constantly, and manually updating a feed is not ideal.

A server-side solution addresses this by using the Content API for Shopping to manage your feed updates.

Instead of relying on a file-based feed that is only fetched once or twice a day, you can use the PrestaShop Webservice API or webhooks to detect any inventory change instantly.

When a change happens – say, the “Small” size goes from in_stock to out_of_stock or vice-versa – your server-side setup, which could be hosted cheaply on a service like Stape or Google Cloud Platform, receives this notification.

It then uses the Content API for Shopping to send an immediate, real-time update for just that one product variant to Google Merchant Center.

This ensures your product data is always consistent with your inventory.

Furthermore, for advanced conversion tracking, this same system can be used with Google Tag Manager to capture the Google Click Identifier (gclid) from the ad click and send it via the Google Ads API as an Enhanced Conversion event once the purchase is complete, offering the most robust, accurate tracking data available.

About The Author