Moduł Export Import Categories dla Magento 2

307,50 zł 250,00 zł
Instalacja COMPOSER
M2-EXPORT-IMPORT-CATEGORIES
PayPal PayPal
Przelew Przelew

Moduły Magento na jasnych zasadach

Kupujesz moduł raz, bez ograniczeń domenowych

Etykietka

Darmowa instalacja i aktualizacje przez Composer

Etykietka

Program Afiliacyjny

Etykietka

Wsparcie techniczne dla Magento

Etykietka

Jasne zasady licencjonowania modułów Magento

Etykietka

Bezpieczeństwo kodu Modułów Magento

Etykietka

Kowal_ExportImportCategories to moduł Magento 2 umożliwiający eksport i import atrybutów kategorii w formacie CSV z uwzględnieniem wybranego store view. Rozszerzenie zostało przygotowane z myślą o sklepach, które pracują na wielu wersjach językowych, wielu widokach sklepu albo potrzebują masowo aktualizować dane kategorii bez ręcznej edycji każdej kategorii w panelu administracyjnym.

Moduł pozwala wyeksportować kategorie do pliku CSV, zmodyfikować wybrane atrybuty poza Magento, a następnie zaimportować dane z powrotem w trybie aktualizacji istniejących kategorii albo tworzenia nowych kategorii. Import działa na wskazanym store view, dzięki czemu można wygodnie przygotowywać tłumaczenia nazw, opisów, meta tagów, URL-i oraz innych atrybutów kategorii.

Dla kogo jest ten moduł

Moduł jest przeznaczony dla:

  • sklepów Magento 2 z wieloma wersjami językowymi,
  • zespołów contentowych pracujących na arkuszach CSV,
  • agencji wdrażających katalogi kategorii między środowiskami,
  • administratorów, którzy muszą masowo aktualizować nazwy, opisy, meta dane i URL-e kategorii,
  • sklepów, które mają własne atrybuty kategorii i chcą nimi zarządzać zbiorczo,
  • projektów, w których dane kategorii są przygotowywane poza Magento, np. przez tłumaczy, dział SEO albo system PIM.

Najważniejsze możliwości

  • Eksport kategorii do CSV dla wybranego store view.
  • Import kategorii z CSV dla wybranego store view.
  • Tryb aktualizacji istniejących kategorii: update.
  • Tryb tworzenia nowych kategorii: insert.
  • Wybór atrybutów eksportowanych do CSV.
  • Wybór atrybutów importowanych z CSV.
  • Automatyczne kolumny systemowe potrzebne do identyfikacji kategorii.
  • Walidacja nagłówków CSV przed importem.
  • Walidacja nazw kolumn względem rzeczywistych atrybutów kategorii Magento.
  • Obsługa własnych atrybutów kategorii dodanych w Magento.
  • Obsługa wartości tekstowych dla wszystkich atrybutów.
  • Obsługa atrybutów select i multiselect po labelach opcji.
  • Możliwość pracy na wartościach widocznych w store view albo tylko na nadpisaniach store view.
  • Tryb dry-run, czyli pełna walidacja importu bez zapisu danych.
  • Polityka pustych wartości.
  • Strategie obsługi url_key.
  • Opcjonalne tworzenie permanent redirect przy zmianie URL kategorii.
  • Obsługa ścieżek do obrazków kategorii.
  • Batch processing dla większych plików.
  • Polityki obsługi błędów.
  • Raport importu w CSV.
  • Historia importów w panelu administracyjnym.

Eksport kategorii

Eksport pozwala wygenerować plik CSV z kategoriami dla wybranego store view. Administrator wybiera widok sklepu oraz atrybuty kategorii, które mają znaleźć się w pliku. Moduł automatycznie dodaje kolumny systemowe potrzebne do identyfikacji kategorii i zachowania struktury drzewa.

Eksport można wykorzystać do:

  • przygotowania tłumaczeń kategorii,
  • audytu danych kategorii,
  • masowej korekty meta danych SEO,
  • porównania wartości między store view,
  • przygotowania pliku do importu na tym samym lub innym środowisku,
  • archiwizacji aktualnych danych kategorii przed zmianami.

Zakres eksportu

Eksport obejmuje atrybuty kategorii. Moduł nie eksportuje produktów przypisanych do kategorii. Nie wykonuje również operacji usuwania kategorii.

Administrator może wybrać:

  • Store View,
  • kategorię startową,
  • atrybuty do eksportu,
  • separator CSV,
  • tryb wartości store view.

Tryby wartości store view przy eksporcie

Moduł obsługuje dwa tryby eksportu wartości:

  • resolved_value - eksportowana jest wartość widoczna w danym store view, czyli po uwzględnieniu fallbacku Magento do wartości domyślnej.
  • store_override_only - eksportowana jest tylko wartość nadpisana bezpośrednio dla danego store view; jeśli wartość jest dziedziczona, komórka CSV pozostaje pusta.

Tryb resolved_value jest wygodny do pracy redakcyjnej, ponieważ pokazuje realną wartość widoczną w sklepie. Tryb store_override_only jest przydatny, gdy trzeba kontrolować wyłącznie tłumaczenia albo nadpisania specyficzne dla danego widoku sklepu.

Import kategorii

Import pozwala wczytać plik CSV i zapisać wybrane atrybuty kategorii dla wskazanego store view. Store view wybierany w formularzu importu jest nadrzędny, a kolumna store_view_code z CSV jest używana do walidacji, czy plik jest zgodny z wybranym widokiem sklepu.

Import można wykorzystać do:

  • tłumaczenia kategorii,
  • aktualizacji nazw kategorii,
  • aktualizacji opisów kategorii,
  • aktualizacji meta tagów,
  • aktualizacji url_key,
  • tworzenia nowych kategorii,
  • importu własnych atrybutów kategorii,
  • aktualizacji atrybutów menu i widoczności,
  • importu ścieżek obrazków kategorii.

Tryb update

Tryb update aktualizuje istniejące kategorie. Moduł nie tworzy nowych kategorii w tym trybie.

Kategoria jest wyszukiwana przede wszystkim po entity_id. Jeżeli entity_id nie jest dostępne, moduł może użyć category_path, o ile ścieżka jednoznacznie wskazuje jedną kategorię.

Tryb update jest rekomendowany dla:

  • tłumaczeń kategorii między store view,
  • korekt SEO,
  • aktualizacji opisów,
  • aktualizacji nazw,
  • zmiany wartości własnych atrybutów kategorii.

Przykładowy scenariusz tłumaczenia:

  1. Eksport kategorii z bazowego store view.
  2. Zmiana store_view_code w CSV na kod docelowego store view.
  3. Zachowanie tych samych entity_id.
  4. Uzupełnienie tłumaczeń w kolumnach namedescriptionmeta_titlemeta_description.
  5. Import w trybie update dla docelowego store view.

W takim wariancie moduł zapisuje wybrane atrybuty w kontekście numerycznego store_id wybranego w formularzu importu.

Tryb insert

Tryb insert tworzy nowe kategorie. W tym trybie entity_id nie jest wymagane, ponieważ Magento nadaje je automatycznie.

Nowa kategoria musi mieć wskazanego rodzica przez:

  • parent_entity_id,
  • albo parent_path.

Tryb insert jest rekomendowany dla:

  • tworzenia nowych struktur kategorii,
  • przenoszenia drzewa kategorii między środowiskami,
  • przygotowywania kategorii w arkuszu CSV,
  • tworzenia kategorii na podstawie zewnętrznych danych.

Jeżeli import zawiera zarówno rodzica, jak i dziecko, dane powinny być ułożone w kolejności od kategorii wyższego poziomu do kategorii niższego poziomu.

Format CSV

Pierwszy wiersz pliku CSV musi zawierać nagłówki kolumn. Kolumny dzielą się na:

  • kolumny systemowe,
  • kolumny atrybutów kategorii.

Kolumny atrybutów muszą odpowiadać kodom atrybutów Magento, np.:

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

Kolumny systemowe

Moduł korzysta z następujących kolumn systemowych:

  • store_view_code,
  • entity_id,
  • parent_entity_id,
  • category_path,
  • parent_path,
  • level,
  • position,
  • attribute_set_id.

Kolumny systemowe nie są traktowane jako atrybuty EAV. Służą do identyfikacji kategorii, walidacji store view oraz odtworzenia struktury drzewa.

Przykład CSV dla aktualizacji

store_view_code,entity_id,category_path,name,url_key,is_active,include_in_menu,meta_title
pl,13,Default Category/Gear/Bags,Torby,torby,1,1,Torby
pl,14,Default Category/Gear/Fitness Equipment,Sprzet fitness,sprzet-fitness,1,1,Sprzet fitness

Przykład CSV dla tworzenia kategorii

store_view_code,parent_entity_id,parent_path,category_path,name,url_key,is_active,include_in_menu
default,12,Default Category/Gear,Default Category/Gear/Helmets,Helmets,helmets,1,1
default,12,Default Category/Gear,Default Category/Gear/Gloves,Gloves,gloves,1,1

Praca na atrybutach tekstowych

Moduł zapisuje wartości w CSV jako tekst. Dzięki temu plik można edytować w arkuszu kalkulacyjnym, przekazać tłumaczowi albo przygotować automatycznie w zewnętrznym systemie.

Dla atrybutów typu select i multiselect moduł pracuje po labelach opcji, a nie po technicznych ID opcji. To oznacza, że w CSV widoczne są czytelne wartości, takie jak Products onlyPosition albo Price.

Dla multiselect wiele wartości jest rozdzielanych separatorem |.

Przykład:

store_view_code,entity_id,category_path,display_mode,available_sort_by,default_sort_by
default,13,Default Category/Gear/Bags,Products only,Position|Product Name|Price,Position

Jeżeli label opcji nie istnieje albo nie jest jednoznaczny, import zgłosi błąd walidacji.

Polityka pustych wartości

Podczas importu administrator wybiera sposób interpretacji pustych komórek CSV:

  • skip_empty - pusta komórka nie zmienia istniejącej wartości.
  • clear_value - pusta komórka czyści wartość atrybutu dla wybranego store view.
  • use_default - pusta komórka usuwa nadpisanie store view i pozwala Magento użyć wartości domyślnej.

Domyślnie rekomendowanym wariantem dla aktualizacji jest skip_empty, ponieważ ogranicza ryzyko przypadkowego wyczyszczenia danych.

Obsługa URL kategorii

Moduł pozwala skonfigurować strategię obsługi url_key:

  • use_csv_value - używa wartości z CSV.
  • generate_from_name - generuje url_key na podstawie atrybutu name.
  • keep_existing - w trybie update zachowuje obecny url_key.
  • magento_default - pozostawia obsługę URL standardowemu mechanizmowi Magento.

Administrator może również zdecydować, czy przy zmianie url_key mają zostać utworzone permanent redirects.

Ta konfiguracja jest szczególnie istotna przy tłumaczeniach, ponieważ różne sklepy mogą stosować różne strategie:

  • tłumaczone URL-e dla każdego języka,
  • wspólne URL-e między wersjami językowymi,
  • URL-e generowane automatycznie z nazw kategorii,
  • ręcznie zarządzane URL-e SEO.

Obrazki kategorii

Moduł może importować atrybuty obrazków kategorii, jeżeli odpowiednie kolumny zostaną wybrane do importu.

Domyślny katalog źródłowy:

pub/media/import/categories

W CSV podawana jest ścieżka tekstowa względem tego katalogu, np.:

gear/bags.jpg

Moduł waliduje istnienie pliku oraz rozszerzenie. Obsługiwane są bezpieczne formaty graficzne, takie jak:

  • jpg,
  • jpeg,
  • png,
  • webp,
  • gif.

Tryb dry-run

Tryb dry-run pozwala uruchomić walidację importu bez zapisywania danych w Magento.

W tym trybie moduł:

  • odczytuje CSV,
  • waliduje nagłówki,
  • waliduje store view,
  • sprawdza istnienie kategorii albo rodziców,
  • sprawdza atrybuty,
  • mapuje wartości select i multiselect,
  • sprawdza obrazki,
  • generuje raport błędów i ostrzeżeń,
  • nie zapisuje kategorii.

To rekomendowany pierwszy krok przed każdym większym importem.

Batch processing

Import działa partiami. Rozmiar batcha można skonfigurować w formularzu importu.

Domyślna wartość:

100 wierszy

Batch processing ogranicza ryzyko timeoutów i nadmiernego zużycia pamięci przy większych plikach.

Polityka błędów

Moduł obsługuje trzy warianty zachowania przy błędach:

  • skip_invalid_rows - błędne wiersze są pomijane, poprawne są importowane dalej.
  • stop_on_first_error - import zatrzymuje się po pierwszym błędzie.
  • all_or_nothing - jeżeli którykolwiek wiersz ma błąd, dane nie są zapisywane.

Rekomendowanym wariantem dla dużych importów jest skip_invalid_rows, ponieważ pozwala przetworzyć poprawne dane i otrzymać raport problemów dla pozostałych wierszy.

Raporty i historia importów

Po imporcie moduł generuje raport CSV zawierający:

  • numer wiersza,
  • identyfikator kategorii,
  • status,
  • komunikat,
  • listę zmienionych atrybutów.

Historia importów jest dostępna w panelu administracyjnym. Administrator może sprawdzić:

  • datę importu,
  • użytkownika admina,
  • store view,
  • tryb importu,
  • nazwę pliku,
  • liczbę wierszy,
  • liczbę sukcesów,
  • liczbę błędów,
  • informację, czy import był wykonany jako dry-run,
  • pobrać raport importu.

Bezpieczeństwo

Moduł korzysta z ACL Magento i dodaje osobne uprawnienia dla eksportu, importu oraz historii importów.

Import jest zabezpieczony przez:

  • walidację nagłówków,
  • walidację kodów atrybutów,
  • walidację store view,
  • walidację wymaganych kolumn,
  • walidację typów wartości,
  • walidację labeli opcji,
  • walidację plików obrazków,
  • raportowanie błędów per wiersz.

Moduł nie usuwa kategorii i nie importuje produktów przypisanych do kategorii.

Typowe zastosowania

Tłumaczenia kategorii

Eksportujesz kategorie z bazowego store view, uzupełniasz tłumaczenia w CSV, zmieniasz store_view_code na kod docelowego store view i importujesz dane w trybie update.

Masowa aktualizacja SEO

Eksportujesz atrybuty meta_titlemeta_descriptionurl_key, edytujesz je w CSV i importujesz tylko wybrane kolumny.

Tworzenie nowej struktury kategorii

Przygotowujesz plik CSV z category_pathparent_pathname i innymi wymaganymi atrybutami, a następnie importujesz go w trybie insert.

Aktualizacja własnych atrybutów kategorii

