1. À quoi sert ce module

PriceWars transforme votre catalogue en flux produits : des fichiers XML que Google Merchant Center, le catalogue Facebook et Instagram (Meta), Ceneo et d'autres plateformes récupèrent pour afficher vos produits, vos prix et votre stock. Vous créez autant de flux que nécessaire : un par plateforme, langue, devise ou pays, chacun avec ses propres produits, catégories et prix.

Flux disponibles dans la version 1.0 :

  • Publicité et réseaux sociaux — Google Merchant Center (annonces Shopping et fiches gratuites) avec le flux d'inventaire en magasin, Facebook / Instagram (catalogue Meta), Pinterest ;
  • Comparateurs de prix et places de marché — Ceneo (catégories Ceneo ou de la boutique), Morele.net Marketplace, Okazje.info, I-SZOP.pl et K-SZOP.pl (Pologne) ; Grupa Domodi — Domodi, Homebook, Allani (Pologne) ; Heureka.cz / Heureka.sk avec le flux de disponibilité et Zboží.cz (République tchèque, Slovaquie) ; Skroutz (Grèce) ; eMAG Marketplace (Roumanie, Hongrie, Bulgarie) ; Compari.ro, Árukereső.hu et Pazaruvaj.com (Roumanie, Hongrie, Bulgarie) ; Skąpiec.pl (Pologne) ; ShopMania ; idealo (CSV : Allemagne, Autriche, Royaume-Uni, France, Italie, Espagne, Pologne) ; Awin (réseau d'affiliation, CSV) ; ChatGPT (flux produits OpenAI envoyé par SFTP) ;
  • Intégrateurs et places de marché pour fournisseurs — Base.com (BaseLinker), Droplo, Media Expert (deux versions du fichier fournisseur), places de marché Mirakl (fichier d'offres OF01 : Carrefour, Decathlon, Empik, Conrad…) ;
  • XML universel — un format documenté avec schéma XSD pour vos partenaires, grossistes et intégrations ;
  • Sitemap — produits, catégories, pages CMS et pages des marques pour les moteurs de recherche, avec les versions linguistiques (hreflang) et un index de sitemaps pour les grands catalogues ;
  • Modèle personnalisé — n'importe quelle structure XML construite avec des balises intelligentes.

Avant chaque version, chaque format est contrôlé par rapport à la spécification officielle de sa plateforme, et le module contrôle chaque fichier que vous générez avec les mêmes règles (Diagnostic). Skąpiec.pl, ShopMania, Base.com, Droplo et Media Expert ne publient pas de spécification : leurs fichiers suivent la structure que ces plateformes acceptent des boutiques depuis des années — vérifiez le premier import dans le panneau de la plateforme.

Compatible avec PrestaShop 1.7.8, 8.x et 9.x (PHP 7.2.5 ou plus récent) et avec le multiboutique.

2. Installation

  1. Téléchargez le module depuis Mon compte → Historique des commandes sur addonspresta.com.
  2. Dans votre back-office, ouvrez Modules → Gestionnaire de modules et cliquez sur Installer un module.
  3. Déposez le fichier ap_pricewars_v1.0.1.zip et attendez la confirmation.
  4. Ouvrez Catalogue → PriceWars.

3. Fonctionnement

  1. Ajoutez un flux et choisissez sa plateforme. Le nouveau flux démarre avec les réglages qu'attend la plateforme.
  2. Dans Association des catégories, choisissez les catégories exportées et, pour les plateformes qui ont leur propre arbre (Google, Meta, Pinterest, Domodi, Ceneo, Heureka, Zboží.cz, I-SZOP.pl), la catégorie correspondante. Une catégorie sans choix propre reprend celui de son parent le plus proche : associer une catégorie principale couvre donc toutes ses sous-catégories.
  3. Copiez l'adresse du flux depuis la liste et collez-la dans le panneau de la plateforme (Merchant Center, Commerce Manager, panneau Ceneo).
  4. Configurez la tâche cron pour garder le fichier à jour (voir « Génération »).

Le module calcule les prix, le stock et les frais de port avec les fonctions de PrestaShop lui-même — les mêmes valeurs que voient vos clients dans la boutique, avec vos taxes, prix spécifiques et réductions de groupe. Les gros catalogues sont lus par lots, la mémoire utilisée reste donc faible. Le module n'envoie de lui-même vos données nulle part : ce sont les plateformes qui récupèrent les flux. Seule exception : un flux pour lequel vous activez Envoyer par SFTP (exigé par ChatGPT) ; son fichier part vers le serveur SFTP que vous indiquez.

4. Fonctions et réglages

Liste des flux

Catalogue → PriceWars affiche les flux de la boutique courante avec le nombre d'offres et la date du dernier fichier. Les actions de chaque ligne ouvrent Association des catégories, Diagnostic, Aperçu (les 20 premières offres, rien n'est enregistré), Générer maintenant, Dupliquer et Supprimer. Sous la liste figurent l'adresse et la commande du cron.

Réglages d'un flux (onglets)

  • Général — nom (visible par vous seul), nom dans l'adresse (par ex. google-fr, utilisé dans /feed/google-fr.xml), actif.
  • Génération — Fichier en cache (le fichier est réutilisé pendant la durée de validité choisie), Fichier (écrit uniquement par le cron ou la ligne de commande — le plus rapide, indispensable pour les plateformes qui exigent un fichier statique) ou En direct (généré à chaque appel) ; compression ; Exiger la clé du flux pour garder le flux privé.
  • Langue et devise — langue, devise, pays (taxes et livraison) et groupe de clients (réductions). Vous pouvez autoriser id_lang, id_currency et id_country dans l'adresse pour qu'un même flux serve plusieurs marchés. C'est désactivé par défaut et n'accepte qu'une langue active dans la boutique, une devise active et associée à la boutique et un pays actif ; les autres valeurs sont ignorées.
  • Stock et déclinaisons — que faire des produits en rupture, correction et minimum de stock, une offre par produit ou par déclinaison, nom et id de la déclinaison. Ne modifiez jamais l'id d'un flux en service : les plateformes identifient les offres grâce à lui.
  • Produits — ignorer les produits désactivés, non commandables, virtuels et les packs, les produits sans marque, référence, code-barres ou image ; filtres de visibilité, d'état, de prix et de réduction ; listes de produits, marques, fournisseurs ou catégories à exporter seuls ou à exclure.
  • Nom et description — casse, modèle de nom avec balises intelligentes (par ex. {brand} {name_base} {feature:5}), source de la description (courte, longue, les deux ou un modèle), traitement du HTML et limites de longueur.
  • Images — taille, nombre d'images, images de la déclinaison en premier.
  • Prix — quel prix est envoyé (TTC ou HT, avant ou après réductions), modificateur de prix comme 1.1 ou {p} * 1.1 + 5, prix de la quantité minimale de commande et prix le plus bas des 30 jours précédant une promotion (Omnibus) pour les plateformes qui le demandent, et le prix unitaire pour Google (à partir du prix unitaire et de l'unité définis sur le produit, par ex. « le 100 g »).
  • Livraison — aucun frais, transporteur par défaut, le plus rapide ou le moins cher, livraison gratuite ou montant fixe ; transporteurs exclus, pays de livraison, ignorer les produits qu'aucun transporteur ne livre.
  • Liens — paramètres UTM (les autres ne sont ajoutés qu'avec utm_source) et paramètres supplémentaires.
  • Balises supplémentaires — XML ajouté à chaque offre pour les champs que le module n'écrit pas lui-même, par ex. <g:custom_label_0>. Activez Utiliser mes propres balises supplémentaires pour les saisir ; le modèle personnalisé démarre avec un exemple. Les règles de nœuds XML modifient le XML final de chaque offre, une règle par ligne : remove g:mpn, set g:condition = refurbished if g:brand = Outlet, add g:custom_label_0 = {brand}, rename g:mpn => g:gtin, skip if g:availability = out_of_stock (conditions =, !=, contains, is empty, is not empty ; un chemin comme images/image ou un attribut @basket fonctionne aussi). Les offres ignorées par une règle apparaissent dans le Diagnostic.
  • Plateforme — les options de la plateforme choisie, par ex. identifier_exists, prix soldé et MPN pour Google, achat direct (basket) et délai d'expédition (avail) pour Ceneo, fréquence de modification et priorité pour le sitemap.
  • Avancé — héritage de l'association par les sous-catégories, catégorie d'un produit (par défaut ou la plus profonde exportée), journal des produits ignorés.

Chaque champ a une courte aide en dessous. Les valeurs sont contrôlées à l'enregistrement et le formulaire indique ce qu'il faut corriger.

Balises intelligentes

Les noms, descriptions, balises supplémentaires, valeurs UTM et modèles personnalisés acceptent des balises entre accolades, par exemple {name}, {name_base}, {brand}, {reference}, {gtin}, {price}, {price_regular}, {quantity}, {link}, {image}, {category}, {feature:ID}, {attribute:ID:séparateur}, {shipping_price}. Des filtres modifient la valeur : {name|upper}, {description_short|strip|truncate:200}. Les noms de PriceWars II, comme {cecha:ID}, fonctionnent aussi.

Association des catégories

La colonne Export de chaque catégorie de la boutique vaut Comme le parent, Oui ou Non. Pour les plateformes qui ont un arbre de catégories, vous choisissez à la place la catégorie de la plateforme — tapez quelques lettres et choisissez dans la liste ; une catégorie associée est exportée, Non l'exclut. Appliquer le même choix à toutes les sous-catégories recopie une ligne vers le bas de l'arbre. Les deux nombres à côté d'une catégorie comptent les produits dont c'est la catégorie par défaut, et tous ses produits.

Les listes de catégories des plateformes sont fournies avec le module. Quand une plateforme modifie son arbre, cliquez sur Télécharger la liste actuelle sous le tableau : le module récupère la liste auprès de la plateforme (Google, Ceneo, Heureka, Zboží.cz) et l'utilise jusqu'à ce qu'une mise à jour du module en apporte une plus récente. I-SZOP.pl a une liste fixe de six catégories.

Outils de mapping au-dessus du tableau : Toutes les catégories + Appliquer à toutes applique un même choix à chaque ligne (à enregistrer avec Enregistrer) ; Copier le mapping de un autre flux de la boutique (catégories de plateforme uniquement entre flux de la même plateforme) ; Exporter en CSV et Importer un CSV pour modifier le mapping dans un tableur — colonnes id_category, state (inherit, yes, no) et platform_category_id ; les catégories absentes du fichier gardent leur choix.

Diagnostic

La page de diagnostic affiche :

  • les avertissements sur la configuration — par exemple un flux sans association, le mode catalogue, un fichier ancien ou une génération échouée ;
  • le contrôle de conformité du fichier actuel — chaque règle enfreinte, avec l'offre et l'endroit de la documentation de la plateforme d'où vient la règle ;
  • les produits ignorés lors de la dernière génération et leur raison (si Journaliser les produits ignorés est activé) ;
  • les statistiques des 30 dernières générations : offres exportées et ignorées, et durée de génération (survolez une barre pour voir les chiffres) ;
  • les dernières générations avec le nombre d'offres, la durée et la mémoire.

Aperçu → Testeur de produit : saisissez l'ID d'un produit pour voir si le flux le sélectionne, pourquoi chaque offre est écartée (par exemple En rupture de stock ou Marque manquante (exigée par la plateforme)) et le XML de chaque offre exportée. Rien n'est enregistré.

Réglages communs à tous les flux

Modules → Gestionnaire de modules → PriceWars → Configurer : adresses de flux courtes, flux servis en mode maintenance, export des produits de la catégorie Accueil, produits par lot, limites de durée et de mémoire, durée de conservation des statistiques. Le cadre Aide en haut renvoie vers ce manuel et vers la page du module sur addonspresta.com.

Génération

Les flux en mode Fichier en cache ou Fichier ont besoin d'une tâche cron. La ligne de commande est le meilleur choix :

php /chemin/vers/la/boutique/modules/ap_pricewars/bin/generate.php --shop=1

Lancez-la toutes les 15 à 60 minutes. Le panneau de votre hébergeur a généralement une page « Tâches cron » ; s'il n'accepte que des adresses, utilisez l'adresse du cron indiquée sous la liste des flux. Générer maintenant écrit un fichier immédiatement.

5. Multiboutique

Chaque flux appartient à une boutique. Sélectionnez la boutique dans l'en-tête du back-office pour voir et modifier ses flux ; prix, stock, liens et taxes viennent de cette boutique. Les réglages communs sont enregistrés par boutique ou groupe de boutiques. Dans le contexte Toutes les boutiques ou groupe, seul un employé qui gère toutes ses boutiques peut enregistrer. Une seule licence couvre toutes les boutiques de l'installation.

6. Désinstallation

Gestionnaire de modules → PriceWars → Désinstaller supprime tous les flux, associations, statistiques, fichiers générés et réglages. Les adresses des flux cessent de fonctionner. Pour tout conserver, choisissez plutôt Désactiver.

7. Questions fréquentes et dépannage

Le flux est vide. Ouvrez Association des catégories : rien n'est exporté tant qu'aucune catégorie n'est associée. Consultez ensuite Diagnostic → Produits ignorés (activez d'abord Journaliser les produits ignorés dans l'onglet Avancé).

Merchant Center signale un prix erroné. Vérifiez le pays et le groupe de clients du flux — le prix est calculé pour eux. Aux États-Unis et au Canada, Google attend des prix HT, ailleurs TTC ; le module s'en charge automatiquement.

Ceneo refuse les catégories. Utilisez le flux Ceneo avec association des catégories, ou Ceneo sans association de catégories pour laisser Ceneo attribuer les catégories lui-même.

Le flux est long à générer ou s'arrête en cours. Passez en mode Fichier ou Fichier en cache avec le cron en ligne de commande, et réduisez Produits par lot si le serveur manque de mémoire. Si le serveur arrête les scripts après quelques secondes (hébergement mutualisé), activez Générer par étapes : chaque appel cron écrit les Produits par étape suivants et le fichier est remplacé après la dernière étape — lancez le cron toutes les quelques minutes.

Une plateforme exige un champ que le module n'envoie pas. Ajoutez-le dans Balises supplémentaires avec une balise intelligente, par ex. <g:material>{feature:7}</g:material>.

Heureka : de quel flux ai-je besoin ? Le flux Heureka.cz / Heureka.sk contient les produits. Les boutiques en mode PPC peuvent ajouter le flux de disponibilité, récupéré toutes les 10 minutes : gardez les mêmes réglages de déclinaisons et de catégories dans les deux, car les identifiants doivent correspondre. Dans le flux de disponibilité, Jours de livraison, Heure limite de commande et Heure de livraison ajoutent le délai de livraison garanti (jours ouvrés uniquement). Plusieurs transporteurs : dans Transporteurs → DELIVERY_ID, saisissez des paires comme 12=PPL, 15=ZASILKOVNA (id du transporteur dans Livraison → Transporteurs).

Skroutz signale mes liens ou mes images. Skroutz n'accepte que des adresses https. Pour envoyer les tailles comme variantes et chaque couleur comme un produit, renseignez dans l'onglet Plateforme le Groupe d'attributs de taille et le Groupe d'attributs de couleur (les id de Catalogue → Attributs & caractéristiques).

eMAG me demande d'associer les champs. eMAG n'a pas de structure de fichier fixe : dans Products → Feeds du panneau eMAG, associez chaque élément du fichier au champ eMAG du même nom, et vos catégories aux catégories eMAG.

D'où viennent les données GPSR (fabricant, personne responsable) ? Des adresses de vos marques ou fournisseurs (Catalogue → Marques et fournisseurs, adresse d'une marque ou d'un fournisseur) : raison sociale (ou nom de la marque), rue, code postal, ville et pays sont obligatoires ; indiquez l'e-mail de contact dans le champ Autre. Activez Envoyer les données GPSR dans l'onglet Plateforme d'un flux Ceneo ou Heureka et choisissez si le fabricant est la marque ou le fournisseur. Pour les fabricants hors de l'UE, choisissez la Personne responsable dans l'UE (par exemple votre fournisseur importateur). Les avertissements de sécurité proviennent d'une caractéristique produit désignée par son id.

Comment envoyer mes produits à ChatGPT ? OpenAI n'accepte les flux produits que par envoi sur un serveur SFTP qu'il vous communique après avoir approuvé votre boutique. Ajoutez un flux ChatGPT et renseignez Envoyer par SFTP dans l'onglet Général : hôte, utilisateur, mot de passe, le nom de fichier attendu par OpenAI (products.csv.gz par défaut) et l'empreinte de la clé du serveur (MD5, ou SHA256:… comme l'affiche ssh-keygen -l). L'envoi s'arrête si le serveur présente une autre clé. Après un changement d'hôte, de port ou d'utilisateur, saisissez à nouveau le mot de passe. Chaque génération par cron envoie alors tout le catalogue du flux ; un envoi échoué apparaît dans le Diagnostic avec la génération.

J'utilisais SEIGI PriceWars II. Puis-je reprendre mes flux ? Oui : Catalogue → PriceWars → Importer depuis PriceWars II liste les flux de PriceWars II de la boutique. L'import crée les flux avec leur format, les réglages qui ont un équivalent ici et le mapping des catégories ; PriceWars II n'est pas modifié. Avec Nommer les nouveaux flux pw2-N, la page affiche les règles Apache et nginx qui redirigent les anciennes adresses (modules/pricewars2/service.php?id_xml=N) vers les nouveaux flux, pour que les plateformes continuent de fonctionner. Lisez le rapport : les réglages sans équivalent exact y sont listés — vérifiez-les et générez chaque flux avant de basculer.

Comment donner à un grossiste un flux avec ses prix ? Activez Liens B2B dans l’onglet Langue et devise du flux, puis dans Diagnostic → Liens B2B créez un lien pour un groupe de clients (par exemple Grossistes) ou pour un client (ID ou e-mail). Le lien porte une signature : le flux est envoyé avec les réductions de ce groupe et les prix spécifiques de ce client. Chaque lien affiche son dernier téléchargement ; Révoquer désactive un lien, Révoquer tous les liens change la signature du flux et plus aucun ancien lien ne fonctionne. Un employé sans accès aux Clients ne voit que l’ID du client et crée les liens par ID.

Okazje.info ou Zboží.cz n'affichent pas ma promotion. Ces deux plateformes demandent le prix le plus bas des 30 jours précédant la promotion (directive Omnibus). Le module enregistre les prix à chaque génération d'un flux et les conserve 400 jours : il ne connaît ce prix que si le flux a été généré pendant ces 30 jours — programmez la tâche cron au moins une fois par jour. D'ici là, la promotion est envoyée comme un prix normal. L'historique est tenu par boutique, devise, pays et groupe de clients ; l'option se trouve dans l'onglet Prix (Prix le plus bas avant la promotion, activée par défaut). Le tag {omnibus_price} donne le même prix pour toute autre plateforme.

Où saisir l'adresse du flux Compari.ro ? Dans le Centrul de clienti de Compari, sous Datele magazinului → Sursa listei produselor ; Árukereső.hu et Pazaruvaj.com ont le même menu. Compari télécharge le fichier une fois par jour. Les produits en stock sont envoyés avec le délai 1 (« In stoc », la seule valeur qui permet le panier Compari Marketplace), les autres avec le délai des produits sans stock de l'onglet Plateforme. Pour l'électronique, l'informatique, l'électroménager et LEGO, renseignez le MPN des produits : Compari associe les offres par le code fabricant.

L'adresse /feed/….xml renvoie « page introuvable ». Activez les URL simplifiées dans Paramètres de la boutique → Trafic & SEO ou utilisez l'adresse avec index.php, et vérifiez que le flux est actif.

8. Mises à jour et support

Les mises à jour sont gratuites à vie : téléchargez les nouvelles versions depuis Mon compte → Historique des commandes sur addonspresta.com et installez-les comme un nouveau module. Vos flux et réglages sont conservés. Les nouvelles plateformes arrivent avec les mises à jour gratuites.

Le support est inclus pendant 12 mois à compter de la commande : écrivez à mail@addonspresta.com ou utilisez le formulaire de contact sur addonspresta.com (du lundi au vendredi, 10 h – 16 h, heure de Paris ; réponse généralement sous 2 jours ouvrés). Indiquez votre version de PrestaShop, la version du module et une capture de la page Diagnostic du flux.

Retour : Manuels des modules

Chargement...
Retour en haut