Import CSV Prestashop

Prestashop 1.7 – Importer des produits et déclinaisons (ép. 34)

L’importation de produits sous Prestashop fait partie des demandes client qui revient régulièrement… Même si au premier abord cela semble très simple, cela implique d’être très ordonné et structuré pour que ça fonctionne.

Marre de faire de la saisie manuelle !

Dans certains secteurs d’activités, les marchands préfèrent importer leurs produits de manière massive. Je suis toujours partagé sur cette manière de faire… bon si c’est un catalogue pour des pièces de voitures… difficile de se réinventer, mais c’est toujours en ayant une arrière pensée pour le référencement naturel (tout ce qui est massif est en principe mauvais).

Mais bon… en terme de méthode de travail… parfois, le client préfère travailler dans Excel pour faire un joli fichier avec toutes les informations nécessaires, afin de pouvoir l’importer rapidement en un seul bloc. Cela permet aussi de déléguer par exemple ce travail à une tierce personne sous Excel et ensuite seulement de faire l’opération d’importation.

Les dernières importations que j’ai faites pour des clients, ont été réalisées avec Store Commander, mais cette fois-ci on va utiliser le moteur d’importation classique de Prestashop. A mon plus grand étonnement je trouve qu’il fait ça plutôt bien… pour des besoins classiques, je pense que ça peut tout à fait répondre à vos exigences.

La zone sensible reste la partie des déclinaisons… c’est toujours là que ça se complique et d’autant plus que ça démultiplie le travail à effectuer lorsqu’on fait du multilingue. Faire de l’importation massive de produits reste intéressant quand on a des milliers de références ou des produits pas « trop » complexes à gérer. Nous allons voir ensemble un exemple concret pour importer ses produits… ainsi qu’un processus final pour effectuer une mise à jour de ces informations.

Chez mon collègue : Sitolog Merlin Backoffice

Comme vous le savez j’essaie aussi de soutenir des indépendants comme moi qui font du bon travail 😉 j’espère que vous apprécierez.

Il existe une autre alternative interessante, Sitolog Merlin Backoffice ™ , qui a l’avantage de ne pas être intégrée dans PrestaShop, mais fonctionnant comme une application externe, connectée à la base de PrestaShop. Utilisant ses propres scripts d’importation particulièrement optimisés pour la vitesse et la stabilité, elle n’a pas de limite théorique de taille de fichier (son développeur revendique deux records en un : fichier de 360 000 lignes importés sans une seule erreur, à la vitesse moyenne de 0.04 sec/ligne, sur un serveur dédié).

C’est aussi, à ma connaissance le seul outil qui permet d’afficher et sélectionner (manuellement ou avec des filtres mémorisables) les lignes à importer ou au contraire à ignorer.

Il y a pas mal d’ingéniosités dans cet outil, particulièrement utiles pour ceux qui travaillent en dropshipping, comme le planificateur pour que les importations se réalisent toutes seules la nuit ou la désactivation ou masquage automatique dans votre base des produits obsolètes (ceux qui ont disparu du catalogue fournisseur).

Certains l’utiliseront aussi non pas juste pour faire de l’importation, mais aussi comme un moyen ultime pour migrer les données d’une version de PS à une autre, quand les autres solutions de migration (one click upgrade, migration pro…) ont échouées. Merlin est en effet non seulement un outil d’importation, mais est à la base un module de management en masse du catalogue et intègre une fonction exportation. On peut donc exporter depuis l’ancienne version PS et ré-importer dans la nouvelle depuis le même outil.

Ressources

Pour ce tutoriel vous aurez à disposition :

  • Deux images d’exemple à lier au produit à importer.
  • Mes fichiers d’exemples CSV / XLS utilisés durant la vidéo.

Télécharger