Jeżeli sklep ma własne atrybuty kategorii, moduł pobiera je dynamicznie z EAV i pozwala wybrać je przy eksporcie oraz imporcie.

Lokalizacja w panelu Magento

Po instalacji moduł jest dostępny w:

System > Data Transfer > Export/Import Categories

Dostępne widoki:

  • Export Categories,
  • Import Categories,
  • Import History.

Instrukcja instalacji i konfiguracji modułu Kowal_ExportImportCategories

Ten dokument opisuje instalację, konfigurację oraz korzystanie z modułu Kowal_ExportImportCategories dla Magento 2. Instrukcja uwzględnia informacje z pliku README.md oraz funkcje zaimplementowane w module.

Wymagania

  • Magento 2.
  • PHP zgodny z instalacją Magento, rekomendowane PHP 8.1 lub nowsze.
  • Dostęp do CLI Magento.
  • Dostęp do Composer.
  • Uprawnienia administratora Magento.
  • Dostęp do repozytorium modułu.
  • Dla importu obrazków: możliwość umieszczania plików w katalogu pub/media/import/categories.

Instalacja przez Composer

Moduł jest dostępny przez repozytorium Composer.

1. Dodaj repozytorium Composer

composer config repositories.export.import.categories vcs https://github.com/kowalco/export-import-categories

2. Dodaj token dostępu do prywatnego repozytorium GitHub

Jeżeli repozytorium jest prywatne, skonfiguruj token GitHub:

composer config --global --auth github-oauth.github.com <YOUR_TOKEN>

Zastąp <YOUR_TOKEN> własnym tokenem dostępu.

3. Zainstaluj moduł

composer require kowal/module-export-import-categories

4. Włącz moduł w Magento

bin/magento module:enable Kowal_ExportImportCategories

5. Uruchom aktualizację Magento

bin/magento setup:upgrade

6. Wyczyść cache

bin/magento cache:flush

7. Opcjonalnie uruchom kompilację DI

Na środowiskach produkcyjnych albo w trybie production:

bin/magento setup:di:compile

8. Opcjonalnie wdróż statyczne zasoby

Jeżeli środowisko tego wymaga:

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

Instalacja ręczna w app/code

Alternatywnie moduł można umieścić ręcznie w katalogu:

app/code/Kowal/ExportImportCategories

Po skopiowaniu plików uruchom:

bin/magento module:enable Kowal_ExportImportCategories
bin/magento setup:upgrade
bin/magento cache:flush

W trybie production uruchom również:

bin/magento setup:di:compile

Sprawdzenie instalacji

Po instalacji sprawdź, czy moduł jest aktywny:

bin/magento module:status Kowal_ExportImportCategories

Moduł powinien znajdować się na liście aktywnych modułów.

W panelu administracyjnym przejdź do:

System > Data Transfer > Export/Import Categories

Powinny być widoczne trzy pozycje:

  • Export Categories,
  • Import Categories,
  • Import History.

Uprawnienia ACL

Moduł dodaje osobne uprawnienia administracyjne:

  • dostęp do głównej sekcji Export/Import Categories,
  • eksport kategorii,
  • import kategorii,
  • historia importów.

Jeżeli użytkownik admina nie widzi menu modułu, sprawdź rolę użytkownika w:

System > Permissions > User Roles

Następnie nadaj odpowiednie uprawnienia dla zasobów modułu.

Lokalizacja modułu w panelu

Moduł jest dostępny pod:

System > Data Transfer > Export/Import Categories

Widoki:

  • Export Categories - eksport kategorii do CSV.
  • Import Categories - import kategorii z CSV.
  • Import History - historia importów i raporty.

Konfiguracja eksportu

Widok eksportu pozwala wygenerować plik CSV z kategoriami.

Pola eksportu

Store View

Wybiera store view, z którego zostaną odczytane wartości atrybutów kategorii.

Jeżeli wybierzesz store view językowy, eksport może zawierać wartości specyficzne dla tego store view albo wartości odziedziczone z domyślnego scope, zależnie od trybu wartości.

Start Category ID

Opcjonalne pole pozwalające ograniczyć eksport do wybranej kategorii i jej poddrzewa.

Jeżeli pole zostanie puste, moduł eksportuje kategorie od root category wybranego store view.

Store View Value Mode

Określa, jak eksportować wartości zależne od store view.

Dostępne warianty:

  • resolved_value,
  • store_override_only.

resolved_value eksportuje wartość widoczną w wybranym store view po uwzględnieniu fallbacku Magento.

store_override_only eksportuje tylko wartość nadpisaną dla wybranego store view. Jeżeli wartość jest dziedziczona z default scope, komórka CSV będzie pusta.

CSV Delimiter

Separator CSV. Domyślnie:

,

Można użyć innego separatora, jeżeli plik będzie edytowany w narzędziu wymagającym np. średnika.

Attributes

Lista atrybutów kategorii dostępnych w Magento.

Moduł pobiera atrybuty dynamicznie z EAV, dlatego na liście mogą pojawić się również własne atrybuty kategorii dodane w projekcie.

