Available for projects & agency overflow · Quick reply, from the person who does the work

Setting up a Google Merchant Center feed on PrestaShop

A Google Merchant Center feed is a structured file, XML, CSV/TSV or a direct call to the Content for Shopping API, listing every product with the attributes Google expects for Shopping. On PrestaShop, an official module built with Google can generate it, but the most frequent rejection cause I fix is a feed set up once and never resynchronised with the shop’s real stock and prices.

Describe my issue Send a message

The situations I handle

  • Products disapproved in Merchant Center with no obvious issue on the product page
  • A feed generated when the shop launched and never revisited since
  • The price shown on the site differs from the price sent in the feed
  • A product out of stock on the site but still "in stock" in Merchant Center
  • Uncertainty over which attributes are actually mandatory before building a custom feed
  • Migrating to PrestaShop 9 with doubts about which export module to use

How I set up the feed on PrestaShop

  1. Using the official module

    PrestaShop offers a module built with Google ("PrestaShop Marketing with Google"), bundled into the PrestaShop Essentials suite and compatible with recent PrestaShop versions including 9. I start from this module rather than a hand-built feed whenever the shop is a standard case.

  2. Checking the core attributes

    Before publishing, I check every product sends a stable id (in practice the reference or SKU), a title, a description, the link to the product page, an image_link, price with the right currency, availability, and a recognised product identifier (GTIN, or brand + MPN). If the shop uses combinations (the product_attribute table), each combination goes out as its own item, with its own id, price and availability, the items of a given product being tied together by item_group_id.

  3. Handling products with no standard identifier

    For a product with genuinely no GTIN and no listed brand, I set identifier_exists=no rather than leaving the field blank or making up a code: an invalid GTIN is one of the most common disapproval reasons.

  4. Setting the update frequency

    I schedule a daily feed refresh, especially for price and availability. Google requires a refresh at least every 30 days but explicitly recommends a daily cadence to avoid a gap between the feed and the shop.

  5. Checking after publishing

    Once the feed is submitted, I check each product’s status in Merchant Center (approved, pending, disapproved) and monitor rejection reasons in the days following the first sync.

The stale feed trap

The most common issue I fix isn’t a badly filled attribute but a feed that no longer moves: generated once at launch, it keeps announcing a price or availability that no longer matches the site weeks or months later.

Google checks the feed against the product page when it crawls it: a price or availability gap triggers a disapproval, not just a warning. A properly scheduled daily refresh avoids this, provided the job that triggers it actually runs, which I always verify rather than assume just because it was configured once.

flux-google.xml
<item>
  <g:id>REF-0001</g:id>
  <g:title>Exemple de produit</g:title>
  <g:price>29.90 EUR</g:price>
  <g:availability>in_stock</g:availability>
  <g:identifier_exists>no</g:identifier_exists>
</item>

Related pages

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

outil
api
sens
frequence (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Is the official PrestaShop module enough, or do I need a custom feed?
For a standard shop, the official module built with Google covers the core attributes. A custom feed becomes useful for pricing or attribute rules no module covers.
How often does the feed need updating?
Google requires a refresh at least every 30 days but recommends a daily cadence, especially for price and availability, which I set as the default.
What if a product has no GTIN?
I set identifier_exists=no rather than making up a code or leaving the field blank, which risks rejection for an invalid GTIN.
Does the PrestaShop feed also work for Meta or Pinterest?
The attribute structure is close, but I recommend adapting the feed rather than reusing it as is, since each platform has its own fields and categories.
Is the module compatible with PrestaShop 9?
Yes, the official module built with Google is compatible with recent PrestaShop versions, including 9.