Résumé de la vidéo : importer des articles dans Prestashop

  • Importer de manière massive des produits vous fera gagner du temps.
  • Il est préférable de réaliser l’importation de produits dès la création de sa boutique e-commerce Prestashop.
  • Consultons les exemples fournis en standard par Prestashop.
  • Importation d’un fichier CSV de produits d’exemple avec des images.
  • Importation d’un fichier CSV de déclinaisons.
  • Pensez à bien formater les cellules pour maximiser les chances de réussites de l’importation.
  • Mise à jour du titre d’un produit pour actualiser le catalogue.
  • L’importation c’est pratique… mais ça demande de réaliser beaucoup de tests. Plus le catalogue est complexe… plus le temps de préparation sera long.

34 commentaires sur “Prestashop 1.7 – Importer des produits et déclinaisons (ép. 34)”

  1. Bonjour Germain,
    J’ai une idée un peut radicale, et si on remplaçait la base de donnée ?
    Pour une 1.6 vers 1.7 il risque d’y avoir des différences mais d’une 1.7 vers 1.7 est-ce envisageable ?
    Merci de nous aider avec ces vidéos en tout cas

    1. Bonjour,

      Je suis pas sûr d’avoir compris la question… disons que sur Prestashop il faut éviter de faire de la bidouille sur la base de donnés, car il y’a vite des risques de « casser » l’intégrité Prestashop. Cela a ensuite tendance à générer des erreurs fatales et c’est très compliqué ensuite d’avoir une boutique stable.

      A bientôt !

  2. Bonjour Germain,
    C’est tout compris avec le fichier exemple, sauf que, peux-tu me dire comment faire l’exportation des mes propres déclinaisons de ma boutique prestashop1.6 ?
    Je ne vois pas une façon « propre » comme tu dis de le faire.
    Merci pour tes tutos ils sont toujours super utiles.

    1. Bonjour,

      Si vous êtes sous Prestashop 1.6 et que vous voulez exporter vos produits déclinés vers Prestashop 1.7, alors il est préférable de réaliser une migration. Pour cela je conseille Cart2Cart ou sinon pour des importations classique Store Commander.

      A bientôt !

      1. Merci de ton commentaire.
        Je suis passé par MigrationPro. j’ai eu 2 ou 3 bugs avec les attributs incomplets mais ils ont été vite solutionnés.
        Le dialogue avec le support du module est excellent.
        Aujourd’hui mes 3000 produits avec des nombreuses déclinaisons sont OK.
        Le choix du module je l’ai fait quand j’ai lu ton tuto « Migration vers Prestashop 1.7 une galère ? »
        Alors encore merci de tous tes tutos ils sont clairs et pertinents.

  3. Bonjour,
    Je n’ai pas trouvé comment faire un export des déclinaisons sur mon PS 1.6 pour faire la migration comme vous vers PS 1.7. J’ai trouvé pour les produits mais pas pour les déclinaisons (attributs)…
    Merci d’avance et bravo pour votre vidéo.

    1. Bonjour,

      Pour migrer un Prestashop, il faut utiliser une solution comme Cart2Cart ou le module natif 1-Click Upgrade (ne pas faire d’export/import).

      A bientôt !

  4. Bonjour,
    il y a une vidéo sur l’importation mais vous ne parlez pas de l’exportation sur votre site. Je possède une site Prestashop hébergé en ligne. Il y a des produits, des images , des caractéristiques et attributs d’enregistrés. Je souhaiterai exporter toutes ses données pour ensuite les ré-importer sur ma réinstallation de prestashop propre (version 1.7.5). Je vois qu’il est possible dans le BO d’exporter les produits, les catégorie mais rien est dit sur les images. Comment exporter les images des produits et tout ré-importer au propre? Dur dur de trouver cette info sur le net …En vous remerciant par avance.

    1. Bonjour,

      Par expérience, actuellement je ne prends plus de risque de faire des imports / exports via des CSV (trop long & trop risqué). Je conseille de passer par shopping-cart-migration qui fait le transfert et la conversion des données : https://www.shopping-cart-migration.com/ (cela fonctionne bien sûr d’un Prestashop vers un Prestashop).

      A bientôt !

  5. Bonjour, je suis un grand fan de vos tutos, un immense merci pour le partage.

    Suite à une erreur de DB après un conflit de modules et une erreur de sauvegarde (réinstallation d’une sauvegarde qui devait contenir un module Google Shopping désinstallé), je me retrouve quelques mois plus tard avec une page blanche dans les modules. Impossible de revenir en arrière sans perdre tous les produits montés sur le site entre temps. Le site a été mis à jour plusieurs fois depuis sans que je m’aperçoive que les modules non natifs ainsi que l’accès à la page des modules ne marchaient plus… C’est une de mes pires loose et je pense un cas d’école…

    Je dois donc sauvegarder mes produits actuels en CVS, revenir à une version précédente de Prestashop et remonter les produits avec leurs photos et autres déclinaisons.

    Pour info, il me semble que les CVS d’exemple de Prestashop et donc les vôtres ont des colonnes manquantes (notamment : délai de livraison, niveau de stock bas, frais de port supplémentaire…). C’est pour cela qu’il faut déplacer des colonnes dans la correspondance de l’import PS, ou tout simplement les rajouter dans le CVS (ce que je préfère faire pour notamment pouvoir remplir ces colonnes).

    J’ai 2 questions :
    1 – Très naïve : peut-on mettre les photos dans un dossier de son disque et les monter grâce à l’adresse indiquée dans le CVS? Dans ce cas quelle forme doit avoir cette adresse? Ou alors doit-on créer un serveur local?

    2 – Plus technico-légal : Est-il possible de sauvegarder les commandes et factures et de les remettre sur le site après le retour à une sauvegarde? (Par CVS ou copie de certains éléments de la DB?)

    Merci des réponses qui pourront être apportées. Et merci de ce partage de connaissance.

    1. Bonjour,

      A mon avis ce qu’il faudrait faire pour revenir à un état optimal :

      1) Activer le debug du shop et corriger les erreurs critiques pour qu’il puisse au moins s’afficher.
      2) Faire une migration du vieux Prestashop vers une nouvelle installation « vierge » avec un outil comme https://www.shopping-cart-migration.com

      A bientôt !

      1. Merci de la réponse. Il y en aurait pour 70 euros. J’ai bien essayé de corriger les erreurs critiques, il les indique sur le module Lengow. J’ai essayé de l’effacer du FTP, de la BDD, rien à faire. Je les ai contacté mais ils m’ont dit ne rien pouvoir faire si je ne suis pas client. Le problème vient pourtant de leur module qui est installé sur tous les prestashop. Faites-y donc attention. Je pense que j’ai installé une DB où il était en mode essai sur une configuration où il était désactivé. C’est ça le bug et ils n’ont rien voulu m’indiquer pour déverrouiller ce problème avec leur module à la con. Mais si quelqu’un avait une idée…

        J’ai fait le tour de tout ce qui pouvait se faire pour exporter et je suis en train de créer les requêtes sql et les cvs importables pour Prestashop (une compilation et arrangement de requêtes que j’ai trouvés). Pas facile car j’ai jamais fait ça de ma vie mais j’ai déjà un fichier produits assez optimal et un fichier client bien optimal par requête sql. La requête sql doit générer un fichier csv qui doit parfaitement coller aux colonnes « proposées » lors de l’import par Prestashop. Si c’est compliqué de le faire manuellement, c’est parce que Prestashop est une communauté de vendeurs de modules et de services, pas un CMS clé-en-main… Un simple codeur devrait être capable de générer 4 ou 5 requêtes sql qui permettent de sauvegarder et réimporter très facilement l’ensemble du site (catégories, produits, déclinaisons et leurs attributs, clients, mais aussi transporteurs, marques…). Un conseil : ne pas utiliser Excel, il se fait très mal à l’open source. Calc me semble bien plus fiable (en ouvrant les fichiers csv, ne laissez coché que « point-virgule », le séparateur de texte est « , le jeu de caractère est UTF-8). Excel est fait pour tout autre chose que l’informatique : il est fait pour buguer.

        Mais du coup les fichiers csv sont très intéressants. Non seulement ils constituent une sauvegarde efficace du site (pour produits, clients, déclinaisons, catégories…) mais ils sont aussi un outil de travail étonnant pour remplir les rubriques rapidement. On y repère vite les entrées manquantes, on copie ou compare les descriptions et méta, visuellement, on y voit beaucoup de choses. C’est ultra rapide de remplir les colonnes hauteur, largeur, profondeur, poids de tous les articles sans avoir à ouvrir chaque produit dans l’interface Prestashop. C’est certainement 100 fois plus rapide.

        Je bloque juste sur quelques points pour faire apparaitre le text alt des images ou encore faire apparaitre plus de 2 images rattachées aux produits (et si possible dans une seule case avec les url séparées par des virgules) ou bien d’avoir les images des déclinaisons. Ce qui est intéressant avec les images en tout cas, c’est de téléverser le même fichier img d’origine sur le ftp pour que les url des images correspondent directement (et avec leurs miniatures donc). Ca évite de les monter par un serveur lors de l’import et de faire travailler les machines aux miniatures (en cochant « Ignorer la régénération des miniatures »).

        Je ne comprends pas exactement pourquoi PS propose par défaut des colonnes qui ne correspondent pas à l’import mais pour moi le principe est de créer des requêtes sql complètes qui les mettent dans l’ordre de PS. On remarquera qu’il n’est pas possible d’importer certaines données par l’interface csv de PS puisqu’aucun attribut de colonne lors de l’importation ne les propose (comme la compagnie d’un client par exemple). Aucun moyen de les importer de cette façon, il faudra éventuellement passer par un module (en s’assurant qu’il le prenne bien en charge avant de payer) ou alors par import/export de la base de donnée. Pas possible non plus d’importer les commandes. Pour réintégrer les commandes et les factures après le retour à la sauvegarde, je vais de mon côté essayer de passer par la DB.

        En tout cas je peux reproduire ici les requêtes sql pour les clients, les produits et les déclinaisons que j’ai assemblées quand j’aurai terminé (elles se veulent exhaustives). J’aimerai bien savoir si de votre côté de Prestashop ça tombe aussi bien dans les colonnes que chez moi ou si décidément Prestashop est une foire ! Je dois en attendant compléter les bonnes requêtes pour les quelques cases qui me manquent! A bientôt, je vous tiens au courant car ça risque d’être pratique !

  6. Bonjour et bravo pour votre Blog !
    Une question complémentaire concernant l’import de produit. Est-il possible de gérer la personnalisation de produit via CSV ?
    Merci et continuez, c’est une source d’inspiration 🙂

    1. Bonjour,

      Pour le moment je n’ai pas eu l’occasion de tester ça, mais pour tout ce qui est importation de produits je conseille de passer via un outil du type Store Commander ou Store Manager.

      A bientôt !

    2. Oui, pour ma part je trouve que le CSV est vraiment idéal pour toutes les modifications qu’on veut apporter aux fiches produits. C’est très pratique car ça permet de tout avoir sous les yeux, de copier-coller par lot, de voir les cases vides, de comparer les descriptions pour les compléter, de tout remplir rapidement sans avoir à aller sur chaque produits dans Prestashop…

      Mais comme Prestashop est un produit commercial pour les créateurs de modules, il a donc quelques manques et défauts parfois ennuyeux dans sa version de base. Il est difficile de bien extraire (exporter) toutes les options des produits et il faut passer éventuellement par des requêtes SQL adaptées pour réussir à extraire par exemple l’ensemble des photos d’un produit (car l’exportation de base proposée par Prestashop ne le permet pas). Il faut donc aussi parfois construire manuellement des colonnes du CVS qui n’apparaissent pas lors de l’exportation (cependant toutes les colonnes possibles sont proposées lors de l’importation, on peut s’y fier pour construire le tableau CVS). Et bien faire attention à attribuer les bonnes colonnes lors de la (ré-)importation dans l’interface Prestashop. C’est un grand défaut par rapport à ceux qui sont habitués aux CVS/XML d’Amazon. Sur Amazon, on ne travaille généralement que par CVS/XML et les tableaux sont fournis par Amazon suivant les catégories de produits qu’on veut y faire entrer. Avec Prestashop de base, il faut recréer une partie de ses tableaux.

      Pour travailler par CVS avec Prestashop, il faut exporter le maximum de données dès la création du tableau (si des produits existent déjà) et ajouter les éventuelles colonnes manquantes nécessaires (on peut se fier aux colonnes proposées lors de l’importation et à leur ordre pour créer le tableau complet). En suite attention à bien utiliser un tableau à jour si des modifications ont été apportées entre temps par l’interface classique de Prestashop sur un ou plusieurs produits. Le tableau écrase les modifications qui n’y ont pas été faites et ses cases vides vident celle de la fiche produit. Cependant, les colonnes inexistantes dans le tableau n’ont aucun effet sur celles de la fiche produit. Attention aussi aux déclinaisons qui nécessitent un tableau différent. Elles ne peuvent pas figurer sur le tableau des produits (des produits simples, donc)

      On peut aussi travailler avec les tableaux CVS sur les catégories, les fournisseurs, les attributs, les marques, les transporteurs, les clients, les commandes, les contacts… Tous ses tableaux ne représentent rien d’autre que la base de donnée de Prestashop. Ils sont à la fois une sauvegarde et un outil rapide de travail.

      Hélas s’ils sont un peu compliqués sur Presatshop, on peut tout de même utiliser les modules et outils cités par Webbax. Ils permettent de travailler sous forme de tableau mais ont un coût.

      Voilà une requête SQL qui permet d’extraire un maximum d’informations produits pour créer un tableau relativement complet et avec 2 images (l’adresse des images renvoie à leur adresse sur le site). Pour faire fonctionner cette requête, dans le menu gauche : Configurer / Paramètres avancés / Base de donnée / menu du haut : cliquer sur ajouter une requête SQL. Elle est plus complète que la requête de base de Prestashop quand on est dans les produits et qu’on demande une exportation des produits.
      Voilà la requête :

      SELECT p.id_product, p.active, pl.name AS 'Name',
          GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ',') AS 'Categories (x,y,z...)',
          p.price AS 'Price tax excluded or Price tax included',
          p.id_tax_rules_group AS 'Tax rules ID',
          p.wholesale_price AS 'Wholesale price',
          p.on_sale AS 'On sale (0/1)',
          IF(pr.reduction_type = 'amount', pr.reduction, '') AS 'Discount amount',
          IF(pr.reduction_type = 'percentage', pr.reduction, '') AS 'Discount percent',
          pr.from AS 'Discount from (yyyy-mm-dd)',
          pr.to AS 'Discount to (yyyy-mm-dd)',
          p.reference AS 'Reference #',
          p.supplier_reference AS 'Supplier reference #',
          ps.name AS 'Supplier',
          pm.name AS 'Manufacturer',
          p.ean13 AS 'EAN13',
          p.upc AS 'UPC',
          p.ecotax AS 'Ecotax',
          p.width AS 'Width',
          p.height AS 'Height',
          p.depth AS 'Depth',
          p.weight AS 'Weight',
          p.out_of_stock AS 'out_of_stock',
          p.additional_delivery_times AS 'additional_delivery_times',
          sa.quantity as 'Quantity',
          p.minimal_quantity AS 'Minimal quantity',
          p.low_stock_threshold AS 'low_stock_threshold',
          p.low_stock_alert AS 'low_stock_alert',
          'both' AS 'Visibility',
          p.additional_shipping_cost AS 'Additional shipping cost',
          p.unity AS 'Unity',
          p.unit_price_ratio AS 'Unit price',
          pl.description_short AS 'Short description',
          pl.description AS 'Description',
          IF(t.name IS NOT NULL, GROUP_CONCAT(DISTINCT(t.name) SEPARATOR ','), '') AS 'Tags (x,y,z...)',
          pl.meta_title AS 'Meta title',
          pl.meta_keywords AS 'Meta keywords',
          pl.meta_description AS 'Meta description',
          pl.link_rewrite AS 'URL rewritten',
          pl.available_now AS 'Text when in stock',
          pl.available_later AS 'Text when backorder allowed',
          p.available_for_order AS 'Available for order (0 = No, 1 = Yes)',
          '' AS 'Product available date',
          p.date_add 'Product creation date',
          p.show_price AS 'Show price (0 = No, 1 = Yes)',
      CONCAT('https://',
              -- get the shop domain
              IFNULL(conf.value, 'undefined_domain'),
              -- the path to the pictures folder
              '/img/p/',
              -- now take all the digits separetly as MySQL doesn't support loops in SELECT statements
              -- assuming we have smaller image id than 100'000 😉
              IF(CHAR_LENGTH(pi.id_image) >= 5, 
                  -- if we have 5 digits for the image id
                  CONCAT(
                      -- take the first digit
                      SUBSTRING(pi.id_image, -5, 1),
                      -- add a slash
                      '/'),
                  ''),
              -- repeat for the next digits
              IF(CHAR_LENGTH(pi.id_image) >= 4, CONCAT(SUBSTRING(pi.id_image, -4, 1), '/'), ''),
              IF(CHAR_LENGTH(pi.id_image) >= 3, CONCAT(SUBSTRING(pi.id_image, -3, 1), '/'), ''),
              if(CHAR_LENGTH(pi.id_image) >= 2, CONCAT(SUBSTRING(pi.id_image, -2, 1), '/'), ''),
              IF(CHAR_LENGTH(pi.id_image) >= 1, CONCAT(SUBSTRING(pi.id_image, -1, 1), '/'), ''),
              -- add the image id
              pi.id_image,
              -- put the image extension
              '.jpg') as image_url,
      CONCAT('https://',
              -- get the shop domain
              IFNULL(conf.value, 'undefined_domain'),
              -- the path to the pictures folder
              '/img/p/',
              -- now take all the digits separetly as MySQL doesn't support loops in SELECT statements
              -- assuming we have smaller image id than 100'000 😉
              IF(CHAR_LENGTH(pi2.id_image) >= 5, 
                  -- if we have 5 digits for the image id
                  CONCAT(
                      -- take the first digit
                      SUBSTRING(pi2.id_image, -5, 1),
                      -- add a slash
                      '/'),
                  ''),
              -- repeat for the next digits
              IF(CHAR_LENGTH(pi2.id_image) >= 4, CONCAT(SUBSTRING(pi2.id_image, -4, 1), '/'), ''),
              IF(CHAR_LENGTH(pi2.id_image) >= 3, CONCAT(SUBSTRING(pi2.id_image, -3, 1), '/'), ''),
              if(CHAR_LENGTH(pi2.id_image) >= 2, CONCAT(SUBSTRING(pi2.id_image, -2, 1), '/'), ''),
              IF(CHAR_LENGTH(pi2.id_image) >= 1, CONCAT(SUBSTRING(pi2.id_image, -1, 1), '/'), ''),
              -- add the image id
              pi2.id_image,
              -- put the image extension
              '.jpg') as image_url2,
          0 AS 'Delete existing images (0 = No, 1 = Yes)',
          GROUP_CONCAT(DISTINCT(CONCAT((fl.name), ':', (fvl.value), ':0')) SEPARATOR ',') AS 'Feature (Name:Value:Position)',
          p.online_only AS 'Available online only (0 = No, 1 = Yes)',
          p.condition AS 'Cond',
          0 AS 'Customizable (0 = No, 1 = Yes)',
          0 AS 'Uploadable files (0 = No, 1 = Yes)',
          0 AS 'Text fields (0 = No, 1 = Yes)',
          p.out_of_stock as 'Out of stock',
          '1' AS 'ID',
          null AS 'Action when out of stock',
          null AS 'Depends on stock',
          null AS 'Warehouse',
      concat('https://www.lachaisebleuecollection.com','/', cl.`name`,'/', p.`id_product`,'-', pl.`link_rewrite`,'.html') as "ProductURL google"
      FROM  `pscoll_product` p
      
      LEFT JOIN pscoll_product_lang pl ON(p.id_product = pl.id_product)
      LEFT JOIN pscoll_category_product cp ON(p.id_product = cp.id_product)
      LEFT JOIN pscoll_category_lang cl ON(cp.id_category = cl.id_category)
      
      LEFT JOIN pscoll_specific_price pr ON(p.id_product = pr.id_product)
      LEFT JOIN pscoll_product_tag pt ON(p.id_product = pt.id_product)
      LEFT JOIN pscoll_tag t ON(pt.id_tag = t.id_tag)
      LEFT JOIN pscoll_image pi ON(p.id_product = pi.id_product and pi.cover = 1)
      LEFT JOIN pscoll_image pi2 ON(p.id_product = pi2.id_product and pi2.position = 2)
      LEFT JOIN pscoll_manufacturer pm ON(p.id_manufacturer = pm.id_manufacturer)
      LEFT JOIN pscoll_supplier ps ON(p.id_supplier = ps.id_supplier)
      LEFT JOIN pscoll_configuration conf ON conf.name = 'PS_SHOP_DOMAIN'
      LEFT JOIN pscoll_feature_product fp ON p.id_product = fp.id_product
      LEFT JOIN pscoll_feature_lang fl ON fp.id_feature = fl.id_feature
      LEFT JOIN pscoll_feature_value_lang fvl ON fp.id_feature_value = fvl.id_feature_value
      LEFT JOIN pscoll_feature f ON fp.id_feature = f.id_feature
      LEFT JOIN pscoll_feature_value fv ON fp.id_feature_value = fv.id_feature_value
      LEFT JOIN pscoll_stock_available sa ON (p.id_product = sa.id_product)
      WHERE pl.id_lang = 1
      AND cl.id_lang = 1
      GROUP BY p.id_product;
      
      1. Bonjour,

        Un grand merci pour votre contribution, en principe pour tout ce qui concerne les imports / exports sur Prestashop je conseille de passer par un module du genre Store Commander ou Store Manager pour gagner du temps (certes c’est payant, mais le temps a aussi parfois un coût élevé).

        A bientôt !

  7. Bonjour Germain, et encore merci pour ce Tuto!

    Je dois faire une modification sur toutes les fiches produits uniquement sur le « Libellé si en stock ».
    J’ai une centaine de fiches produits et je souhaiterai éviter la saisie fiche par fiche sur le BO Prestashop!

    Il y a-t-il un moyen de le faire avec l’import export natif de Prestashop ou suis-je obligé de passer par un module?
    Lorsque j’exporte mes produits, je ne vois pas l’onglet concerné…

    Par avance merci pour votre aide.

    1. Bonjour,

      A mon avis pour tout ce qui concerne les opérations massives, il est préférable d’utiliser un module Prestashop dédié, du genre « Store Commander ».

      A bientôt !

  8. Bonjour,
    Merci pour votre retour, en fait j’ai exporté mes produits, n’ai gardé que la colonne des identifiants produits, et ajouté une colonne « libellé si en stock », j’ai ensuite importé ce fichier ce qui m’a permis de mettre à jour une seule information sur toutes les fiches produits.
    Cette manip est pratique pour la mise à jour d’une seule « case » mais je pense effectivement que le module sera plus adéquate pour travailler massivement, et surtout gérer la totalité d’un stock via un tableur. Ce sera en tout cas plus rapide et moins casse tête!

    Bonne journée.

    1. Bonjour,

      Le système d’importation de Prestashop peut dépanner au début, mais c’est vrai que « perdre » trop de temps à tester des processus d’importation non-optimisés… ça coûte aussi (en temps). Parfois quand on a tout compté un module ce n’est pas si cher payé 😉

      A bientôt !

  9. Merci Germain pour ce tuto très riche en explications et très parlant.
    J’ai un petit soucis pour importer les stocks de mes déclinaisons mais pas pour les produits sans déclinaisons,j’ai rentré les références dans la déclinaison et sélectionné une déclinaison de référence mais quand j’importe les références avec le stock correspondants pour chaque,pas de changement dans ma déclinaison.Peut être une solutions.Merci d’avance.
    Cordialement
    Jacques

    1. Bonjour,

      De mon côté je pratique rarement cette opération avec l’outil natif d’importation Prestashop (dur d’en dire plus sur le problème de stock), je vous conseille de passer par un outil du style Store Commander (plus précis). Ou alors voir du côté du forum peut-être que le cas a déjà été vu / traité.

      A bientôt !

  10. Merci Germain pour cette réponse rapide.
    Je me doutais de la réponse , c’est déjà assez délicat avec les produits alors avec les déclinaisons !!!
    Continu a nous vers de beaux tutos qui nous aide bien
    Merci
    Cordialement
    Jacques

  11. Bonjour Germain,

    Merci pour tous ces partages de connaissances qui m’ont été utiles à plusieurs reprises.

    Je voulais avoir ton avis concernant un problème que je rencontre sur le site d’un client qui vend des peinture. Certains produits peuvent être vendus sous différentes teintes, dans un nuancier de plus de cent coloris. J’aurais pu faire un champ libre pour indiquer textuellement la teinte choisie, le problème est que les tarifs ne sont pas les mêmes si les teintes sont sombres ou claires. et il est difficile de faire confiance au client pour choisir le bon prix.

    D’où ma question :
    Est ce que le générateur de déclinaisons Prestashop est capable de gérer des centaines d’attributs (il n’y aura pas de combinaisons d’attributs) ? Sinon ce programme que tu conseilles, Merlin Backoffice, est il capable de le faire ? aurais tu une autre astuce ?

    Merci d’avance pour tes conseils

    1. Bonjour Julien,

      Il est peut-être préférable de regarder du côté des produits personnalisables (avec un module externe), s’il y a trop de déclinaisons cela devient « presque » indigeste.

      A bientôt !

      1. Hé oui, pas bête !
        En fait je n’utilise que deux déclinaisons du produit, teinte claire ou teinte sombre et pour préciser la couleur, c’est une sorte customisation du produit par sélecteur de champ.
        Reste a savoir si je vais trouver un module qui peut m’ajouter des champs différents en fonction des déclinaisons de produit, sinon je serais obligé de faire deux produits à chaque fois (le clair et le foncé).
        Merci pour la piste !

  12. Bonjour
    J’utilise prestashop 1.7 lorsque je veux importer un fichier j’ai un bug visuel sur la liste déroulante de la première boite de dialogue.
    Ce bug empêche de répondre correctement à « Que voulez vous importer » la liste semble bloquée.
    J’ai essayé de passer par Fiefox, Google puis Safari. EN ayant pris soin de vider le cache.
    Le problème peut il venir de l’hébergement (OVH)
    Merci par avance

    1. Pensez à faire une mise à jour de Prestashop. Cela peut arranger les bugs. Autrement, voyez si votre fenêtre n’est pas trop petite. Essayer de passer en plein écran par exemple. On sait jamais… Prestashop a pas mal de problèmes « responsifs » selon les langues et les affichages.

      Il y a peu de chances en tout cas que cela vienne d’OVH. Je n’ai d’ailleurs pas de problème avec Prestashop chez eux.

      1. Bonjour
        J’ai suivi vos instructions (mise à jour de Prestashop, utilisation du plein écran).
        Le problème persiste. A un moment par Safari je n’avais plus le bug visuel mais la liste déroulante était vide.
        J’ai fais un essais d’importer sur un Prestashop installé en local et l’opération se déroule parfaitement.
        Je précise que le client a chois chez OVH (par erreur) la formule
        CLOUD WEB au lieu de la formule HEBERGEMENT BUSINESS PERFORMANCE
        J’ai posé la question à OVH concernant la compatibilité avec PRESTASHOP et j’attends toujours leur réponse.
        J’ai d’autant plus un doute que pour d’autres clients à qui j’ai conseillé OVH et qui ont cette formule HBP il n’y a pas ce problème.
        Merci par avance pour vos éclaircissements.
        N’hésitez pas à m’indiquer si des prestataires peuvent m’aider à résoudre ce problème.
        Pour l’instant je n’ai pas trouver de réponse dans le FAQ Prestashop.
        Cordialement

  13. Bonjour et merci pour tes tutos, j’integre aujourd’hui mes produits en csv, par contre j’ai 3 fournisseurs, donc 3 fichiers csv, quel module presta me conseilles tu, a part store commander puisque je n’ai que 500 produits a integrer, cordialement

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *