Free cookie consent management tool by TermsFeedAktualizacja preferencji plików cookie

Module Export Import Categories pour Magento 2

61,50 € 50,00 €
Instalacja COMPOSER
M2-EXPORT-IMPORT-CATEGORIES
Cela nécessite des modifications dans le modèle
Non
Petites modifications
Changements importants
Nécessite des connaissances en programmation
Non
Notions de base
Avancé
Difficulté de configuration
Impact sur les performances
Conformité aux normes Magento

Kowal_ExportImportCategories est un module Magento 2 permettant 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 des catégories sans modifier manuellement chaque catégorie dans le panneau d’administration.

Le module permet d’exporter les catégories vers 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 sur des feuilles CSV,
  • agences déployant des catalogues de catégories entre différents environnements,
  • administrateurs qui doivent mettre à jour en masse les noms, descriptions, métadonnées et URL des catégories,
  • boutiques qui disposent de leurs propres attributs de catégories et souhaitent les gérer de manière groupée,
  • 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 principales

  • Export des catégories vers CSV pour la store view sélectionnée.
  • Import des catégories depuis CSV pour la store view sé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 réels des catégories Magento.
  • 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 select et multiselect via les labels des options.
  • Possibilité de travailler sur les valeurs visibles dans la store view ou uniquement sur les surcharges de store view.
  • Mode dry-run, c’est-à-dire validation complète de l’import sans enregistrement des données.
  • Politique de gestion 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 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 arborescente.

L’export peut être utilisé pour :

  • préparer les traductions des catégories,
  • auditer les données des catégories,
  • corriger en masse les métadonnées SEO,
  • comparer les valeurs entre les store views,
  • préparer un fichier d’import pour le même environnement ou un autre,
  • archiver les données actuelles des catégories avant modification.

Périmètre de l’export

L’export concerne les attributs de catégories. Le module n’exporte pas les produits assignés aux catégories. Il n’effectue pas non plus d’opérations de suppression de catégories.

L’administrateur peut sélectionner :

  • Store View,
  • la catégorie de départ,
  • les attributs à exporter,
  • le séparateur CSV,
  • le mode des valeurs de store view.

Modes de valeurs de store view lors de l’export

Le module prend en charge deux modes d’export des valeurs :

  • resolved_value - la valeur exportée est celle visible dans la store view donnée, c’est-à-dire après prise en compte du fallback Magento vers la valeur par défaut.
  • store_override_only - seule la valeur surchargée directement pour la store view donné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 surcharges propres à 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 sélectionnée dans le formulaire d’import est prioritaire, tandis que la colonne store_view_code du CSV est utilisée pour vérifier 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 des catégories,
  • mettre à jour les descriptions des 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 en priorité par entity_id. Si entity_id n’est pas disponible, le module peut utiliser category_path, à condition que le chemin identifie clairement une seule catégorie.

Le mode update est recommandé pour :

  • les traductions de catégories entre store views,
  • les corrections SEO,
  • la mise à jour des descriptions,
  • la mise à jour des noms,
  • la modification des valeurs d’attributs de catégories personnalisés.

Exemple de scénario de traduction :

  1. Export des catégories depuis la store view de base.
  2. Modification de store_view_code dans le CSV avec le code de la store view cible.
  3. Conservation des mêmes entity_id.
  4. Ajout des traductions dans les colonnes name, description, meta_title, meta_description.
  5. Import en mode update pour 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,
  • déplacer 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 ordonnées de la catégorie de niveau supérieur vers la catégorie 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 reconstruire la structure arborescente.

Exemple de CSV pour une 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 un tableur, transmis à un traducteur ou préparé automatiquement dans un système externe.

Pour les attributs de type select et multiselect, le module travaille avec les labels des options, et non avec les ID techniques des options. Cela signifie que le CSV affiche 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 label d’option n’existe pas ou n’est pas univoque, l’import signale 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 la surcharge 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 réduit le risque d’effacement accidentel des 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ère url_key à partir de l’attribut name.
  • keep_existing - en mode update, conserve le url_key actuel.
  • magento_default - laisse le mécanisme standard de Magento gérer l’URL.

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 les 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

Dans le CSV, le chemin textuel est indiqué par rapport à ce répertoire, par exemple :

