Articles / E-commerce

Importer des images dans PrestaShop depuis un CSV ou une URL : 4 méthodes comparées

Importer en masse les images de vos produits PrestaShop depuis un CSV avec URLs externes. Comparatif back-office, import natif, modules payants, API REST et PropulseCom.

Pourquoi importer les images depuis une URL est un vrai casse-tête PrestaShop

Vos fournisseurs vous envoient un fichier Excel ou CSV avec une ligne par produit. Dans une colonne, vous avez le nom. Dans une autre, le prix. Et dans deux ou trois colonnes, des URLs vers leurs images hébergées sur leur CDN.

Vous voulez créer 200 produits dans PrestaShop avec ces images. La logique semble simple : on lit l’URL, on télécharge l’image, on l’attache au produit. En pratique, PrestaShop ne sait pas faire ça nativement.

Le module d’import CSV natif accepte les URLs d’images (colonne image_url), mais sur des catalogues réels, il échoue régulièrement : timeout sur les téléchargements, doublons d’images, perte de la couverture, fichiers cassés silencieusement. Tout le monde qui a déjà essayé connaît la chanson.

Cet article compare les 4 méthodes possibles pour importer des images dans PrestaShop, avec leurs limites concrètes et le cas d’usage de chacune.


Méthode 1 — Upload manuel dans le back-office

Vous ouvrez chaque fiche produit, vous cliquez sur l’onglet Images, vous glissez-déposez les fichiers depuis votre disque dur. PrestaShop génère automatiquement les déclinaisons (small, medium, large, cart, home).

Quand c’est suffisant : 5 à 30 produits, photos prises par vous, en local, une seule fois.

Pourquoi ça ne scale pas :

  • Téléchargement préalable de chaque image depuis l’URL fournisseur
  • Renommage manuel pour respecter une convention
  • Aucune mémoire : si le fournisseur met à jour ses visuels, il faut tout refaire

Au-delà de 50 produits, ce n’est plus envisageable. Et si vos images vivent déjà sur un CDN externe (cas standard avec un fournisseur), tout passer en local est absurde.


Méthode 2 — Import CSV natif PrestaShop avec colonne image_url

Le module Paramètres avancés > Import accepte une colonne image_url. Vous y mettez une URL publique (https), PrestaShop télécharge le fichier et l’attache au produit.

Pour plusieurs images sur un même produit, vous séparez les URLs par une virgule dans la même cellule :

nom_produit;image_url
T-shirt rouge;https://cdn.fournisseur.com/tshirt-rouge-1.jpg,https://cdn.fournisseur.com/tshirt-rouge-2.jpg

Sur le papier, c’est exactement ce qu’on veut.

Dans la vraie vie, on tombe vite sur :

  • Timeouts : si une URL met plus de 30 secondes à répondre (CDN lent, image lourde), PrestaShop interrompt l’import au milieu du fichier. Vous vous retrouvez avec 80 produits sur 200, et impossible de savoir lesquels sont à refaire.
  • Pas de retry : une URL qui renvoie un 503 temporaire est définitivement perdue. L’import passe à la ligne suivante sans logger l’erreur de manière exploitable.
  • Doublons sur ré-import : si vous relancez le même CSV pour mettre à jour une fiche, les images sont ré-téléchargées et ajoutées en double, pas remplacées.
  • Format imposé : la colonne s’appelle image_url. Si votre fournisseur la nomme IMAGES, Photo URL ou Bilder (chez les fournisseurs allemands), il faut renommer toutes les colonnes avant chaque import.
  • Couverture aléatoire : la première URL devient l’image de couverture, sauf quand elle ne l’est pas, sans logique documentée.

Quand c’est suffisant : 50 à 100 produits, URLs hyper rapides (CDN classe AWS S3), aucun ré-import prévu, pas de fournisseur multi-langues avec des noms de colonnes différents.


Méthode 3 — Modules tiers de l’addon PrestaShop

L’addon PrestaShop propose plusieurs modules dédiés à l’import d’images depuis des URLs externes (typiquement entre 30 € et 150 €). Ils corrigent une partie des problèmes du natif :

  • Retry automatique sur les erreurs réseau
  • Mapping de colonnes configurable (vous dites au module quelle colonne contient les URLs)
  • Logs d’erreur détaillés
  • Détection des doublons par hash MD5

Limites :

  • Vous payez par boutique, par version PrestaShop. Une boutique multi-versions ou un changement de PS 1.7 vers 8.x = nouvelle licence.
  • Ces modules font UNE chose : importer les images. Ils ne touchent pas aux fiches produit (titre, description, catégories). Vous restez dépendant du module natif pour le reste.
  • La maintenance dépend du développeur du module. Sur PrestaShop 8.x, certains modules vendus pour PS 1.7 ne sont plus maintenus.

