Options de génération — Format de sortie & cURL
L'onglet Options de génération contrôle la façon dont votre flux produits est mis en forme et comment le module déclenche le processus de génération en arrière-plan via cURL. La plupart des boutiques fonctionnent correctement avec les paramètres par défaut, mais cet onglet est votre premier point de départ pour diagnostiquer les échecs de génération ou contourner des restrictions serveur.
Disponible depuis la v2.0.0
Vue d'ensemble
Lorsque vous sauvegardez et générez votre flux, le module effectue une requête HTTP interne (via cURL) vers l'URL de génération du flux de votre boutique. Cet appel interne lance le processus de génération en arrière-plan, de sorte que votre navigateur n'expire pas pendant que des milliers de produits sont traités.
Les paramètres de cet onglet vous permettent de :
- Choisir entre les formats de sortie RSS XML et ATOM XML
- Contrôler la gestion des délais d'attente et des certificats SSL par cURL lors de cet appel interne
- Activer un paramètre de randomisation d'URL qui force les systèmes de cache à servir des données fraîches plutôt qu'une réponse mise en cache obsolète
Ce sont des paramètres globaux — ils s'appliquent à toutes les boutiques dans une installation multi-boutiques.
Configuration
Accédez à Modules > Gestionnaire de modules > Facebook & Instagram Product Catalogue Feed Pro > Configurer, puis cliquez sur l'onglet Options de génération.