gear/bags.jpg

Le module valide l’existence du fichier ainsi que son extension. Les formats d’image sécurisés 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 select et multiselect,
  • 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 volumineux.

Politique d’erreurs

Le module prend en charge trois comportements en cas d’erreurs :

  • skip_invalid_rows - les lignes incorrectes 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 une ligne contient une erreur, les données ne sont pas enregistrées.

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 lignes restantes.

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 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 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 permissions 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 labels d’options,
  • la validation des fichiers image,
  • le reporting des erreurs par ligne.

Le module ne supprime pas de catégories et n’importe pas les produits assignés aux catégories.

Cas d’utilisation courants

Traductions de catégories

Vous exportez les catégories depuis la store view de base, complétez 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 n’importez que 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 ses propres attributs de catégories, 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.

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.1 ou 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-categories

2. 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-categories

4. Activez le module dans Magento

bin/magento module:enable Kowal_ExportImportCategories

5. Lancez la mise à jour Magento

bin/magento setup:upgrade

6. Videz le cache

bin/magento cache:flush

7. Lancez éventuellement la compilation DI

Sur les environnements de production ou en mode production :

bin/magento setup:di:compile

8. Déployez éventuellement les ressources statiques

Si l’environnement l’exige :

bin/magento setup:static-content:deploybin/magento cache:flush

Installation manuelle dans app/code

Vous pouvez également placer manuellement le module dans le répertoire :

app/code/Kowal/ExportImportCategories

Après avoir copié les fichiers, exécutez :

bin/magento module:enable Kowal_ExportImportCategoriesbin/magento setup:upgradebin/magento cache:flush

En mode production, exécutez également :

bin/magento setup:di:compile

Vérification de l’installation

Après l’installation, vérifiez que le module est actif :

bin/magento module:status Kowal_ExportImportCategories

Le module doit apparaître dans la liste des modules actifs.

Dans le panneau d’administration, allez dans :

System > Data Transfer > Export/Import Categories

Trois 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 Roles

Attribuez 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 Categories

Vues :

  • 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_code correspondant à 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 :

error

Empty 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_empty

URL 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/categories

Chemin complet dans Magento :

pub/media/import/categories

Si vous indiquez dans le CSV :

gear/bags.jpg

le module recherchera le fichier :

pub/media/import/categories/gear/bags.jpg

Error 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_rows

Batch Size

Nombre de lignes traitées dans un même lot.

Par défaut :

100

Une 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_id ou category_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 :

  1. entity_id,
  2. category_path, si entity_id est 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 sportowe

Paramè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_id ou parent_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,1

Paramè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_value ou generate_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,Position

Pour 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/categories

Exemple de CSV :

store_view_code,entity_id,category_path,image,thumbnaildefault,13,Default Category/Gear/Bags,gear/bags.jpg,gear/bags-thumb.jpg

Paramè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 History

L’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é

  1. Exportez les catégories actuelles.
  2. Conservez le fichier d’origine comme backup.
  3. Préparez les modifications dans une copie du CSV.
  4. Assurez-vous que store_view_code correspond à la store view cible.
  5. Sélectionnez l’import update.
  6. Sélectionnez uniquement les attributs que vous souhaitez modifier.
  7. Définissez Empty Values Policy sur skip_empty.
  8. Lancez Dry Run.
  9. Vérifiez le rapport.
  10. Lancez l’import réel.
  11. Videz le cache si les modifications ne sont pas visibles immédiatement.

Import sécurisé de nouvelles catégories

  1. Préparez un CSV avec category_path, parent_path ou parent_entity_id.
  2. Assurez-vous que les parents existent ou apparaissent plus tôt dans le fichier.
  3. Sélectionnez l’import insert.
  4. Cochez au minimum name ainsi que les autres attributs requis.
  5. Lancez Dry Run.
  6. Corrigez les erreurs du rapport.
  7. 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:clean

Si la boutique nécessite une réindexation manuelle après des modifications importantes du catalogue :

bin/magento indexer:reindex

Dans 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 Policy n’est pas défini sur skip_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:flush

Avant la désinstallation, assurez-vous que l’historique des imports peut être supprimé. Le module crée la table :