Kolumny systemowe są dodawane automatycznie i nie trzeba ich wybierać.

Kolumny systemowe w eksporcie

Eksport zawsze powinien zawierać kolumny systemowe:

  • store_view_code,
  • entity_id,
  • parent_entity_id,
  • category_path,
  • parent_path,
  • level,
  • position,
  • attribute_set_id.

Kolumny te służą do identyfikacji kategorii, walidacji store view oraz obsługi struktury drzewa.

Konfiguracja importu

Widok importu pozwala wczytać CSV i zapisać dane kategorii.

Pola importu

Store View

Wybiera store view, do którego zostaną zapisane wartości.

To pole decyduje o numerycznym store_id używanym przy zapisie w tabelach Magento.

Kolumna store_view_code z CSV nie jest bezpośrednio zamieniana na store_id. Jest używana do walidacji, czy plik pasuje do wybranego store view.

Przykład:

  • w formularzu wybierasz store view o store_id = 1,
  • w CSV musi być store_view_code odpowiadający temu store view,
  • moduł zapisuje dane z użyciem store_id = 1.

Import Mode

Dostępne tryby:

  • update,
  • insert.

update aktualizuje istniejące kategorie.

insert tworzy nowe kategorie.

CSV File

Plik CSV z nagłówkami w pierwszym wierszu.

Plik powinien być zakodowany w UTF-8.

CSV Delimiter

Separator CSV. Musi odpowiadać separatorowi użytemu w pliku.

Unknown Columns Policy

Określa zachowanie dla kolumn, które nie są ani kolumnami systemowymi, ani znanymi atrybutami kategorii.

Dostępne warianty:

  • error - import zgłasza błąd dla nieznanych kolumn.
  • ignore - nieznane kolumny są ignorowane.

Rekomendowany wariant:

error

Empty Values Policy

Określa, jak moduł interpretuje puste komórki CSV.

Dostępne warianty:

  • skip_empty,
  • clear_value,
  • use_default.

skip_empty oznacza, że pusta komórka nie zmieni obecnej wartości.

clear_value oznacza, że pusta komórka wyczyści wartość atrybutu.

use_default oznacza, że pusta komórka usunie nadpisanie store view i pozwoli Magento użyć wartości domyślnej.

Rekomendowany wariant dla importu aktualizacyjnego:

skip_empty

URL Key Strategy

Określa sposób obsługi atrybutu url_key.

Dostępne warianty:

  • use_csv_value,
  • generate_from_name,
  • keep_existing,
  • magento_default.

use_csv_value zapisuje url_key z CSV.

generate_from_name generuje url_key na podstawie wartości name.

keep_existing zachowuje istniejący url_key w trybie update.

magento_default zostawia obsługę URL standardowemu mechanizmowi Magento.

Create permanent redirect for URL key changes

Opcja określa, czy Magento ma utworzyć permanent redirect przy zmianie url_key.

Warto ją włączyć, gdy zmiana URL kategorii ma zachować przekierowania SEO ze starych adresów.

Images Base Directory

Katalog bazowy dla importu obrazków kategorii względem pub/media.

Domyślnie:

import/categories

Pełna ścieżka w Magento:

pub/media/import/categories

Jeżeli w CSV podasz:

gear/bags.jpg

moduł będzie szukał pliku:

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

Error Policy

Określa zachowanie importu przy błędach.

Dostępne warianty:

  • skip_invalid_rows,
  • stop_on_first_error,
  • all_or_nothing.

skip_invalid_rows pomija błędne wiersze i kontynuuje import.

stop_on_first_error zatrzymuje import po pierwszym błędzie.

all_or_nothing wymaga poprawności całego pliku; jeżeli wystąpi błąd, import nie powinien zapisać danych.

Rekomendowany wariant dla dużych plików:

skip_invalid_rows

Batch Size

Liczba wierszy przetwarzanych w jednej partii.

Domyślnie:

100

Niższa wartość ogranicza zużycie pamięci. Wyższa wartość może przyspieszyć import na mocniejszych środowiskach.

Attributes to Import

Lista atrybutów, które mają zostać zaimportowane.

Import aktualizuje tylko wybrane atrybuty. Jeżeli kolumna istnieje w CSV, ale atrybut nie zostanie zaznaczony w formularzu, moduł nie powinien go zapisać.

Dry Run

Tryb walidacji bez zapisu danych.

Rekomendowane jest uruchomienie dry-run przed właściwym importem, szczególnie dla dużych plików albo zmian SEO.

Tryb import/update

Tryb update służy do aktualizacji istniejących kategorii.

Wymagane dane

CSV musi zawierać:

  • store_view_code,
  • entity_id albo category_path,
  • co najmniej jedną kolumnę wybranego atrybutu.

Jak działa identyfikacja kategorii

Moduł próbuje znaleźć kategorię po:

  1. entity_id,
  2. category_path, jeżeli entity_id jest puste.

entity_id jest najlepszym identyfikatorem, gdy import odbywa się na tym samym środowisku Magento.

