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 nommeIMAGES,Photo URLouBilder(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 :
- Lit votre CSV ligne par ligne
- Crée le produit via
POST /api/products - 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 :
-
Détection automatique des colonnes images dans votre CSV. Pas besoin de renommer en
image_url. Si une colonne s’appelleIMAGES,Photo URL,Bilderou autre, et que les valeurs sont des URLshttps://...jpg, PropulseCom la détecte. -
Plusieurs colonnes images par produit. Vous pouvez avoir
IMAGES+IMAGES #2+Visuel principaldans le même fichier — PropulseCom les sélectionne toutes, ordonne, et la première colonne sélectionnée devient l’image de couverture. -
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.
-
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.
-
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 :
- Activez le toggle “Gestion des images produits”
- Sélectionnez les colonnes du CSV qui contiennent vos URLs d’images (PropulseCom auto-détecte les colonnes valides)
- Vérifiez le résumé HTTP (200 / 404 / pending) sur l’échantillon
- 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éthode | Effort initial | Coût | Catalogue max | Multi-fournisseurs |
|---|---|---|---|---|
| Back-office manuel | Faible | Gratuit | ~50 produits | Non |
| Import CSV natif | Moyen | Gratuit | ~100 produits | Non |
| Module payant addons | Moyen | 30-150 € / boutique | ~5 000 produits | Limité |
| Script API REST custom | Élevé (1-2 jours dev) | Coût dev | Illimité | Oui (à coder) |
| PropulseCom | Faible | Inclus dans le crédit produit | Illimité | 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