À quoi sert le module
- Transfert du catalogue vers une autre boutique. Nouvelle boutique, migration vers une version plus récente de PrestaShop ou boutique de test – les fichiers sont préparés pour l’import de la version cible, et non de la version depuis laquelle vous exportez.
- Modification en masse dans un tableur. Export des colonnes sélectionnées, modification dans Excel ou un autre tableur, puis réimport dans la même boutique.
- Fichier permanent pour l’intégration. Un grossiste, un comparateur, un système ERP ou une autre boutique peuvent récupérer un fichier à jour à une adresse fixe, actualisée par CRON.
Fichiers compatibles avec l’import de la version PrestaShop choisie
Quatre versions cibles
- Choix de la version d’import. Dans le profil, vous indiquez quelle version de PrestaShop lira le fichier : 1.7.0–1.7.2, 1.7.3–1.7.6, 1.7.7–8.x, 9.x ou « Automatiquement » (version de la boutique actuelle).
- Colonnes dans l’ordre de l’import. Le fichier produits comporte de 63 colonnes (1.7.0–1.7.2) à 68 colonnes (1.7.7–8.x), et pour PrestaShop 9 – 66 colonnes. Le fichier des déclinaisons comporte de 23 à 26 colonnes. L’ordre correspond aux champs d’import de la version concernée, c’est pourquoi le fichier complet s’aligne automatiquement sur la page d’import.
- Colonnes existant uniquement dans certaines versions. Par exemple, ISBN, MPN, le seuil de stock faible et l’emplacement de stock ne sont inclus que dans les fichiers des versions dont l’import les prend en charge ; les mots-clés meta et les colonnes de gestion avancée des stocks uniquement dans les fichiers pour 1.7.0–1.7.2.
- Deux modes d’enregistrement CSV. PrestaShop 9 lit les CSV selon la RFC 4180, tandis que les versions 1.7 et 8 traitent différemment les guillemets et les barres obliques inverses. Le module enregistre les valeurs de manière à ce que l’import de la version concernée les lise sans modification, et lorsque cela est impossible, il le signale dans le rapport.
- Correspondance des colonnes enregistrée. Pour chaque profil, le module crée dans PrestaShop une configuration enregistrée de correspondance des colonnes (« Export CSV #ID - produits » et « Export CSV #ID - déclinaisons »), qui peut être chargée sur la page d’import lorsque le fichier ne contient qu’une partie des colonnes.
- Onglet « Format CSV ». Description de chaque colonne pour la version PrestaShop choisie et instructions pas à pas pour les réglages d’import.
Fichier produits et fichier des déclinaisons
- Fichiers séparés pour deux types d’import. Fichier produits pour le type « Produits » et fichier des déclinaisons pour le type « Déclinaisons » (« Variantes » dans PrestaShop 8 et 9) ; dans le profil, vous pouvez activer l’un d’eux ou les deux.
- Fichier complet des déclinaisons. Le fichier des déclinaisons contient toujours toutes les colonnes, car lors de la mise à jour des déclinaisons, l’import écrase le prix, le poids, le stock et les codes avec les valeurs du fichier – l’absence d’une colonne effacerait ces données.
- Images sous forme d’URL. La colonne des images contient les adresses des fichiers image originaux du domaine de la boutique du profil, avec l’image de couverture en première position, ainsi que les textes alternatifs. Les images dont le fichier est absent du serveur sont ignorées et signalées dans le rapport.
- Caractéristiques, attributs, tags et accessoires au format attendu par l’import (notamment caractéristique sous la forme nom:valeur:position:personnalisée).
- Prix TTC comme dernière colonne. L’import associe d’abord les colonnes par position et ignore ce champ, c’est pourquoi le module le place toujours à la fin afin de ne pas décaler les autres colonnes.
Profils d’export
Source des données
- Nombre illimité de profils. Chaque profil décrit un ensemble de fichiers et possède son propre nom, son état d’activation, son lien de téléchargement et son adresse CRON.
- Boutique du profil. En multiboutique, les prix, stocks, visibilité et images sont récupérés depuis la boutique sélectionnée, et le fichier indique cette boutique dans la colonne boutique.
- Langue des données. Les noms, descriptions, champs SEO, tags, légendes des images et valeurs des caractéristiques sont exportés dans la langue du profil ; cette même langue est sélectionnée sur la page d’import comme langue du fichier.
Filtres produits
- Uniquement les produits actifs.
- Uniquement les produits disponibles en stock. Ignore les produits dont le stock est de 0 ou moins, ainsi que les déclinaisons dont le stock propre est de 0 ou moins.
- Catégories sélectionnées. Un produit est inclus dans le fichier s’il appartient à au moins une catégorie cochée ; l’absence de sélection signifie toutes les catégories.
- Exclusions. Ignorer les marques sélectionnées, les fournisseurs (selon le fournisseur par défaut du produit) ainsi que les produits ayant les ID indiqués.
Colonnes et ensembles
- Choix des colonnes du fichier produits réparties en groupes : identification, catégories, prix et taxes, remise, codes (EAN, UPC, ISBN, MPN), dimensions et poids, stocks et disponibilité, descriptions et SEO, images, caractéristiques, accessoires et produit virtuel.
- Quatre ensembles prêts à l’emploi : « Complet – transfert vers une autre boutique », « Modification en masse dans cette boutique », « Prix et stocks » et « Descriptions et SEO ».
- Les colonnes ID et référence sont toujours présentes dans le fichier, car c’est grâce à elles que l’import reconnaît le produit.
- La liste des colonnes dépend de la version cible. Après changement de version dans le formulaire, seules les colonnes prises en charge par l’import de cette version sont disponibles.
Clé produit, catégories et séparateurs
- Clé produit : ID produit (import avec l’option « Forcer tous les ID ») ou référence (import avec l’option « Utiliser la référence du produit comme clé »). Avec la référence, les colonnes ID restent vides, et l’import des déclinaisons trouve le produit par sa référence.
- Catégories sous forme d’ID – lors de l’import dans la même boutique – ou sous forme de chemins de noms (par ex. Vêtements/Hommes/T-shirts) lors de l’import dans une autre boutique. Les chemins sont enregistrés dans la langue par défaut de la boutique, car c’est dans cette langue que l’import recherche les catégories ; les catégories manquantes seront créées par l’import.
- Séparateur de champs : point-virgule (par défaut, compatible avec Excel dans les paramètres polonais), virgule ou barre verticale.
- Séparateur de valeurs multiples : virgule (par défaut dans PrestaShop), barre verticale, dièse, tilde ou accent circonflexe. Le module ne permet pas de définir le même caractère que pour le séparateur de champs.
Rapport de compatibilité avec l’import PrestaShop
L’import PrestaShop interrompt tout le fichier à la première ligne qu’il ne peut pas enregistrer, et modifie certaines valeurs sans avertissement. Pendant l’export, le module vérifie 34 types de cas de ce genre et enregistre chacun d’eux dans un fichier CSV d’avertissements distinct (niveau, code, ID produit, ID déclinaison, colonne, valeur, description). Un résumé avec des exemples est visible dans l’onglet « Fichiers et CRON », avec distinction entre erreurs, avertissements et informations.
- Lignes que l’import rejettera : valeurs ne respectant pas la validation PrestaShop, produits sans nom dans la langue du profil, déclinaisons avec nom d’attribut ou de groupe d’attributs manquant dans la langue par défaut de la boutique.
- Données que l’import ne transférera pas : prix spécifiques autres qu’une seule remise pour tout le catalogue, contenu des packs, libellés des champs de personnalisation, fichiers des produits virtuels.
- Valeurs que l’import modifiera : espaces au début et à la fin de la cellule, valeur « 0 » dans les caractéristiques et les tags, remise en montant HT (l’import la crée en TTC), impact de la déclinaison sur le prix unitaire, code EAN-13 invalide de la déclinaison, ISBN de la déclinaison dans les versions 1.7 et 8.
- Conflits de séparateurs et de noms : séparateur de valeurs multiples dans le contenu, deux-points dans les caractéristiques et attributs, barre oblique dans le nom de catégorie, noms de catégories répétés, noms de marques, de fournisseurs ou de catégories constitués de nombres.
- Problèmes de clé : produits et déclinaisons sans référence, déclinaisons avec référence dupliquée (l’import les fusionnerait en une seule – le module n’exporte que la première), accessoires sans référence.
- Les caractères hors UTF-8 sont remplacés par le caractère « ? » afin que le reste du fichier conserve les caractères polonais.
Génération des fichiers et CRON
- Génération depuis le panneau. Le bouton « Générer » dans la liste des profils ouvre une fenêtre avec une barre de progression, le nombre de produits traités, le nombre de lignes des deux fichiers et le nombre d’avertissements ; la génération peut être arrêtée.
- Traitement par lots. Les produits sont traités par lots de 100, de sorte qu’un grand catalogue ne dépasse pas la limite de temps d’une seule requête.
- Reprise après interruption. Si l’exécution est interrompue, le lancement suivant reprend à partir du dernier lot enregistré, et le fichier final est identique à celui d’une exécution effectuée en une seule fois.
- Publication sécurisée. Les nouveaux fichiers ne remplacent les précédents qu’une fois la génération terminée ; jusque-là, le lien fournit les derniers fichiers complets. Deux exécutions simultanées du même profil sont bloquées.
- Adresse CRON pour tous les profils et pour chaque profil séparément. L’adresse passe par le contrôleur du module, c’est pourquoi elle fonctionne aussi dans PrestaShop 9, qui bloque les appels directs aux fichiers PHP dans le répertoire des modules.
- Reprise via CRON. Si la génération ne tient pas dans la limite de temps du serveur, l’appel CRON suivant la terminera à partir du point d’arrêt.
- État dans l’en-tête du module. L’en-tête indique s’il existe des profils actifs, si les fichiers sont générés, quand CRON a été appelé pour la dernière fois et si le dernier rapport contient des erreurs ou des avertissements.
Téléchargement des fichiers et liens pour les intégrations
- Téléchargement dans le panneau du fichier produits, du fichier des déclinaisons et du fichier d’avertissements ; pour les fichiers produits et déclinaisons, le nombre de lignes et la taille sont visibles.
- Lien public sans connexion vers le fichier produits et le fichier des déclinaisons, avec un jeton secret distinct pour chaque profil. Le lien ne fonctionne que pour un profil actif.
- Invalidation des liens. Le bouton « Nouveau lien de téléchargement » crée un nouveau jeton de profil, et le bouton « Nouveau jeton CRON » – un nouveau jeton pour les adresses CRON ; les anciennes adresses cessent de fonctionner.
- Fichiers hors du répertoire racine de la boutique. Les fichiers générés sont stockés dans le répertoire du module protégé par le fichier
.htaccesset ne sont délivrés que via un lien avec jeton ou à un employé dans le panneau.
Format du fichier et travail dans Excel
- UTF-8 avec BOM, point-virgule, fins de ligne CRLF. Le fichier s’ouvre dans Excel par double-clic avec les caractères polonais correctement affichés.
- Point décimal et dates au format de la base de données, comme l’exige l’import PrestaShop. Pour modifier les prix, il est préférable d’ouvrir le fichier via Données > À partir d’un fichier texte/CSV avec les paramètres régionaux « Anglais (États-Unis) ».
- La première ligne est l’en-tête avec les noms des colonnes dans la langue du profil ; sur la page d’import, il faut définir l’ignorance d’une ligne.
Panneau d’administration, permissions et multiboutique
- Onglets dans le menu Catalogue : « Export CSV Pro » (liste des profils), « Fichiers et CRON » et « Format CSV », accessibles depuis la barre d’onglets du module.
- Permissions PrestaShop. L’accès aux onglets se donne dans les permissions standard des profils employés ; un employé ayant uniquement le droit de consultation ne peut ni générer des fichiers ni modifier les profils.
- Employés limités à certaines boutiques. Un employé ne voit et ne modifie que les profils des boutiques auxquelles il a accès. Les adresses CRON, le nouveau jeton CRON et la suppression des fichiers de version 1.x ne sont disponibles que pour les employés ayant accès à toutes les boutiques, car le jeton CRON gère chaque boutique.
- Traduction polonaise dans les deux systèmes de traduction PrestaShop (dictionnaire et catalogues XLF).
Compatibilité, installation et mise à jour
- PrestaShop 1.7.0–9.x, PHP 7.0–8.5 (compatibilité déclarée). L’installation, la génération des fichiers et la désinstallation sont vérifiées automatiquement sur PrestaShop 1.7.4.4, 1.7.5.2, 8.2.6, 9.0.2 et 9.1.5, et le cycle complet export → import → comparaison avec la base de données sur PrestaShop 8.2.6 et 9.0.2.
- Sans bibliothèques externes et sans Composer.
- Mise à jour depuis la version 1.x. Le module transfère les configurations enregistrées vers les profils, supprime les anciens onglets et points d’entrée (
cron.php,get.php) et affiche dans l’onglet « Fichiers et CRON » les fichiers CSV que la version 1.x a laissés dans le répertoire racine de la boutique, afin qu’ils puissent être supprimés. - Désinstallation supprime les tables, paramètres, onglets, correspondances d’import enregistrées et fichiers générés du module.
Limites importantes de fonctionnement
- Le module exporte les données ; l’import s’effectue via l’import CSV standard de PrestaShop, qui a ses propres limites décrites dans le rapport de compatibilité.
- L’import PrestaShop reconnaît les déclinaisons uniquement par la référence – les déclinaisons sans référence créeront des doublons lors d’un réimport dans la même boutique.
- Dans PrestaShop 8 et 9, le fichier des déclinaisons ne peut être importé qu’une seule fois dans une boutique où les produits ont un fournisseur ; un second import est interrompu par une erreur de base de données dans le cœur de PrestaShop.
- À partir de PrestaShop 8, l’import ajoute la valeur modifiée de la caractéristique à côté de la valeur existante, au lieu de la remplacer.
- Le module n’exporte pas les commandes, les clients ni d’autres données en dehors des produits et des déclinaisons.
- Le fichier CSV n’est pas protégé contre les formules de tableur : les valeurs commençant par le signe « = » sont enregistrées sans modification afin que l’import PrestaShop les transfère exactement.