Format de sortie
| Champ | Valeurs | Défaut | Description |
|---|---|---|---|
| Sélectionnez le format de sortie de génération | RSS XML, ATOM XML | ATOM XML | Le dialecte XML écrit dans le fichier de flux |
RSS XML est un format plus ancien et plus strict, largement pris en charge par toutes les plateformes. ATOM XML (le défaut) est un format plus récent et plus flexible, préféré par certains fournisseurs — notamment Google. Facebook et Instagram Commerce acceptent les deux. Sauf indication contraire d'une plateforme spécifique, conservez le format ATOM par défaut.
Note sur les plateformes : La plupart des plateformes acceptent les deux formats, mais les préférences varient. Google préfère ATOM XML. Pinterest, en revanche, peut préférer ou exiger RSS XML — consultez la documentation actuelle de Pinterest sur les flux de catalogue si vous y soumettez un flux. Si vous soumettez le même fichier de flux à plusieurs plateformes, créez une URL de flux distincte par plateforme et définissez le format correspondant aux exigences de chaque plateforme.
Paramètres cURL
| Champ | Valeurs | Défaut | Description |
|---|---|---|---|
| Utiliser le délai cURL | Activé / Désactivé | Activé | Exécute la génération du flux en tant que processus en arrière-plan en définissant un délai cURL très court |
| Utiliser SSL cURL | Activé / Désactivé | Activé | Vérifie les certificats SSL lors de l'appel cURL interne |
Utiliser le délai cURL est le paramètre clé qui permet la génération en arrière-plan. Lorsqu'il est activé, le module envoie une requête cURL interne avec un délai d'attente d'1 seconde. La requête démarre le processus de génération puis se déconnecte délibérément — la génération continue de s'exécuter sur le serveur sans bloquer votre navigateur. Si votre flux cesse de se générer immédiatement avec zéro ou très peu de produits, c'est le premier paramètre à désactiver.
Utiliser SSL cURL contrôle si l'appel cURL interne valide le certificat SSL de votre boutique. Ne désactivez cette option que si vous constatez des erreurs liées aux certificats dans votre journal d'erreurs PHP, ou si vous exécutez le module sur un serveur de développement avec un certificat auto-signé.
Quand désactiver le délai cURL : Si votre flux s'arrête au tout début et que le journal d'erreurs affiche une erreur cURL ou un message de connexion refusée, désactivez cette option. La génération s'exécutera alors de manière synchrone dans la requête PHP plutôt que comme un processus détaché en arrière-plan.
Quand désactiver SSL cURL : Ne désactivez cette option que si votre serveur possède un certificat SSL mal configuré ou auto-signé et que vous constatez des erreurs de vérification SSL. Sur une boutique de production avec un certificat valide, laissez cette option activée.
Paramètres liés au cache
| Champ | Valeurs | Défaut | Description |
|---|---|---|---|
| Randomisation de la génération | Activé / Désactivé | Désactivé | Ajoute un paramètre aléatoire unique à chaque appel d'URL de génération |
Lorsque la Randomisation de la génération est activée, chaque requête cURL effectuée par le module — y compris les appels de continuation de cycle — ajoute un paramètre randomize avec une valeur unique. La plupart des proxies inverses (Varnish, microcache Nginx, caches de périphérie CDN) utilisent l'URL complète comme clé de cache. Sans ce paramètre, une réponse mise en cache d'une génération précédente peut être servie au lieu de déclencher réellement une nouvelle exécution de génération.
Activez ce paramètre si :
- Votre boutique se trouve derrière une couche de cache (Varnish, Cloudflare, un CDN)
- Vous suspectez que le flux ne se rafraîchit pas même si le cron s'exécute correctement
- Votre hébergeur vous a indiqué que les URL dynamiques sont mises en cache
Fonctionnement
Génération en arrière-plan via cURL
Lorsque vous déclenchez une génération de flux (manuellement ou via cron), le module appelle sa propre URL de génération en interne via cURL. L'URL de génération ressemble à :
https://votreboutique.com/module/facebookproductsfeed/GenerateFeed?fpf_secret_key=...
Avec Utiliser le délai cURL activé, le délai de connexion est défini à 1 seconde et le délai total est également de 1 seconde. Cela provoque l'« échec » immédiat de l'appel cURL du point de vue de l'appelant, mais le processus PHP sur le serveur continue de s'exécuter et écrit le fichier de flux. Il s'agit de la technique standard pour les tâches en arrière-plan de type « fire-and-forget » dans les environnements PHP qui ne prennent pas en charge les véritables processus en arrière-plan.
Avec Utiliser le délai cURL désactivé, l'appel cURL attend que la génération soit terminée avant de retourner. Cette approche est fiable sur les serveurs avec des valeurs max_execution_time généreuses, mais bloque le navigateur ou l'appelant cron pendant toute la durée de la génération.
Format d'URL cron v2
Si vous avez effectué une mise à niveau depuis une version antérieure à la 2.2.6, vous pouvez voir un avis dans le Back Office vous indiquant que l'URL de génération a changé. L'indicateur FPF_NEW_CORN_URL est défini lors de la mise à niveau pour déclencher une bannière informative ponctuelle qui vous affiche le nouveau format d'URL cron utilisant la route de module plus propre :
https://votreboutique.com/module/facebookproductsfeed/GenerateFeed?fpf_secret_key=...
L'ancien format utilisait un chemin cron.php direct. Le nouveau format est géré par la couche de routage de PrestaShop et fonctionne de manière plus fiable sur différentes configurations serveur. Une fois que vous avez pris connaissance de l'avis dans le Back Office et mis à jour votre tâche cron avec la nouvelle URL, la bannière disparaît. L'onglet Génération automatique (Tâches cron) affiche toujours l'URL correcte actuelle pour votre boutique.
Paramètre aléatoire lors de la continuation de cycle
Lorsque la génération basée sur des cycles est active (votre catalogue est suffisamment grand pour nécessiter plusieurs cycles), chaque requête de continuation porte le paramètre randomize lorsque la Randomisation de la génération est activée. Cela garantit que chaque appel de cycle contourne le cache de manière indépendante, et pas seulement la première requête. Sans cela, une couche de cache pourrait intercepter une requête de continuation, retourner une réponse mise en cache « génération en cours » et interrompre silencieusement le processus multi-cycles.
Exemples d'utilisation
Exemple : Le flux s'arrête à 0 produit sur un hébergement mutualisé
Votre flux génère 0 produit et le tableau de bord indique que la dernière génération s'est terminée instantanément. Accédez aux Options de génération, définissez Utiliser le délai cURL sur Désactivé, sauvegardez et déclenchez une génération manuelle. Le module attendra désormais que la génération se termine de manière synchrone. Une fois la génération fonctionnelle, vérifiez si votre hébergeur autorise les requêtes PHP de longue durée et envisagez de configurer une tâche cron via CLI.
Exemple : Le flux ne se rafraîchit pas même si le cron s'exécute
Votre cron s'exécute toutes les heures mais les horodatages du flux ne changent pas. Votre boutique utilise Varnish. Accédez aux Options de génération, activez la Randomisation de la génération, sauvegardez. La prochaine exécution du cron ajoutera un paramètre unique à l'URL de génération, contournant le cache Varnish et déclenchant une vraie génération.
Exemple : Certificat auto-signé sur un serveur de staging
Vous testez le module sur un serveur de staging interne avec un certificat SSL auto-signé. Le flux ne parvient pas à se générer et le journal d'erreurs affiche SSL certificate problem: unable to get local issuer certificate. Accédez aux Options de génération, désactivez Utiliser SSL cURL, sauvegardez. La génération réussira car l'appel cURL interne ne valide plus le certificat.
Remarques importantes
- Tous les paramètres de cet onglet sont globaux — ils s'appliquent à toutes les boutiques dans une configuration multi-boutiques. Vous ne pouvez pas configurer un comportement cURL différent par boutique.
- La Randomisation de la génération lit depuis la configuration globale indépendamment du contexte de boutique actuel, car elle s'applique à l'URL de génération elle-même et non aux données produits.
- Le délai cURL court (1 seconde) est intentionnel lorsque Utiliser le délai cURL est activé. Ne l'interprétez pas comme une erreur — la génération continue sur le serveur après la déconnexion.
- Si vous exécutez la génération depuis la ligne de commande (CLI cron), les paramètres cURL ne s'appliquent pas. La génération s'exécute directement en PHP sans effectuer de requête HTTP interne.
Résolution des problèmes
| Problème | Solution |
|---|---|
| Le flux s'arrête à 0 produit immédiatement | Désactivez Utiliser le délai cURL et réessayez. Si la génération fonctionne sans ce paramètre, votre serveur ne prend pas en charge les appels cURL de type fire-and-forget. Utilisez plutôt une tâche cron CLI. |
| L'URL cron de génération ne se déclenche pas | Activez la Randomisation de la génération si votre serveur utilise la mise en cache des pages. Vérifiez également que la clé secrète dans l'URL cron correspond à celle indiquée dans Protection du flux. |
| Erreur de certificat SSL dans le journal PHP lors de la génération | Désactivez Utiliser SSL cURL. Cela est attendu sur les serveurs de staging avec des certificats auto-signés. |
| Une bannière indique que « l'URL de génération a changé » après la mise à niveau | Copiez la nouvelle URL depuis l'onglet Génération automatique (Tâches cron) et mettez à jour votre tâche cron. La bannière disparaît une fois prise en compte. |
| Le flux semble obsolète malgré des exécutions cron fréquentes | Activez la Randomisation de la génération pour contourner toute couche de cache placée devant le point de terminaison de génération. |
Foire aux questions
Mon flux se génère correctement lorsque je clique sur « Générer le flux maintenant », mais pas depuis la tâche cron. Pourquoi ?
Le bouton manuel déclenche la génération directement depuis votre session navigateur, en contournant cURL. La tâche cron utilise l'URL de génération, qui passe par cURL. Vérifiez que votre URL cron contient la clé secrète correcte et essayez d'activer la Randomisation de la génération si une couche de cache est en jeu.
Dois-je désactiver le délai cURL si mon catalogue contient 50 000 produits ?
Non — pour les catalogues volumineux, vous devez conserver Utiliser le délai cURL activé, car cela permet à la génération de s'exécuter en arrière-plan sur plusieurs cycles sans bloquer. Si la génération s'arrête, le problème vient généralement de la configuration des cycles, pas du délai. Consultez le guide Génération basée sur des cycles.
Quelle est la différence entre RSS XML et ATOM XML pour Facebook ?
Pour Facebook et Instagram Commerce, les deux formats fonctionnent aussi bien l'un que l'autre. ATOM XML est le format recommandé par défaut car il est plus flexible et préféré par Google Shopping. Ne passez à RSS XML que si un outil d'importation ou une plateforme spécifique l'exige explicitement.
La Randomisation de la génération affecte-t-elle l'URL du flux que Facebook utilise pour télécharger le catalogue ?
Non. Le paramètre aléatoire est ajouté uniquement à l'appel cURL interne qui déclenche la génération sur votre serveur. L'URL du fichier de flux que Facebook récupère pour lire votre catalogue est distincte et n'est jamais modifiée par ce paramètre.
J'ai désactivé SSL cURL et la génération fonctionne, mais est-ce un risque de sécurité ?
C'est un risque mineur en production car l'appel cURL interne ignore la validation du certificat. Sur une boutique en ligne avec un certificat SSL valide, vous devriez conserver Utiliser SSL cURL activé. Si vous avez dû le désactiver pour une boutique en production, cherchez pourquoi votre chaîne de certificats est incomplète — la cause est généralement un certificat intermédiaire manquant sur le serveur.