# 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.

- Source canonique : [https://allaux.fr/en/services/tracking/flux-google-merchant-center-prestashop](https://allaux.fr/en/services/tracking/flux-google-merchant-center-prestashop)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> In the back office, open Modules > Module Manager and install the official PrestaShop Marketing with Google module rather than hand-building a feed. Then check every combination is exported with its own id, and that price and availability match the price actually charged and real stock. Confirm the result in Merchant Center product diagnostics, never in the generated file alone.

## 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.

## A feed that stops updating

> A feed generated once and left untouched always ends up drifting from the real stock and prices. That’s the most frequent disapproval cause I fix, ahead of a badly filled attribute.

## 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

- **Google Merchant Center feed from WooCommerce** — The same attributes on WooCommerce, where variations are split into separate items tied together by item_group_id, just like PrestaShop combinations. ([/services/tracking/flux-google-merchant-center-woocommerce](/services/tracking/flux-google-merchant-center-woocommerce))
- **Fixing Merchant Center errors** — The ordered method for reading a disapproval reason and fixing it. ([/services/tracking/corriger-erreurs-merchant-center](/services/tracking/corriger-erreurs-merchant-center))
- **Sale prices, shipping and availability** — The three attributes most often wrong in a feed. ([/services/tracking/prix-barres-delais-disponibilites-flux](/services/tracking/prix-barres-delais-disponibilites-flux))
- **Connecting a product feed** — The general guide to setting up a feed, across every channel. ([/guides/connecter-flux-produits](/guides/connecter-flux-produits))

## FAQ

### 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.
