PS PrestaShop Intermédiaire

Import Export CSV & XML pour PrestaShop — Guide complet

Installer et configurer l'import/export CSV & XML : profils, mapping visuel, sources FTP/SFTP/URL, cron, journaux.

Mis à jour Version du module 1.0.1

DF CSV & XML Pro est un moteur d’import/export universel pour PrestaShop 8 et 9. Il relie n’importe quel fichier CSV ou XML à votre boutique grâce à un mapping visuel des colonnes, enregistre chaque configuration dans un profil réutilisable, et peut rapatrier automatiquement vos flux fournisseurs depuis FTP, SFTP ou une URL. Ce guide couvre l’installation, la création de profils, les formats de colonnes attendus, la planification par cron, les journaux et le dépannage.

Installation

Rendez-vous dans Modules > Gestionnaire de modules > Ajouter un module, envoyez le fichier dfcsvpro.zip puis cliquez sur Installer. Une fois installé, un onglet DF CSV Pro apparaît sous Paramètres avancés.

Le module n’ajoute aucun override du cœur PrestaShop et se désinstalle proprement. Deux tables sont créées (profils et journaux) ainsi que quelques variables de configuration ; elles sont supprimées à la désinstallation.

Créer un profil

Un profil décrit une opération complète : sens (import ou export), entité, format, source, mapping des colonnes, options et planification. Il se relance en un clic ou se déclenche automatiquement par cron. Cliquez sur Nouveau profil : un assistant vous guide en quatre étapes.

1. Général

Choisissez le sens (import / export), l’entité, le format (CSV ou XML) et la langue visée. Pour le CSV, réglez le délimiteur (ou laissez en auto-détection), l’encodage (UTF-8, ISO-8859-1 ou Windows-1252), le nombre de lignes à ignorer avant l’en-tête et le séparateur multi-valeurs (virgule par défaut). Pour le XML, vous pouvez préciser le nœud d’item ou laisser le module le détecter.

Entités disponibles à l’import : produits, déclinaisons, catégories, clients, stock & prix. À l’export : produits, catégories, clients, commandes.

2. Source

Sélectionnez d’où provient le fichier (import) ou où déposer le résultat (export) : upload manuel, URL (HTTP/HTTPS), FTP, SFTP ou chemin local. Pour FTP/SFTP, renseignez hôte, port, utilisateur et mot de passe, puis utilisez le bouton Tester la connexion pour valider avant d’enregistrer.

3. Mapping visuel

Chargez un fichier d’exemple (ou récupérez-le depuis la source distante) : le module détecte les colonnes, affiche un aperçu des premières lignes et associe automatiquement chaque colonne au bon champ PrestaShop grâce à une reconnaissance FR/EN (référence/SKU, prix/price, quantité/stock, EAN/gencod, TVA/VAT, etc.). Ajustez les associations dans le tableau ; toute colonne laissée sur « non mappé » est simplement ignorée.

La clé de correspondance (étape 4) détermine comment un produit existant est retrouvé : ID, référence/SKU, EAN-13 ou MPN. Assurez-vous que la colonne correspondante est bien mappée.

4. Options & planification

Définissez le comportement d’import : créer les éléments manquants, mettre à jour les existants, créer les catégories à la volée, télécharger les images depuis des URLs, remplacer ou non les images existantes à la mise à jour, et la taille de lot (lignes traitées par appel AJAX). Activez éventuellement la planification et choisissez la fréquence (horaire, quotidienne ou hebdomadaire). Enregistrez : le profil apparaît dans la liste, prêt à être lancé ou planifié.

Formats de colonnes

Le module comprend les formats métier de PrestaShop. Voici les conventions attendues dans vos fichiers :

Champ Format attendu
Prix Décimal, virgule ou point : 19,90 ou 19.90
Booléens (actif, etc.) 1/0, yes/no, oui/non, true/false
Catégories Noms ou IDs séparés par le séparateur multi-valeurs (défaut ,). Création à la volée en option.
Images URLs séparées par le séparateur multi-valeurs. La première devient l’image de couverture.
Caractéristiques Nom:Valeur|Nom:Valeur
Déclinaisons Groupe:Valeur|Groupe:Valeur (ex. Taille:M|Couleur:Rouge)
Taux de TVA Valeur numérique (ex. 20), reliée au groupe de taxes du pays par défaut

Déclinaisons

La colonne des attributs suit le format Groupe:Valeur|Groupe:Valeur. Les groupes et valeurs d’attributs manquants sont créés automatiquement, et la déclinaison est identifiée par son jeu exact d’attributs — relancer l’import ne crée donc pas de doublon. Le produit parent est retrouvé par sa référence ou son ID selon la clé de correspondance.

Caractéristiques

Utilisez le format Nom:Valeur|Nom:Valeur. Chaque caractéristique et sa valeur sont créées si elles n’existent pas encore.

Catégories, images et tags