category_path jest bardziej przenośny między środowiskami, ale musi być jednoznaczny.

Przykład aktualizacji tłumaczeń

store_view_code,entity_id,category_path,name,url_key,meta_title,meta_description
pl,13,Default Category/Gear/Bags,Torby,torby,Torby,Torby i akcesoria
pl,14,Default Category/Gear/Gloves,Rekawiczki,rekawiczki,Rekawiczki,Rekawiczki sportowe

Ustawienia importu:

  • Store View: polski store view,
  • Import Modeupdate,
  • Attributes to Importnameurl_keymeta_titlemeta_description,
  • URL Key Strategyuse_csv_value,
  • Empty Values Policyskip_empty,
  • najpierw Dry Run, potem właściwy import.

Tryb import/insert

Tryb insert służy do tworzenia nowych kategorii.

Wymagane dane

CSV musi zawierać:

  • store_view_code,
  • category_path,
  • parent_entity_id albo parent_path,
  • name,
  • co najmniej jedną kolumnę wybranego atrybutu.

entity_id nie jest wymagane, ponieważ Magento nadaje je automatycznie.

Przykład tworzenia kategorii

store_view_code,parent_entity_id,parent_path,category_path,name,url_key,is_active,include_in_menu
default,12,Default Category/Gear,Default Category/Gear/Helmets,Helmets,helmets,1,1
default,12,Default Category/Gear,Default Category/Gear/Gloves,Gloves,gloves,1,1

Ustawienia importu:

  • Store View: default store view,
  • Import Modeinsert,
  • Attributes to Importnameurl_keyis_activeinclude_in_menu,
  • URL Key Strategyuse_csv_value albo generate_from_name,
  • Error Policyskip_invalid_rows,
  • najpierw Dry Run.

Praca z select i multiselect

Moduł obsługuje select i multiselect po labelach opcji.

Nie trzeba podawać technicznych ID opcji.

Przykład:

store_view_code,entity_id,category_path,display_mode,available_sort_by,default_sort_by
default,13,Default Category/Gear/Bags,Products only,Position|Product Name|Price,Position

Dla multiselect wiele wartości rozdziela się separatorem:

|

Jeżeli label nie istnieje albo jest niejednoznaczny, import zgłosi błąd.

Import obrazków kategorii

Przed importem obrazków umieść pliki w katalogu:

pub/media/import/categories

Przykład CSV:

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

Ustawienia importu:

  • Images Base Directoryimport/categories,
  • zaznaczone atrybuty: imagethumbnail.

Moduł sprawdzi, czy pliki istnieją i mają obsługiwane rozszerzenia.

Raport importu

Po imporcie moduł generuje raport CSV.

Raport zawiera:

  • numer wiersza,
  • identyfikator kategorii,
  • status,
  • komunikat,
  • zmienione atrybuty.

Statusy mogą obejmować:

  • success,
  • error,
  • skipped_no_change,
  • skipped_existing.

Historia importów

Historia importów jest dostępna w:

System > Data Transfer > Export/Import Categories > Import History

Historia zawiera:

  • datę importu,
  • użytkownika admina,
  • store view,
  • tryb importu,
  • nazwę pliku,
  • liczbę wierszy,
  • liczbę sukcesów,
  • liczbę błędów,
  • informację o dry-run,
  • link do pobrania raportu.

Zalecany proces pracy

Bezpieczny import aktualizacyjny

  1. Wykonaj eksport aktualnych kategorii.
  2. Zachowaj oryginalny plik jako backup.
  3. Przygotuj zmiany w kopii CSV.
  4. Upewnij się, że store_view_code odpowiada docelowemu store view.
  5. Wybierz import update.
  6. Wybierz tylko atrybuty, które chcesz zmienić.
  7. Ustaw Empty Values Policy na skip_empty.
  8. Uruchom Dry Run.
  9. Sprawdź raport.
  10. Uruchom właściwy import.
  11. Wyczyść cache, jeżeli zmiany nie są widoczne od razu.

Bezpieczny import nowych kategorii

  1. Przygotuj CSV z category_pathparent_path albo parent_entity_id.
  2. Upewnij się, że rodzice istnieją albo występują wcześniej w pliku.
  3. Wybierz import insert.
  4. Zaznacz minimum name oraz inne wymagane atrybuty.
  5. Uruchom Dry Run.
  6. Popraw błędy z raportu.
  7. Uruchom właściwy import.

Cache i indeksy

Po imporcie zmian w kategoriach warto odświeżyć cache Magento:

bin/magento cache:clean

Jeżeli sklep wymaga ręcznej reindeksacji po większych zmianach katalogu:

bin/magento indexer:reindex

W typowych instalacjach Magento zapis kategorii przez standardowe mechanizmy Magento powinien uruchamiać właściwe procesy powiązane z modelem kategorii, ale po dużych importach zalecana jest kontrola cache i indeksów.

Najczęstsze problemy

Import zgłasza niezgodny store_view_code

