The module generates product files for comparison engines and advertising systems — Google Shopping, Meta, Ceneo and ChatGPT — and serves them at a stable, token-protected URL. This page covers feed configuration, automatic generation and the usual reasons a platform rejects a file.

What the module does

Feeds are defined in the back office (the AdminPdFeeds controller) and stored in ps_pd_feeds_feed; every generator run writes a row into ps_pd_feeds_log — date, status, product count, duration and message. The finished file is served by the feed front controller.

Requirements

  • PrestaShop 1.6, 1.7, 8 or 9.
  • The ability to call a URL from outside, if generation is to run from cron.
  • No ionCube.

Installation

  1. Back office → Modules → Module Manager → Upload a module.
  2. The installer creates both tables and the Product feeds tab.
  3. Add your first feed: name, platform, language, variant handling, and an optional restriction to a category or a manufacturer.

Feed URL

Each feed gets its own token and is available at:

/index.php?fc=module&module=pd_feeds&controller=feed&id_feed=1&token=XXXX

The token is compared in a timing-safe way; a URL without a token, or with a wrong one, returns 403. This is the address you paste into Google Merchant Center, Meta Commerce Manager or the Ceneo panel.

Automatic generation

All feeds are rebuilt by calling:

/index.php?fc=module&module=pd_feeds&controller=feed&regenerate=1&cron_token=XXXX

where cron_token must match the PD_FEEDS_CRON_TOKEN value from the module configuration. Schedule it once a day, during quiet hours. A single feed can also be rebuilt by hand with the Generate now button in the list.

The log

Every feed has a Log link with its generation history: date, status, product count, duration and error message. It is the first place to look when a platform reports that the file is empty or stale.

Troubleshooting

The platform rejects products for missing price or availability

Comparison engines require a complete set of fields. Check that products have a price, a stock level and a cover image — products without an image are often rejected outright.

The feed is empty

Usually because the category or manufacturer restriction matches no active product, or the selected language has no translated names. The log will then show zero products alongside a success status.

Generation stops halfway

Large catalogues can exceed max_execution_time. Run generation from cron rather than from the back office — a back-office request is subject to the web server time limit.

Feed prices differ from shop prices

The feed calculates prices in the currency and language set for that feed. With several currencies it is better to build a separate feed per platform and market than one shared file.

Module page in the shop

Cargando...
Volver arriba