Ces champs acceptent plusieurs valeurs, séparées par le séparateur multi-valeurs défini dans le profil. Pour les catégories, vous pouvez mélanger noms et IDs ; la première image listée sert de couverture.

Sources distantes et sécurité

À l’import, le module récupère le fichier depuis une URL (HTTP/HTTPS, avec authentification basique si nécessaire), un serveur FTP (mode passif ou actif), un serveur SFTP ou un chemin local restreint au répertoire de la boutique. À l’export, il peut déposer le fichier généré sur FTP/SFTP ou dans un dossier local, ou le proposer en téléchargement.

Le SFTP nécessite l’extension PHP ssh2. Si elle est absente de votre hébergement, l’interface l’indique clairement et vous pouvez utiliser FTP ou une URL à la place.

Les mots de passe FTP/SFTP sont chiffrés au repos en base (AES-256-CBC, clé dérivée de la clé de chiffrement de votre boutique) et ne sont jamais renvoyés au navigateur en clair.

Import par lots et reprise

Les imports manuels s’effectuent par lots successifs en AJAX, avec une barre de progression et des compteurs en temps réel (OK / erreurs / total). Après chaque lot, la position exacte est mémorisée : un fichier de plusieurs dizaines de milliers de lignes s’importe sans provoquer de timeout PHP, même sur un hébergement mutualisé. En mode cron, le traitement s’enchaîne de façon synchrone jusqu’à la dernière ligne.

Export

Créez un profil d’export en choisissant l’entité (produits, catégories, clients, commandes), le format (CSV ou XML) et les champs à inclure. Le fichier généré est proposé en téléchargement immédiat et/ou déposé automatiquement sur la destination distante configurée. Les exports sont générés par lots pour rester performants sur de gros volumes.

Planification (cron)

Pour automatiser un profil, activez sa planification (étape 4) puis appelez l’URL de cron du module à intervalle régulier. À chaque appel, seuls les profils dont la fréquence est échue s’exécutent.

*/15 * * * * curl -s "https://votre-boutique.tld/index.php?fc=module&module=dfcsvpro&controller=cron&token=VOTRE_TOKEN" > /dev/null

L’URL exacte et le token se trouvent dans l’onglet Scheduling / Cron du module, avec un bouton pour régénérer le token. Deux paramètres facultatifs :

  • &id_profile=N : n’exécute que le profil indiqué.
  • &force=1 : ignore la vérification de fréquence et lance le profil immédiatement.

La boutique doit être accessible pour que le cron fonctionne : le mode maintenance bloque les contrôleurs front, y compris cet endpoint.

Journaux et alertes e-mail

Chaque exécution est journalisée avec son statut, ses compteurs et le détail des erreurs ligne par ligne (les 200 premières). L’onglet Logs liste l’historique et permet de consulter les erreurs d’un import. Dès qu’un import échoue ou contient des lignes en erreur, une alerte e-mail (modèle FR ou EN) est envoyée automatiquement vers l’adresse configurée dans les réglages.

Réglages

Dans l’onglet Réglages, activez ou désactivez les alertes e-mail, définissez l’adresse destinataire, la taille de lot par défaut et la durée de rétention des journaux (les logs plus anciens sont purgés automatiquement). Les fichiers temporaires d’import/export sont nettoyés après 48 heures.

Format XML

À l’import XML, le nœud d’item répété est détecté automatiquement (ou précisé dans le profil). Les items sont aplatis : les éléments imbriqués deviennent des colonnes parent/enfant, les attributs deviennent @attribut, et les éléments répétés sont suffixés nom#1, nom#2. Vous mappez ensuite ces colonnes aplaties comme pour un CSV.

Compatibilité et notes techniques

  • Compatible PrestaShop 8.0 à 9.x, PHP 7.4 à 8.3, multiboutique.
  • CSV : détection automatique du délimiteur, gestion du BOM, conversion des encodages ISO-8859-1 et Windows-1252.
  • Clients importés avec mot de passe haché en bcrypt et rattachés à un groupe par nom.
  • Aucun override du cœur ; l’AJAX legacy utilise les conventions PS9.

Dépannage

L’interface du module reste vide ou les listes déroulantes ne se remplissent pas. Videz le cache PrestaShop puis forcez le rechargement du navigateur (Ctrl+Maj+R). Si un gestionnaire de cache/CCC est actif, régénérez les assets.

Le SFTP échoue. Vérifiez que l’extension PHP ssh2 est installée sur le serveur ; sinon, utilisez FTP ou une URL.

Le cron ne se déclenche pas. Vérifiez le token, que la boutique n’est pas en maintenance, et que le profil a bien une planification activée et une source automatique (les profils en upload manuel ne peuvent pas être planifiés).

Des lignes sont en erreur. Ouvrez le détail du log : chaque erreur indique le numéro de ligne et la cause (colonne clé manquante, valeur invalide, etc.).

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support