Sprawdź, czy kod w kolumnie store_view_code odpowiada store view wybranemu w formularzu importu.

Import nie zmienia wartości

Sprawdź:

  • czy atrybut został zaznaczony w Attributes to Import,
  • czy komórka CSV nie jest pusta,
  • czy Empty Values Policy nie jest ustawione na skip_empty,
  • czy import nie był uruchomiony jako Dry Run.

Select albo multiselect zgłasza błąd

Sprawdź, czy label opcji w CSV dokładnie odpowiada labelowi opcji w Magento dla wybranego store view.

Obrazek nie importuje się

Sprawdź:

  • czy plik istnieje w pub/media/import/categories,
  • czy ścieżka w CSV jest poprawna,
  • czy rozszerzenie pliku jest obsługiwane,
  • czy atrybut obrazka został zaznaczony do importu.

Insert zgłasza brak rodzica

Sprawdź parent_entity_id albo parent_path. Rodzic musi istnieć w Magento albo znajdować się wcześniej w pliku importu.

Odinstalowanie modułu

Jeżeli moduł był instalowany przez Composer:

composer remove kowal/module-export-import-categories
bin/magento setup:upgrade
bin/magento cache:flush

Przed odinstalowaniem upewnij się, czy historia importów może zostać usunięta. Moduł tworzy tabelę:

kowal_export_import_categories_history
Ten moduł działa już w sklepach naszych klientów
Case study: rozbudowa tandembaits.com o nowe wersje językowe

Klient

tandembaits.com to sklep internetowy działający w branży wędkarskiej. Oferta sklepu jest oparta na specjalistycznym asortymencie, w którym poprawne nazwy kategorii, precyzyjne opisy oraz dobrze przygotowane adresy URL mają bezpośrednie znaczenie dla użyteczności sklepu, SEO i komunikacji z klientami w różnych krajach.

Wyzwanie

W ramach rozbudowy sklepu o nowe wersje językowe klient potrzebował skutecznego sposobu zarządzania kategoriami w Magento 2.

Największym problemem była specyfika branży wędkarskiej. Nazwy kategorii nie są prostymi, uniwersalnymi etykietami. Często odnoszą się do konkretnych technik łowienia, typów przynęt, akcesoriów, serii produktowych albo pojęć używanych tylko przez zaawansowanych wędkarzy.

Przy 10 wersjach językowych ręczne zarządzanie kategoriami w panelu Magento było zbyt czasochłonne i podatne na błędy. Klient potrzebował mieć pełną kontrolę nad:

  • nazwami kategorii,
  • adresami URL kategorii,
  • opisami kategorii,
  • meta danymi SEO,
  • wartościami specyficznymi dla każdego store view,
  • spójnością struktury kategorii między wersjami językowymi.

Skala pracy obejmowała kilkadziesiąt kategorii w 10 wersjach językowych. Oznaczało to setki wartości tekstowych do przygotowania, sprawdzenia, poprawienia i zaimportowania.

Problem biznesowy

Standardowa praca w panelu Magento wymagałaby edycji każdej kategorii osobno dla każdego store view. Przy kilkudziesięciu kategoriach i 10 językach taki proces byłby powolny i trudny do kontrolowania.

Najważniejsze ryzyka przy ręcznej pracy:

  • pomyłki w wyborze store view,
  • niespójne tłumaczenia nazw kategorii,
  • przypadkowe nadpisanie wartości domyślnych,
  • błędne albo zduplikowane adresy URL,
  • brak wygodnego przeglądu wszystkich kategorii w jednym miejscu,
  • trudność w przekazaniu danych tłumaczom lub osobom odpowiedzialnym za SEO,
  • brak prostego sposobu walidacji zmian przed zapisem.

Klient potrzebował procesu, który pozwoli przygotować dane zbiorczo, sprawdzić je przed importem i bezpiecznie zapisać tylko wybrane atrybuty dla konkretnego store view.

Rozwiązanie

Dla tego scenariusza zastosowano moduł Export Import Categories dla Magento 2.

Moduł umożliwił eksport kategorii do pliku CSV, przygotowanie danych językowych poza panelem Magento oraz ponowny import wartości do wybranego store view.

Proces został oparty na trybie update, ponieważ struktura kategorii już istniała w sklepie. Celem nie było tworzenie nowego drzewa kategorii, ale uzupełnienie i poprawienie danych dla kolejnych wersji językowych.

Zakres użycia modułu

W projekcie kluczowe były następujące funkcje modułu:

  • eksport kategorii z bazowego store view,
  • zachowanie entity_id jako stabilnego identyfikatora kategorii,
  • zmiana store_view_code na kod docelowej wersji językowej,
  • import w trybie update,
  • wybór konkretnych atrybutów do importu,
  • zarządzanie nazwami kategorii,
  • zarządzanie url_key,
  • zarządzanie opisami kategorii,
  • kontrola pustych wartości,
  • walidacja pliku przed właściwym importem,
  • raport importu.

Proces wdrożony w projekcie

1. Eksport kategorii

