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 un dépôt Composer.
1. Ajoutez le dépôt Composer
composer config repositories.export.import.categories vcs https://github.com/kowalco/export-import-categories2. Ajoutez un token d’accès au dépôt GitHub privé
Si le dépôt est privé, configurez le token GitHub :
composer config --global --auth github-oauth.github.com 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 manuellement le module 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 apparaître dans la liste des modules actifs.
Dans le panneau d’administration, allez dans :
System > Data Transfer > Export/Import CategoriesTrois entrées doivent être visibles :
Export Categories,Import Categories,Import History.
Permissions ACL
Le module ajoute des permissions administratives distinctes :
- accès à la section principale
Export/Import Categories, - export des catégories,
- import des catégories,
- historique des imports.
Si l’utilisateur administrateur ne voit pas le menu du module, vérifiez son rôle dans :
System > Permissions > User RolesAttribuez ensuite les permissions appropriées pour les 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 sélectionnez une store view linguistique, l’export peut contenir des valeurs propres à cette store view ou des valeurs héritées du default scope, selon le mode de valeurs.
Start Category ID
Champ optionnel permettant de limiter l’export à une catégorie sélectionnée et à sa sous-arborescence.
Si le champ est laissé vide, le module exporte les catégories à partir de la root category de la store view sélectionnée.
Store View Value Mode
Détermine comment 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 surchargé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 :
,Un autre séparateur peut être utilisé si le fichier doit être modifié dans un outil nécessitant 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, c’est pourquoi des attributs de catégories personnalisés ajoutés au projet peuvent également apparaître dans la liste.
Les colonnes système sont ajoutées automatiquement et n’ont pas besoin d’être sélectionnées.
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 arborescente.
Configuration de l’import
La vue d’import permet de charger un CSV et d’enregistrer les données des 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 est utilisée pour vérifier que le fichier correspond à la store view sélectionnée.
Exemple :
- dans le formulaire, vous sélectionnez une store view avec
store_id = 1, - le CSV doit contenir un
store_view_codecorrespondant à cette store view, - le module enregistre les données en utilisant
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 les 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étermine 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étermine comment le module interprète les cellules CSV vides.
Variantes disponibles :
skip_empty,clear_value,use_default.
skip_empty signifie qu’une cellule vide ne modifie pas la valeur actuelle.
clear_value signifie qu’une cellule vide efface la valeur de l’attribut.
use_default signifie qu’une cellule vide supprime la surcharge de store view et permet à Magento d’utiliser la valeur par défaut.
Variante recommandée pour un import de mise à jour :
skip_emptyURL Key Strategy
Détermine la manière de gérer 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 de l’URL au mécanisme standard de Magento.
Create permanent redirect for URL key changes
Cette option détermine 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 par rapport à 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étermine 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 incorrectes et poursuit l’import.
stop_on_first_error arrête l’import à la première erreur.
all_or_nothing exige que l’ensemble du fichier soit correct ; si une erreur survient, l’import ne doit pas enregistrer de données.
Variante recommandée pour les fichiers volumineux :
skip_invalid_rowsBatch Size
Nombre de lignes traitées dans un même lot.
Par défaut :
100Une valeur plus faible limite 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 doit pas l’enregistrer.
Dry Run
Mode de validation sans enregistrement des données.
Il est recommandé d’exécuter dry-run avant l’import réel, en particulier pour les fichiers volumineux ou les changements 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 tente de trouver la catégorie par :
entity_id,category_path, sientity_idest vide.
entity_id est le meilleur identifiant lorsque l’import est effectué 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.
Travail avec select et multiselect
Le module prend en charge select et multiselect via les labels des 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 label n’existe pas ou est ambigu, l’import signale 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 administrateur,
- 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 d’origine comme backup.
- 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 visibles immédiatement.
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 tôt 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 recommandé de rafraîchir 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 lancer les processus appropriés liés au modèle de catégorie, mais après de grands imports, il est recommandé de contrôler le cache et les index.
Problèmes fréquents
L’import signale un store_view_code incompatible
Vérifiez que le code dans 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 label de l’option dans le CSV correspond exactement au label de l’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é sélectionné 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 tôt 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_history