kowal_export_import_categories_history
Implemented in real Magento 2 stores
Étude de cas : extension de tandembaits.com avec de nouvelles versions linguistiques

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 les noms de catégories corrects, les descriptions précises et les URL bien préparées ont une importance directe pour l’utilisabilité 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.

La principale difficulté tenait à la spécificité du secteur de la pêche. Les noms de catégories ne sont pas de simples étiquettes universelles. Ils renvoient souvent à des techniques de pêche précises, à 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 devait conserver un contrôle complet sur :

  • les noms de catégories,
  • les URL des catégories,
  • les descriptions de 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.

Le volume de travail portait sur plusieurs dizaines de catégories dans 10 versions linguistiques. Cela représentait des centaines de valeurs textuelles à préparer, vérifier, corriger et importer.

Problème métier

Le travail standard dans le panneau Magento aurait nécessité de modifier chaque catégorie séparément pour chaque store view. Avec plusieurs dizaines de catégories et 10 langues, un tel processus aurait été lent et difficile à contrôler.

Les principaux risques liés au travail manuel étaient :

  • des erreurs dans le choix du store view,
  • des traductions incohérentes des noms de catégories,
  • l’écrasement accidentel des valeurs par défaut,
  • des URL incorrectes ou dupliquées,
  • l’absence d’une vue d’ensemble pratique de toutes les catégories au même endroit,
  • la difficulté à transmettre les données aux traducteurs ou aux personnes responsables du SEO,
  • l’absence d’un moyen simple de valider les modifications 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 vers 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 s’est appuyé sur le mode update, car la structure des catégories existait déjà dans la boutique. L’objectif n’était pas de créer une nouvelle arborescence 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 fonctions suivantes du module étaient essentielles :

  • export des catégories depuis le store view de base,
  • conservation de entity_id comme identifiant stable de la catégorie,
  • modification de store_view_code avec 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 de catégories,
  • contrôle des valeurs vides,
  • validation du fichier avant l’import effectif,
  • rapport d’import.

Processus mis en œuvre dans le projet

1. Export des catégories

Un export des catégories depuis le store view de base a d’abord été réalisé. Le fichier CSV contenait les colonnes système ainsi que les attributs sélectionnés nécessaires à la préparation des versions linguistiques.

Les principales colonnes système :

  • store_view_code,
  • entity_id,
  • category_path,
  • parent_path.

Les principaux attributs de travail :

  • name,
  • url_key,
  • description,
  • meta_title,
  • meta_description.

2. Préparation des données linguistiques

À partir du CSV exporté, des données distinctes ont été préparées pour les différentes versions linguistiques.

Les personnes responsables des contenus pouvaient ainsi 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 de catégories doivent correspondre à 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 CSV aux catégories Magento existantes.

Cela a permis d’importer les traductions sans risque de créer des catégories en double.

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 limité le risque d’importer accidentellement des traductions dans une mauvaise vue de boutique.

5. Import en mode update

L’import était effectué en mode update, en sélectionnant uniquement les attributs qui devaient être modifiés pour la version linguistique concernée.

Le module n’intervenait ainsi pas sur les autres données des catégories.

6. Validation et dry-run

Avant l’import effectif, il était possible de lancer 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_code correspondait au store view sélectionné,
  • si entity_id indiquait 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 format approprié

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 précises sans cliquer manuellement dans le panneau Magento,
  • il permet de conserver le contrôle sur entity_id et store_view_code.

Résultat

Le module a permis au client de gérer les catégories dans 10 versions linguistiques de manière structurée et reproductible.

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 précis.

Les principaux avantages :

  • préparation plus rapide des nouvelles versions linguistiques,
  • meilleur contrôle des noms de catégories,
  • contrôle complet des URL,
  • gestion plus simple des descriptions de catégories,
  • possibilité de travailler en dehors du panneau Magento,
  • risque d’erreurs réduit avec plusieurs store views,
  • 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 était particulièrement importante.

Pour une boutique active dans 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 avec 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 de la modification manuelle dans le panneau Magento vers un processus contrôlé basé sur le CSV, la validation et l’import des attributs sélectionnés.

Le client a ainsi 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 toute la structure des catégories.

Write Your Own Review
You're reviewing:Module Export Import Categories pour Magento 2
Produits