Quand c’est pertinent : vous avez DÉJÀ un workflow d’import propre et juste besoin d’ajouter le bout “images depuis URL”. Pour une équipe technique qui sait lire les logs PHP.


Méthode 4 — Script via l’API REST PrestaShop

PrestaShop expose une API REST (Webservice) qui permet de POST une image en multipart sur /api/images/products/{id}. Vous écrivez un script Python ou Node qui :

  1. Lit votre CSV ligne par ligne
  2. Crée le produit via POST /api/products
  3. Pour chaque URL d’image : télécharge le fichier, le POST sur /api/images/products/{id_produit}

Avantages :

  • Contrôle total : retry, logging, parallélisme, déduplication par EAN13
  • Aucune dépendance à un module payant
  • Fonctionne sur n’importe quelle version PrestaShop avec l’API activée

Inconvénients :

  • Vous devez coder, tester, maintenir le script
  • Authentification API : générer une clé dans le back-office, la stocker proprement (pas en clair dans le code)
  • Gestion des erreurs PrestaShop spécifiques (XML mal formé, contraintes de catégories, taxes)
  • Si votre catalogue grossit, il faut paralléliser sans saturer le serveur PrestaShop

C’est la voie technique la plus propre, mais elle suppose un développeur dédié et au moins 1 à 2 jours de mise en place.


Méthode 5 — PropulseCom : import images CSV intégré au workflow de génération

PropulseCom couvre les 4 problèmes des méthodes précédentes :

  1. Détection automatique des colonnes images dans votre CSV. Pas besoin de renommer en image_url. Si une colonne s’appelle IMAGES, Photo URL, Bilder ou autre, et que les valeurs sont des URLs https://...jpg, PropulseCom la détecte.

  2. Plusieurs colonnes images par produit. Vous pouvez avoir IMAGES + IMAGES #2 + Visuel principal dans le même fichier — PropulseCom les sélectionne toutes, ordonne, et la première colonne sélectionnée devient l’image de couverture.

  3. Vérification des URLs avant import. Lors de la configuration, un échantillon des URLs est testé en HEAD pour détecter les 404 ou erreurs. Vous voyez immédiatement les URLs cassées avec un badge rouge, avant de lancer l’import sur 500 produits.

  4. Upload via l’API PrestaShop avec retry et logs. Pas de timeout au milieu du fichier. Chaque image traitée est associée à son produit dans Supabase, pour le suivi par fiche.

  5. Tout ça intégré au workflow de génération de fiches produit IA. Vous lancez UN import qui : crée la fiche, génère le titre / description / SEO via IA, attache les images, lie les catégories, et tout ça en une passe.

Comment activer dans PropulseCom

Dans Configuration Listing Produits (/csv-mapping), ouvrez l’accordéon Gestion des images produits :

  1. Activez le toggle “Gestion des images produits”
  2. Sélectionnez les colonnes du CSV qui contiennent vos URLs d’images (PropulseCom auto-détecte les colonnes valides)
  3. Vérifiez le résumé HTTP (200 / 404 / pending) sur l’échantillon
  4. Cliquez sur Enregistrer dans la barre globale en haut/bas de la page

Au prochain import, chaque produit créé en PrestaShop reçoit ses images dans l’ordre des colonnes. La première colonne sélectionnée devient automatiquement l’image de couverture.


Tableau récapitulatif

MéthodeEffort initialCoûtCatalogue maxMulti-fournisseurs
Back-office manuelFaibleGratuit~50 produitsNon
Import CSV natifMoyenGratuit~100 produitsNon
Module payant addonsMoyen30-150 € / boutique~5 000 produitsLimité
Script API REST customÉlevé (1-2 jours dev)Coût devIllimitéOui (à coder)
PropulseComFaibleInclus dans le crédit produitIllimitéOui, natif

En résumé

Pour des catalogues de moins de 50 produits avec des images locales, le back-office PrestaShop suffit.

Pour 50 à 100 produits avec des URLs externes en CDN rapide, l’import CSV natif fait le job une fois, à condition d’accepter ses limites.

Au-delà, si vos fournisseurs vous envoient régulièrement des fichiers CSV avec leurs propres formats de colonnes, et que vous voulez un workflow qui crée la fiche complète (texte IA + images + catégories) en une passe, PropulseCom est conçu exactement pour ça.

Pour tester : importez un échantillon de 10 produits en mode test et vérifiez que les images apparaissent bien sur les fiches PrestaShop générées avant de lancer le catalogue complet.

Découvrez l'outil associé

Mettez en pratique les conseils de cet article avec notre outil gratuit.

Essayer l'outil gratuit