Module Export Import Categories pour Magento 2
- Compatibilité
- 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.7, 2.3.6, 2.3.5, 2.3.4
Description / Module Export Import Categories pour Magento 2
MAGENTO 2 · CATÉGORIES · CSV · STORE VIEW
Mettez à jour vos catégories en masse et dans la langue choisie.
Kowal Export Import Categories
Exportez les attributs de catégories vers CSV, préparez les modifications dans une feuille de calcul et importez-les dans la bonne store view. Contrôlez les valeurs vides, les URL, les images ainsi que le rapport de chaque exécution.
Update et Insert · Dry Run · Traductions et attributs personnalisés
COMMENT ÇA FONCTIONNE EN PRATIQUE
01 · Vous exportez les données choisies
Vous indiquez la store view, le périmètre des catégories et les attributs.
02 · Vous préparez et vérifiez le CSV
Vous modifiez les valeurs et lancez une validation sans enregistrement.
03 · Vous importez avec contrôle du résultat
Vous choisissez les politiques d’écriture et analysez le rapport des lignes.
Qu’apporte ce module à votre boutique ?
Découvrez les fonctionnalités, les cas d’utilisation et les paramètres du module.
Découvrez le module
Kowal_ExportImportCategories est un module Magento 2 qui permet d’exporter et d’importer les attributs de catégories au format CSV en tenant compte de la store view sélectionnée. L’extension a été conçue pour les boutiques qui travaillent avec plusieurs versions linguistiques, plusieurs vues de boutique ou qui doivent mettre à jour en masse les données de catégories sans modifier manuellement chaque catégorie dans le panneau d’administration.
Le module permet d’exporter les catégories dans un fichier CSV, de modifier les attributs sélectionnés en dehors de Magento, puis de réimporter les données en mode mise à jour des catégories existantes ou création de nouvelles catégories. L’import fonctionne sur la store view indiquée, ce qui permet de préparer facilement les traductions des noms, descriptions, balises meta, URL et autres attributs de catégories.
À qui s’adresse ce module ?
Le module est destiné aux :
- boutiques Magento 2 avec plusieurs versions linguistiques,
- équipes de contenu travaillant avec des fichiers CSV,
- agences qui déploient des catalogues de catégories entre environnements,
- administrateurs qui doivent mettre à jour en masse les noms, descriptions, métadonnées et URL de catégories,
- boutiques qui disposent d’attributs de catégories personnalisés et souhaitent les gérer en masse,
- projets dans lesquels les données de catégories sont préparées en dehors de Magento, par exemple par des traducteurs, une équipe SEO ou un système PIM.
Fonctionnalités clés
- Export des catégories vers CSV pour la
store viewsélectionnée. - Import des catégories depuis CSV pour la
store viewsélectionnée. - Mode de mise à jour des catégories existantes :
update. - Mode de création de nouvelles catégories :
insert. - Sélection des attributs exportés vers CSV.
- Sélection des attributs importés depuis CSV.
- Colonnes système automatiques nécessaires à l’identification des catégories.
- Validation des en-têtes CSV avant l’import.
- Validation des noms de colonnes par rapport aux attributs de catégories Magento réels.
- Prise en charge des attributs de catégories personnalisés ajoutés dans Magento.
- Prise en charge des valeurs textuelles pour tous les attributs.
- Prise en charge des attributs
selectetmultiselectpar libellés d’options. - Possibilité de travailler sur les valeurs visibles dans la store view ou uniquement sur les remplacements de store view.
- Mode
dry-run, c’est-à-dire une validation complète de l’import sans enregistrement des données. - Politique des valeurs vides.
- Stratégies de gestion de
url_key. - Création optionnelle de permanent redirect lors du changement d’URL de catégorie.
- Prise en charge des chemins vers les images de catégories.
- Batch processing pour les fichiers plus volumineux.
- Politiques de gestion des erreurs.
- Rapport d’import au format CSV.
- Historique des imports dans le panneau d’administration.
Export des catégories
L’export permet de générer un fichier CSV avec les catégories pour la store view sélectionnée. L’administrateur choisit la vue de boutique ainsi que les attributs de catégories qui doivent figurer dans le fichier. Le module ajoute automatiquement les colonnes système nécessaires à l’identification des catégories et au maintien de la structure de l’arborescence.
L’export peut être utilisé pour :
- préparer les traductions de catégories,
- auditer les données de catégories,
- corriger en masse les métadonnées SEO,
- comparer les valeurs entre store views,
- préparer un fichier à importer sur le même environnement ou sur un autre,
- archiver les données actuelles des catégories avant modification.
Périmètre de l’export
L’export porte sur les attributs de catégories. Le module n’exporte pas les produits associés aux catégories. Il n’effectue pas non plus d’opérations de suppression de catégories.
L’administrateur peut choisir :
Store View,- la catégorie de départ,
- les attributs à exporter,
- le séparateur CSV,
- le mode de valeurs store view.
Modes de valeurs store view lors de l’export
Le module prend en charge deux modes d’export des valeurs :
resolved_value- la valeur visible dans lastore viewdonnée est exportée, c’est-à-dire après prise en compte du fallback Magento vers la valeur par défaut.store_override_only- seule la valeur remplacée directement pour lastore viewdonnée est exportée ; si la valeur est héritée, la cellule CSV reste vide.
Le mode resolved_value est pratique pour le travail éditorial, car il affiche la valeur réelle visible dans la boutique. Le mode store_override_only est utile lorsqu’il faut contrôler uniquement les traductions ou les remplacements spécifiques à une vue de boutique donnée.
Import des catégories
L’import permet de charger un fichier CSV et d’enregistrer les attributs de catégories sélectionnés pour la store view indiquée. La store view choisie dans le formulaire d’import est prioritaire, et la colonne store_view_code du CSV sert à valider que le fichier correspond à la vue de boutique sélectionnée.
L’import peut être utilisé pour :
- traduire les catégories,
- mettre à jour les noms de catégories,
- mettre à jour les descriptions de catégories,
- mettre à jour les balises meta,
- mettre à jour
url_key, - créer de nouvelles catégories,
- importer des attributs de catégories personnalisés,
- mettre à jour les attributs de menu et de visibilité,
- importer les chemins des images de catégories.
Mode update
Le mode update met à jour les catégories existantes. Le module ne crée pas de nouvelles catégories dans ce mode.
La catégorie est recherchée principalement par entity_id. Si entity_id n’est pas disponible, le module peut utiliser category_path, à condition que le chemin identifie une seule catégorie sans ambiguïté.
Le mode update est recommandé pour :
- les traductions de catégories entre store views,
- les corrections SEO,
- les mises à jour de descriptions,
- les mises à jour de noms,
- la modification des valeurs d’attributs de catégories personnalisés.
Exemple de scénario de traduction :
- Export des catégories depuis la store view de base.
- Modification de
store_view_codedans le CSV avec le code de la store view cible. - Conservation des mêmes
entity_id. - Renseignement des traductions dans les colonnes
name,description,meta_title,meta_description. - Import en mode
updatepour la store view cible.
Dans cette variante, le module enregistre les attributs sélectionnés dans le contexte du store_id numérique choisi dans le formulaire d’import.
Mode insert
Le mode insert crée de nouvelles catégories. Dans ce mode, entity_id n’est pas requis, car Magento l’attribue automatiquement.
Une nouvelle catégorie doit avoir un parent indiqué via :
parent_entity_id,- ou
parent_path.
Le mode insert est recommandé pour :
- créer de nouvelles structures de catégories,
- transférer une arborescence de catégories entre environnements,
- préparer des catégories dans une feuille CSV,
- créer des catégories à partir de données externes.
Si l’import contient à la fois un parent et un enfant, les données doivent être organisées dans l’ordre, des catégories de niveau supérieur vers les catégories de niveau inférieur.
Format CSV
La première ligne du fichier CSV doit contenir les en-têtes de colonnes. Les colonnes se divisent en :
- colonnes système,
- colonnes d’attributs de catégories.
Les colonnes d’attributs doivent correspondre aux codes d’attributs Magento, par exemple :
name,url_key,description,meta_title,meta_description,is_active,include_in_menu.
Colonnes système
Le module utilise les colonnes système suivantes :
store_view_code,entity_id,parent_entity_id,category_path,parent_path,level,position,attribute_set_id.
Les colonnes système ne sont pas traitées comme des attributs EAV. Elles servent à identifier les catégories, valider la store view et reconstituer la structure de l’arborescence.
Exemple de CSV pour la mise à jour
store_view_code,entity_id,category_path,name,url_key,is_active,include_in_menu,meta_titlepl,13,Default Category/Gear/Bags,Torby,torby,1,1,Torbypl,14,Default Category/Gear/Fitness Equipment,Sprzet fitness,sprzet-fitness,1,1,Sprzet fitness
Exemple de CSV pour la création de catégories
store_view_code,parent_entity_id,parent_path,category_path,name,url_key,is_active,include_in_menudefault,12,Default Category/Gear,Default Category/Gear/Helmets,Helmets,helmets,1,1default,12,Default Category/Gear,Default Category/Gear/Gloves,Gloves,gloves,1,1
Travail sur les attributs textuels
Le module enregistre les valeurs dans le CSV sous forme de texte. Le fichier peut ainsi être modifié dans une feuille de calcul, transmis à un traducteur ou préparé automatiquement dans un système externe.
Pour les attributs de type select et multiselect, le module travaille sur les libellés d’options et non sur les ID techniques des options. Cela signifie que le CSV contient des valeurs lisibles, telles que Products only, Position ou Price.
Pour multiselect, plusieurs valeurs sont séparées par le séparateur |.
Exemple :
store_view_code,entity_id,category_path,display_mode,available_sort_by,default_sort_bydefault,13,Default Category/Gear/Bags,Products only,Position|Product Name|Price,Position
Si le libellé d’option n’existe pas ou n’est pas univoque, l’import signalera une erreur de validation.
Politique des valeurs vides
Lors de l’import, l’administrateur choisit la manière d’interpréter les cellules CSV vides :
skip_empty- une cellule vide ne modifie pas la valeur existante.clear_value- une cellule vide efface la valeur de l’attribut pour la store view sélectionnée.use_default- une cellule vide supprime le remplacement de store view et permet à Magento d’utiliser la valeur par défaut.
Par défaut, la variante recommandée pour les mises à jour est skip_empty, car elle limite le risque d’effacement accidentel de données.
Gestion des URL de catégories
Le module permet de configurer la stratégie de gestion de url_key :
use_csv_value- utilise la valeur du CSV.generate_from_name- génèreurl_keyà partir de l’attributname.keep_existing- en modeupdate, conserve leurl_keyactuel.magento_default- laisse la gestion des URL au mécanisme standard de Magento.
L’administrateur peut également décider si des permanent redirects doivent être créées lors du changement de url_key.
Cette configuration est particulièrement importante pour les traductions, car différentes boutiques peuvent appliquer différentes stratégies :
- URL traduites pour chaque langue,
- URL communes entre versions linguistiques,
- URL générées automatiquement à partir des noms de catégories,
- URL SEO gérées manuellement.
Images de catégories
Le module peut importer les attributs d’images de catégories si les colonnes correspondantes sont sélectionnées pour l’import.
Répertoire source par défaut :
pub/media/import/categories
Le CSV contient un chemin textuel relatif à ce répertoire, par exemple :
gear/bags.jpg
Le module valide l’existence du fichier et son extension. Les formats graphiques sûrs pris en charge sont notamment :
jpg,jpeg,png,webp,gif.
Mode dry-run
Le mode dry-run permet de lancer la validation de l’import sans enregistrer de données dans Magento.
Dans ce mode, le module :
- lit le CSV,
- valide les en-têtes,
- valide la store view,
- vérifie l’existence des catégories ou des parents,
- vérifie les attributs,
- mappe les valeurs
selectetmultiselect, - vérifie les images,
- génère un rapport d’erreurs et d’avertissements,
- n’enregistre pas les catégories.
C’est la première étape recommandée avant tout import important.
Batch processing
L’import fonctionne par lots. La taille du batch peut être configurée dans le formulaire d’import.
Valeur par défaut :
100 wierszy
Le batch processing limite le risque de timeouts et de consommation excessive de mémoire avec les fichiers plus volumineux.
Politique d’erreurs
Le module prend en charge trois variantes de comportement en cas d’erreur :
skip_invalid_rows- les lignes erronées sont ignorées, les lignes correctes continuent d’être importées.stop_on_first_error- l’import s’arrête à la première erreur.all_or_nothing- si la validation de l’une des lignes détecte une erreur avant l’enregistrement, l’import ne commence pas l’écriture.
La variante recommandée pour les imports volumineux est skip_invalid_rows, car elle permet de traiter les données correctes et d’obtenir un rapport des problèmes pour les autres lignes.
Rapports et historique des imports
Après l’import, le module génère un rapport CSV contenant :
- le numéro de ligne,
- l’identifiant de catégorie,
- le statut,
- le message,
- la liste des attributs modifiés.
L’historique des imports est disponible dans le panneau d’administration. L’administrateur peut vérifier :
- la date de l’import,
- l’utilisateur admin,
- la store view,
- le mode d’import,
- le nom du fichier,
- le nombre de lignes,
- le nombre de succès,
- le nombre d’erreurs,
- l’information indiquant si l’import a été exécuté en
dry-run, - télécharger le rapport d’import.
Sécurité
Le module utilise l’ACL Magento et ajoute des autorisations distinctes pour l’export, l’import et l’historique des imports.
L’import est sécurisé par :
- la validation des en-têtes,
- la validation des codes d’attributs,
- la validation de la store view,
- la validation des colonnes requises,
- la validation des types de valeurs,
- la validation des libellés d’options,
- la validation des fichiers images,
- le reporting des erreurs ligne par ligne.
Le module ne supprime pas les catégories et n’importe pas les produits associés aux catégories.
Traductions de catégories
Vous exportez les catégories depuis la store view de base, renseignez les traductions dans le CSV, remplacez store_view_code par le code de la store view cible et importez les données en mode update.
Mise à jour SEO en masse
Vous exportez les attributs meta_title, meta_description, url_key, les modifiez dans le CSV et importez uniquement les colonnes sélectionnées.
Création d’une nouvelle structure de catégories
Vous préparez un fichier CSV avec category_path, parent_path, name et les autres attributs requis, puis vous l’importez en mode insert.
Mise à jour des attributs de catégories personnalisés
Si la boutique possède des attributs de catégories personnalisés, le module les récupère dynamiquement depuis EAV et permet de les sélectionner lors de l’export et de l’import.
Emplacement dans le panneau Magento
Après installation, le module est disponible dans :
System > Data Transfer > Export/Import Categories
Vues disponibles :
Export Categories,Import Categories,Import History.
Le formulaire d’import détermine la vue de boutique
System → Data Transfer → Export/Import Categories fournit l’export, l’import et l’historique. La store view sélectionnée dans le formulaire définit le contexte d’enregistrement ; store_view_code dans le fichier sert à vérifier la conformité.
Lorsque vous transférez des données entre instances, vérifiez les identifiants des parents et les chemins de catégories. L’export des attributs seul ne transfère ni les produits ni leurs associations aux catégories.
All or nothing et erreurs lors de l’enregistrement
Le mode all_or_nothing valide toutes les lignes avant de commencer l’enregistrement. Une erreur de cette validation arrête l’import.
Le processus actuel enregistre ensuite les catégories une par une et ne couvre pas tout le fichier avec une seule transaction. Un échec d’enregistrement n’entraîne pas le rollback automatique des catégories déjà enregistrées ; analysez le rapport et conservez un export avant les modifications.
Installation via Composer
Package kowal/module-export-import-categories, module Kowal_ExportImportCategories. Après avoir configuré l’accès au dépôt Kowal, installez le package, activez le module, mettez Magento à jour et videz le cache. En production, tenez compte de la compilation et du déploiement du contenu statique conformément au processus de la boutique.
De la configuration au résultat
1. Vous exportez les données choisies
Vous indiquez la store view, le périmètre des catégories et les attributs.
2. Vous préparez et vérifiez le CSV
Vous modifiez les valeurs et lancez une validation sans enregistrement.
3. Vous importez avec contrôle du résultat
Vous choisissez les politiques d’écriture et analysez le rapport des lignes.
Traductions de catégories depuis une feuille de calcul
Vous exportez les noms, descriptions et métadonnées. Vous conservez les identifiants de catégories, modifiez le code de vue dans le CSV et préparez les traductions.
Après le dry-run, vous importez les colonnes sélectionnées en mode update vers la store view cible. Les cellules vides sont interprétées selon la politique d’import choisie.
Optimisez votre travail avec les catégories et les traductions
Vous souhaitez adapter le module à votre boutique ? Demandez le déploiement de Kowal Export Import Categories et discutez de la configuration ou des extensions nécessaires.
Caractéristiques
| Compatibilité avec le modèle | Luma / Blank, KOWAL |
|---|
Notice d'installation du module
Guide d’installation et de configuration du module Kowal_ExportImportCategories
Ce document décrit l’installation, la configuration et l’utilisation du module Kowal_ExportImportCategories pour Magento 2. Le guide tient compte des informations du fichier README.md ainsi que des fonctionnalités implémentées dans le module.
Prérequis
- Magento 2.
- PHP compatible avec l’installation Magento, PHP
8.1ou plus récent recommandé. - Accès au CLI Magento.
- Accès à Composer.
- Droits d’administrateur Magento.
- Accès au dépôt du module.
- Pour l’import d’images : possibilité de placer des fichiers dans le répertoire
pub/media/import/categories.
Installation via Composer
Le module est disponible via le dépôt Composer.
1. Ajoutez le dépôt Composer
Les identifiants d’accès au dépôt Composer, à savoir l’adresse e-mail du client et le token de licence, vous seront envoyés par e-mail après l’achat. Ils sont également disponibles dans l’espace client après connexion sur kowal.store. Remplacez TWOJ_EMAIL_KLIENTA par l’adresse e-mail de votre compte et TWOJ_TOKEN par le token reçu. Exécutez les commandes dans le répertoire racine de Magento.
composer config repositories.kowal composer https://repo.kowal.store2. Configurez l’accès au dépôt Composer Kowal
Configurez les identifiants d’accès au dépôt Composer Kowal :
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'Remplacez par votre propre token d’accès.
3. Installez le module
composer require kowal/module-export-import-categories4. Activez le module dans Magento
bin/magento module:enable Kowal_ExportImportCategories5. Lancez la mise à jour Magento
bin/magento setup:upgrade6. Videz le cache
bin/magento cache:flush7. Lancez éventuellement la compilation DI
Sur les environnements de production ou en mode production :
bin/magento setup:di:compile8. Déployez éventuellement les ressources statiques
Si l’environnement l’exige :
bin/magento setup:static-content:deploybin/magento cache:flushInstallation manuelle dans app/code
Vous pouvez également placer le module manuellement dans le répertoire :
app/code/Kowal/ExportImportCategoriesAprès avoir copié les fichiers, exécutez :
bin/magento module:enable Kowal_ExportImportCategoriesbin/magento setup:upgradebin/magento cache:flushEn mode production, exécutez également :
bin/magento setup:di:compileVérification de l’installation
Après l’installation, vérifiez que le module est actif :
bin/magento module:status Kowal_ExportImportCategoriesLe module doit figurer dans la liste des modules actifs.
Dans le panneau d’administration, allez dans :
System > Data Transfer > Export/Import CategoriesTrois éléments doivent être visibles :
Export Categories,Import Categories,Import History.
Autorisations ACL
Le module ajoute des autorisations administratives distinctes :
- accès à la section principale
Export/Import Categories, - export des catégories,
- import des catégories,
- historique des imports.
Si l’utilisateur admin ne voit pas le menu du module, vérifiez son rôle dans :
System > Permissions > User RolesAttribuez ensuite les autorisations appropriées aux ressources du module.
Emplacement du module dans le panneau
Le module est disponible sous :
System > Data Transfer > Export/Import CategoriesVues :
Export Categories- export des catégories vers CSV.Import Categories- import des catégories depuis CSV.Import History- historique des imports et rapports.
Configuration de l’export
La vue d’export permet de générer un fichier CSV avec les catégories.
Champs d’export
Store View
Sélectionne la store view depuis laquelle les valeurs des attributs de catégories seront lues.
Si vous choisissez une store view linguistique, l’export peut contenir des valeurs spécifiques à cette store view ou des valeurs héritées du scope par défaut, selon le mode de valeurs.
Start Category ID
Champ optionnel permettant de limiter l’export à une catégorie sélectionnée et à son sous-arbre.
Si le champ reste vide, le module exporte les catégories à partir de la root category de la store view sélectionnée.
Store View Value Mode
Définit la manière d’exporter les valeurs dépendantes de la store view.
Variantes disponibles :
resolved_value,store_override_only.
resolved_value exporte la valeur visible dans la store view sélectionnée après prise en compte du fallback Magento.
store_override_only exporte uniquement la valeur remplacée pour la store view sélectionnée. Si la valeur est héritée du default scope, la cellule CSV sera vide.
CSV Delimiter
Séparateur CSV. Par défaut :
,Il est possible d’utiliser un autre séparateur si le fichier doit être modifié dans un outil exigeant par exemple un point-virgule.
Attributes
Liste des attributs de catégories disponibles dans Magento.
Le module récupère les attributs dynamiquement depuis EAV ; la liste peut donc également afficher des attributs de catégories personnalisés ajoutés au projet.
Les colonnes système sont ajoutées automatiquement et il n’est pas nécessaire de les sélectionner.
Colonnes système dans l’export
L’export doit toujours contenir les colonnes système :
store_view_code,entity_id,parent_entity_id,category_path,parent_path,level,position,attribute_set_id.
Ces colonnes servent à identifier les catégories, valider la store view et gérer la structure de l’arborescence.
Configuration de l’import
La vue d’import permet de charger un CSV et d’enregistrer les données de catégories.
Champs d’import
Store View
Sélectionne la store view dans laquelle les valeurs seront enregistrées.
Ce champ détermine le store_id numérique utilisé lors de l’enregistrement dans les tables Magento.
La colonne store_view_code du CSV n’est pas directement convertie en store_id. Elle sert à valider que le fichier correspond à la store view sélectionnée.
Exemple :
- dans le formulaire, vous choisissez une store view avec
store_id = 1, - le CSV doit contenir un
store_view_codecorrespondant à cette store view, - le module enregistre les données avec
store_id = 1.
Import Mode
Modes disponibles :
update,insert.
update met à jour les catégories existantes.
insert crée de nouvelles catégories.
CSV File
Fichier CSV avec en-têtes dans la première ligne.
Le fichier doit être encodé en UTF-8.
CSV Delimiter
Séparateur CSV. Il doit correspondre au séparateur utilisé dans le fichier.
Unknown Columns Policy
Définit le comportement pour les colonnes qui ne sont ni des colonnes système ni des attributs de catégories connus.
Variantes disponibles :
error- l’import signale une erreur pour les colonnes inconnues.ignore- les colonnes inconnues sont ignorées.
Variante recommandée :
errorEmpty Values Policy
Définit la manière dont le module interprète les cellules CSV vides.
Variantes disponibles :
skip_empty,clear_value,use_default.
skip_empty signifie qu’une cellule vide ne modifiera pas la valeur actuelle.
clear_value signifie qu’une cellule vide effacera la valeur de l’attribut.
use_default signifie qu’une cellule vide supprimera le remplacement de store view et permettra à Magento d’utiliser la valeur par défaut.
Variante recommandée pour un import de mise à jour :
skip_emptyURL Key Strategy
Définit le mode de gestion de l’attribut url_key.
Variantes disponibles :
use_csv_value,generate_from_name,keep_existing,magento_default.
use_csv_value enregistre url_key depuis le CSV.
generate_from_name génère url_key à partir de la valeur name.
keep_existing conserve le url_key existant en mode update.
magento_default laisse la gestion des URL au mécanisme standard de Magento.
Create permanent redirect for URL key changes
L’option définit si Magento doit créer une permanent redirect lors du changement de url_key.
Il est utile de l’activer lorsque le changement d’URL de catégorie doit conserver les redirections SEO depuis les anciennes adresses.
Images Base Directory
Répertoire de base pour l’import des images de catégories, relatif à pub/media.
Par défaut :
import/categoriesChemin complet dans Magento :
pub/media/import/categoriesSi vous indiquez dans le CSV :
gear/bags.jpgle module recherchera le fichier :
pub/media/import/categories/gear/bags.jpgError Policy
Définit le comportement de l’import en cas d’erreurs.
Variantes disponibles :
skip_invalid_rows,stop_on_first_error,all_or_nothing.
skip_invalid_rows ignore les lignes erronées et poursuit l’import.
stop_on_first_error arrête l’import à la première erreur.
all_or_nothing exige que tout le fichier soit correct ; si une erreur survient, l’import ne devrait pas enregistrer les données.
Variante recommandée pour les gros fichiers :
skip_invalid_rowsBatch Size
Nombre de lignes traitées dans un lot.
Par défaut :
100Une valeur plus faible réduit la consommation de mémoire. Une valeur plus élevée peut accélérer l’import sur des environnements plus puissants.
Attributes to Import
Liste des attributs à importer.
L’import met à jour uniquement les attributs sélectionnés. Si une colonne existe dans le CSV mais que l’attribut n’est pas coché dans le formulaire, le module ne devrait pas l’enregistrer.
Dry Run
Mode de validation sans enregistrement des données.
Il est recommandé de lancer dry-run avant l’import réel, en particulier pour les gros fichiers ou les modifications SEO.
Mode import/update
Le mode update sert à mettre à jour les catégories existantes.
Données requises
Le CSV doit contenir :
store_view_code,entity_idoucategory_path,- au moins une colonne d’un attribut sélectionné.
Fonctionnement de l’identification des catégories
Le module essaie de trouver la catégorie par :
entity_id,category_path, sientity_idest vide.
entity_id est le meilleur identifiant lorsque l’import a lieu sur le même environnement Magento.
category_path est plus portable entre environnements, mais il doit être univoque.
Exemple de mise à jour de traductions
store_view_code,entity_id,category_path,name,url_key,meta_title,meta_descriptionpl,13,Default Category/Gear/Bags,Torby,torby,Torby,Torby i akcesoriapl,14,Default Category/Gear/Gloves,Rekawiczki,rekawiczki,Rekawiczki,Rekawiczki sportoweParamètres d’import :
Store View: store view polonaise,Import Mode:update,Attributes to Import:name,url_key,meta_title,meta_description,URL Key Strategy:use_csv_value,Empty Values Policy:skip_empty,- d’abord
Dry Run, puis l’import réel.
Mode import/insert
Le mode insert sert à créer de nouvelles catégories.
Données requises
Le CSV doit contenir :
store_view_code,category_path,parent_entity_idouparent_path,name,- au moins une colonne d’un attribut sélectionné.
entity_id n’est pas requis, car Magento l’attribue automatiquement.
Exemple de création de catégories
store_view_code,parent_entity_id,parent_path,category_path,name,url_key,is_active,include_in_menudefault,12,Default Category/Gear,Default Category/Gear/Helmets,Helmets,helmets,1,1default,12,Default Category/Gear,Default Category/Gear/Gloves,Gloves,gloves,1,1Paramètres d’import :
Store View: default store view,Import Mode:insert,Attributes to Import:name,url_key,is_active,include_in_menu,URL Key Strategy:use_csv_valueougenerate_from_name,Error Policy:skip_invalid_rows,- d’abord
Dry Run.
Travailler avec select et multiselect
Le module prend en charge select et multiselect par libellés d’options.
Il n’est pas nécessaire d’indiquer les ID techniques des options.
Exemple :
store_view_code,entity_id,category_path,display_mode,available_sort_by,default_sort_bydefault,13,Default Category/Gear/Bags,Products only,Position|Product Name|Price,PositionPour multiselect, plusieurs valeurs sont séparées par le séparateur :
|Si le libellé n’existe pas ou est ambigu, l’import signalera une erreur.
Import des images de catégories
Avant d’importer les images, placez les fichiers dans le répertoire :
pub/media/import/categoriesExemple de CSV :
store_view_code,entity_id,category_path,image,thumbnaildefault,13,Default Category/Gear/Bags,gear/bags.jpg,gear/bags-thumb.jpgParamètres d’import :
Images Base Directory:import/categories,- attributs cochés :
image,thumbnail.
Le module vérifiera que les fichiers existent et possèdent des extensions prises en charge.
Rapport d’import
Après l’import, le module génère un rapport CSV.
Le rapport contient :
- le numéro de ligne,
- l’identifiant de catégorie,
- le statut,
- le message,
- les attributs modifiés.
Les statuts peuvent inclure :
success,error,skipped_no_change,skipped_existing.
Historique des imports
L’historique des imports est disponible dans :
System > Data Transfer > Export/Import Categories > Import HistoryL’historique contient :
- la date de l’import,
- l’utilisateur admin,
- la store view,
- le mode d’import,
- le nom du fichier,
- le nombre de lignes,
- le nombre de succès,
- le nombre d’erreurs,
- l’information sur
dry-run, - un lien de téléchargement du rapport.
Processus de travail recommandé
Import de mise à jour sécurisé
- Exportez les catégories actuelles.
- Conservez le fichier original comme sauvegarde.
- Préparez les modifications dans une copie du CSV.
- Assurez-vous que
store_view_codecorrespond à la store view cible. - Sélectionnez l’import
update. - Sélectionnez uniquement les attributs que vous souhaitez modifier.
- Définissez
Empty Values Policysurskip_empty. - Lancez
Dry Run. - Vérifiez le rapport.
- Lancez l’import réel.
- Videz le cache si les modifications ne sont pas immédiatement visibles.
Import sécurisé de nouvelles catégories
- Préparez un CSV avec
category_path,parent_pathouparent_entity_id. - Assurez-vous que les parents existent ou apparaissent plus haut dans le fichier.
- Sélectionnez l’import
insert. - Cochez au minimum
nameainsi que les autres attributs requis. - Lancez
Dry Run. - Corrigez les erreurs du rapport.
- Lancez l’import réel.
Cache et index
Après l’import de modifications dans les catégories, il est conseillé d’actualiser le cache Magento :
bin/magento cache:cleanSi la boutique nécessite une réindexation manuelle après des modifications importantes du catalogue :
bin/magento indexer:reindexDans les installations Magento typiques, l’enregistrement des catégories via les mécanismes standard de Magento devrait déclencher les processus appropriés liés au modèle de catégorie, mais après de gros imports, il est recommandé de contrôler le cache et les index.
Problèmes les plus fréquents
L’import signale un store_view_code non conforme
Vérifiez que le code de la colonne store_view_code correspond à la store view sélectionnée dans le formulaire d’import.
L’import ne modifie pas les valeurs
Vérifiez :
- si l’attribut a été coché dans
Attributes to Import, - si la cellule CSV n’est pas vide,
- si
Empty Values Policyn’est pas défini surskip_empty, - si l’import n’a pas été lancé en tant que
Dry Run.
Select ou multiselect signale une erreur
Vérifiez que le libellé d’option dans le CSV correspond exactement au libellé d’option dans Magento pour la store view sélectionnée.
L’image ne s’importe pas
Vérifiez :
- si le fichier existe dans
pub/media/import/categories, - si le chemin dans le CSV est correct,
- si l’extension du fichier est prise en charge,
- si l’attribut d’image a été coché pour l’import.
Insert signale un parent manquant
Vérifiez parent_entity_id ou parent_path. Le parent doit exister dans Magento ou se trouver plus haut dans le fichier d’import.
Désinstallation du module
Si le module a été installé via Composer :
composer remove kowal/module-export-import-categoriesbin/magento setup:upgradebin/magento cache:flushAvant la désinstallation, assurez-vous que l’historique des imports peut être supprimé. Le module crée la table :
kowal_export_import_categories_historyCommentaires des clients
Client
tandembaits.com est une boutique en ligne active dans le secteur de la pêche. L’offre de la boutique repose sur un assortiment spécialisé, dans lequel des noms de catégories corrects, des descriptions précises et des URL bien préparées ont une importance directe pour l’ergonomie de la boutique, le SEO et la communication avec les clients dans différents pays.
Défi
Dans le cadre de l’extension de la boutique avec de nouvelles versions linguistiques, le client avait besoin d’un moyen efficace de gérer les catégories dans Magento 2.
Le plus grand problème était la spécificité du secteur de la pêche. Les noms des catégories ne sont pas de simples étiquettes universelles. Ils font souvent référence à des techniques de pêche spécifiques, à des types d’appâts, à des accessoires, à des séries de produits ou à des notions utilisées uniquement par des pêcheurs expérimentés.
Avec 10 versions linguistiques, la gestion manuelle des catégories dans le panneau Magento était trop chronophage et sujette aux erreurs. Le client avait besoin d’un contrôle total sur :
- les noms des catégories,
- les URL des catégories,
- les descriptions des catégories,
- les métadonnées SEO,
- les valeurs spécifiques à chaque store view,
- la cohérence de la structure des catégories entre les versions linguistiques.
L’ampleur du travail couvrait plusieurs dizaines de catégories dans 10 versions linguistiques. Cela signifiait des centaines de valeurs textuelles à préparer, vérifier, corriger et importer.
Problème métier
Le travail standard dans le panneau Magento nécessiterait de modifier chaque catégorie séparément pour chaque store view. Avec plusieurs dizaines de catégories et 10 langues, un tel processus serait lent et difficile à contrôler.
Les principaux risques d’un travail manuel :
- erreurs dans la sélection du store view,
- traductions incohérentes des noms de catégories,
- écrasement accidentel des valeurs par défaut,
- URL erronées ou dupliquées,
- absence de vue d’ensemble pratique de toutes les catégories en un seul endroit,
- difficulté à transmettre les données aux traducteurs ou aux personnes responsables du SEO,
- absence de moyen simple de valider les changements avant l’enregistrement.
Le client avait besoin d’un processus permettant de préparer les données en masse, de les vérifier avant l’import et d’enregistrer en toute sécurité uniquement les attributs sélectionnés pour un store view donné.
Solution
Pour ce scénario, le module Export Import Categories pour Magento 2 a été utilisé.
Le module a permis d’exporter les catégories dans un fichier CSV, de préparer les données linguistiques en dehors du panneau Magento, puis de réimporter les valeurs dans le store view sélectionné.
Le processus a été basé sur le mode update, car la structure des catégories existait déjà dans la boutique. L’objectif n’était pas de créer un nouvel arbre de catégories, mais de compléter et de corriger les données pour les versions linguistiques suivantes.
Périmètre d’utilisation du module
Dans le projet, les fonctionnalités clés du module étaient les suivantes :
- export des catégories depuis le store view de base,
- conservation de
entity_idcomme identifiant stable de la catégorie, - modification de
store_view_codevers le code de la version linguistique cible, - import en mode
update, - sélection des attributs spécifiques à importer,
- gestion des noms de catégories,
- gestion de
url_key, - gestion des descriptions des catégories,
- contrôle des valeurs vides,
- validation du fichier avant l’import proprement dit,
- rapport d’import.
Processus mis en place dans le projet
1. Export des catégories
Tout d’abord, un export des catégories a été effectué depuis le store view de base. Le fichier CSV contenait les colonnes système ainsi que les attributs sélectionnés nécessaires à la préparation des versions linguistiques.
Les colonnes système les plus importantes :
store_view_code,entity_id,category_path,parent_path.
Les attributs de travail les plus importants :
name,url_key,description,meta_title,meta_description.
2. Préparation des données linguistiques
Sur la base du CSV exporté, des données distinctes ont été préparées pour chaque version linguistique.
Grâce à cela, les personnes responsables des contenus pouvaient travailler dans une feuille de calcul en visualisant plusieurs catégories à la fois. C’était particulièrement important dans le secteur de la pêche, où les noms des catégories doivent être conformes à la terminologie locale et à la manière réelle dont les clients recherchent les produits.
3. Conservation des identifiants de catégories
Dans les fichiers d’import, entity_id a été conservé afin que le module puisse faire correspondre de manière univoque les lignes du CSV aux catégories Magento existantes.
Cela a permis d’importer les traductions sans risque de créer des catégories dupliquées.
4. Changement de store view
Pour chaque version linguistique, le store_view_code approprié était défini dans le CSV et le même store view était sélectionné dans le formulaire d’import.
Le module validait la cohérence de ces données. Cela a permis de réduire le risque d’importer accidentellement les traductions dans la mauvaise vue de boutique.
5. Import en mode update
L’import était effectué en mode update, en sélectionnant uniquement les attributs devant être modifiés pour la version linguistique donnée.
Grâce à cela, le module n’intervenait pas sur les autres données des catégories.
6. Validation et dry-run
Avant l’import proprement dit, il était possible d’exécuter une validation sans enregistrer les données.
Le mode dry-run permettait de vérifier :
- si le fichier CSV comportait les bonnes colonnes,
- si
store_view_codecorrespondait au store view sélectionné, - si
entity_idpointait vers des catégories existantes, - si les attributs sélectionnés existaient dans Magento,
- si l’import ne contenait pas d’erreurs bloquant l’enregistrement.
7. Rapport après import
Après l’import, le module générait un rapport permettant de vérifier le statut de chaque ligne.
Le rapport était particulièrement utile lors du travail sur plusieurs langues, car il permettait de détecter rapidement d’éventuelles erreurs dans un fichier précis ou une catégorie précise.
Pourquoi le CSV était le bon format
Le CSV était un format pratique pour ce projet, car :
- il peut être facilement modifié dans une feuille de calcul,
- il peut être transmis aux traducteurs,
- il permet de comparer les valeurs entre les langues,
- il permet de préparer plusieurs versions linguistiques à partir d’un seul export,
- il permet de travailler sur des colonnes spécifiques sans cliquer manuellement dans le panneau Magento,
- il permet de garder le contrôle sur
entity_idetstore_view_code.
Effet
Le module a permis au client de gérer les catégories dans 10 versions linguistiques de manière structurée et répétable.
Au lieu de modifier manuellement chaque catégorie dans le panneau Magento, l’équipe pouvait travailler sur des fichiers CSV, préparer les traductions en masse et importer uniquement les attributs sélectionnés pour un store view donné.
Les principaux avantages :
- préparation plus rapide des nouvelles versions linguistiques,
- meilleur contrôle des noms de catégories,
- contrôle total des URL,
- gestion plus facile des descriptions de catégories,
- possibilité de travailler en dehors du panneau Magento,
- risque d’erreurs réduit avec de nombreux store view,
- validation des données avant l’enregistrement,
- reporting des résultats d’import.
Importance pour le SEO
Dans le projet, la possibilité de contrôler url_key, les noms de catégories et les descriptions revêtait une importance particulière.
Pour une boutique opérant en plusieurs langues, la traduction automatique ou la copie accidentelle des noms de catégories n’est pas suffisante. Chaque marché peut utiliser des termes sectoriels différents, et dans la pêche, les différences terminologiques sont particulièrement importantes.
Le module a permis de préparer les valeurs SEO de manière réfléchie pour chaque version linguistique :
- noms de catégories locaux,
- URL locales,
- descriptions adaptées à la langue,
- méta-titres,
- méta-descriptions.
Résumé
L’extension de tandembaits.com à 10 versions linguistiques nécessitait un outil permettant de gérer efficacement les catégories Magento 2 au niveau du store view.
Export Import Categories a résolu ce problème en déplaçant le travail d’une édition manuelle dans le panneau Magento vers un processus contrôlé basé sur le CSV, la validation et l’import d’attributs sélectionnés.
En conséquence, le client a obtenu la possibilité de gérer facilement les noms de catégories spécialisés, les URL et les descriptions pour plusieurs langues, sans risque d’écraser accidentellement l’ensemble de la structure des catégories.