Najpierw wykonano eksport kategorii z bazowego store view. Plik CSV zawierał kolumny systemowe oraz wybrane atrybuty wymagane do przygotowania wersji językowych.

Najważniejsze kolumny systemowe:

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

Najważniejsze atrybuty robocze:

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

2. Przygotowanie danych językowych

Na podstawie wyeksportowanego CSV przygotowano osobne dane dla poszczególnych wersji językowych.

Dzięki temu osoby odpowiedzialne za treści mogły pracować w arkuszu, widząc wiele kategorii jednocześnie. Było to szczególnie ważne w branży wędkarskiej, gdzie nazwy kategorii muszą być zgodne z lokalną terminologią i realnym sposobem wyszukiwania produktów przez klientów.

3. Zachowanie identyfikatorów kategorii

W plikach importowych zachowano entity_id, aby moduł mógł jednoznacznie dopasować wiersze CSV do istniejących kategorii Magento.

To pozwoliło importować tłumaczenia bez ryzyka utworzenia duplikatów kategorii.

4. Zmiana store view

Dla każdej wersji językowej ustawiano odpowiedni store_view_code w CSV oraz wybierano ten sam store view w formularzu importu.

Moduł walidował zgodność tych danych. Dzięki temu ograniczono ryzyko przypadkowego importu tłumaczeń do niewłaściwego widoku sklepu.

5. Import w trybie update

Import wykonywano w trybie update, wybierając tylko te atrybuty, które miały zostać zmienione dla danej wersji językowej.

Dzięki temu moduł nie ingerował w pozostałe dane kategorii.

6. Walidacja i dry-run

Przed właściwym importem można było uruchomić walidację bez zapisu danych.

Tryb dry-run pozwalał sprawdzić:

  • czy plik CSV ma poprawne kolumny,
  • czy store_view_code pasuje do wybranego store view,
  • czy entity_id wskazuje istniejące kategorie,
  • czy wybrane atrybuty istnieją w Magento,
  • czy import nie zawiera błędów blokujących zapis.

7. Raport po imporcie

Po imporcie moduł generował raport, który pozwalał sprawdzić status poszczególnych wierszy.

Raport był szczególnie przydatny przy pracy na wielu językach, ponieważ pozwalał szybko wykryć ewentualne błędy w konkretnym pliku albo konkretnej kategorii.

Dlaczego CSV było właściwym formatem

CSV był praktycznym formatem dla tego projektu, ponieważ:

  • można go łatwo edytować w arkuszu kalkulacyjnym,
  • można przekazać go tłumaczom,
  • można porównać wartości między językami,
  • można przygotować wiele wersji językowych na bazie jednego eksportu,
  • można pracować na konkretnych kolumnach bez ręcznego klikania w panelu Magento,
  • można zachować kontrolę nad entity_id i store_view_code.

Efekt

Moduł umożliwił klientowi zarządzanie kategoriami w 10 wersjach językowych w sposób uporządkowany i powtarzalny.

Zamiast ręcznej edycji każdej kategorii w panelu Magento, zespół mógł pracować na plikach CSV, przygotowywać tłumaczenia zbiorczo i importować tylko wybrane atrybuty dla konkretnego store view.

Najważniejsze korzyści:

  • szybsze przygotowanie nowych wersji językowych,
  • większa kontrola nad nazwami kategorii,
  • pełna kontrola nad adresami URL,
  • łatwiejsze zarządzanie opisami kategorii,
  • możliwość pracy poza panelem Magento,
  • mniejsze ryzyko błędów przy wielu store view,
  • walidacja danych przed zapisem,
  • raportowanie wyników importu.

Znaczenie dla SEO

W projekcie szczególne znaczenie miała możliwość kontrolowania url_key, nazw kategorii oraz opisów.

Dla sklepu działającego w wielu językach automatyczne tłumaczenie lub przypadkowe kopiowanie nazw kategorii nie jest wystarczające. Każdy rynek może używać innych określeń branżowych, a w wędkarstwie różnice terminologiczne są szczególnie istotne.

Moduł pozwolił przygotować wartości SEO świadomie dla każdej wersji językowej:

  • lokalne nazwy kategorii,
  • lokalne adresy URL,
  • opisy dopasowane do języka,
  • meta tytuły,
  • meta opisy.

Podsumowanie

Rozbudowa tandembaits.com o 10 wersji językowych wymagała narzędzia, które pozwoli sprawnie zarządzać kategoriami Magento 2 na poziomie store view.

Export Import Categories rozwiązał ten problem, przenosząc pracę z ręcznej edycji w panelu Magento do kontrolowanego procesu opartego o CSV, walidację i import wybranych atrybutów.

W efekcie klient otrzymał możliwość wygodnego zarządzania specjalistycznymi nazwami kategorii, adresami URL i opisami dla wielu języków bez ryzyka przypadkowego nadpisania całej struktury kategorii.

Napisz własną recenzję
Napisz opinię o produkcie:Moduł Export Import Categories dla Magento 2
Twoja ocena
Aktualizacja preferencji plików cookie