Jak tworzyć import CSV produktów

dowiedz się

Import produktów z pliku CSV to najszybszy sposób zasilenia sklepu setkami lub tysiącami pozycji bez ręcznej edycji. Dobrze zaprojektowany proces pozwala utrzymywać spójne ceny, stany i opisy, a także szybko reagować na zmiany oferty od dostawców. W poniższej instrukcji przejdziesz przez cały cykl: od planowania schematu kolumn, przez przygotowanie danych i ich kontrolę jakości, aż po konfigurację importu w popularnych platformach oraz wdrożenie automatycznego harmonogramu.

Przygotowanie danych i projekt pliku

Określenie celu importu i źródeł danych

Zacznij od sprecyzowania celu: pierwsze zasilenie katalogu, migracja z innego systemu, codzienne aktualizacje od hurtowni czy integracja z ERP/PIM. Każdy scenariusz wymaga innych decyzji dotyczących kluczy, zakresu pól i częstotliwości. Jednoznacznie wskaż system będący źródłem prawdy (Single Source of Truth), aby unikać konfliktów, w których dwa narzędzia próbują sterować tym samym polem.

Ustal, czy Twoje dane pochodzą z jednego, czy wielu źródeł. Gdy łączysz wiele feedów, zaprojektuj reguły rozstrzygania sprzeczności (np. priorytet cen z ERP, opis z PIM, obrazy od producenta). Zadbaj o wersjonowanie zestawów danych, aby zawsze móc wskazać, z czego powstał konkretny wynik importu.

Definicja schematu kolumn i minimalny zestaw pól

Stwórz słownik danych opisujący każdą kolumnę, jej typ, dopuszczalne wartości i obowiązkowość. Minimalny, praktyczny zestaw pól dla większości platform to:

  • Identyfikator produktu: stabilny klucz (np. SKU), ewentualnie zewnętrzne ID.
  • Nazwa, krótki opis, długi opis (HTML lub tekst sformatowany zgodnie z możliwościami platformy).
  • Kategoria (jedna lub wiele), producent/marka, EAN/GTIN, MPN.
  • Cena bazowa (netto/brutto), stawka VAT, waluta, ceny promocyjne z datami obowiązywania.
  • Stan i ilość, dostępność, czas wysyłki, kraj pochodzenia.
  • Obrazy (miniatura, galeria), pliki do pobrania (dla produktów wirtualnych).
  • SEO: slug, meta title, meta description, indeksowanie (noindex/nofollow).
  • Logistyka: waga, wymiary, klasa wysyłkowa, punkt ciężkości pakowania.
  • Status publikacji (draft/published), widoczność (katalog/wyszukiwarka/ukryty).

Dla katalogów zróżnicowanych dodaj sekcje pól domenowych, np. elektronika (chipset, pamięć), moda (rozmiar, krój), kosmetyki (pojemność, skład). Opisz, które pola będą używane do filtrowania i facetingu, bo to wpływa na późniejsze wyszukiwanie w sklepie.

Konwencje formatowania: separator, kodowanie, liczby i daty

Ustal jeden separator kolumn (przecinek lub średnik) i konsekwentnie go stosuj. Jeśli w opisach pojawiają się przecinki, używaj ujęcia pól w cudzysłowy oraz escapowania znaków specjalnych. Kodowanie ustaw na UTF-8 bez BOM, aby uniknąć artefaktów przy polskich znakach.

Wartości dziesiętne zapisuj z kropką lub przecinkiem – trzymaj się jednej konwencji i zgodności z wymaganiami docelowej platformy. Daty i godziny podawaj w ISO 8601 (YYYY-MM-DD lub z czasem UTC). Zaprojektuj nagłówek z nazwami kolumn w pierwszym wierszu i jednoznacznie zdefiniuj, czy puste pole oznacza „brak zmiany”, „wyczyść wartość” czy „wartość null”.

Identyfikatory, spójność i deduplikacja

Najważniejszym kluczem w imporcie produktów pozostaje stabilny identyfikator. Zazwyczaj jest nim SKU lub dedykowane ID z ERP. Unikaj spacji i znaków specjalnych, które mogłyby psuć adresy URL. Zaimplementuj reguły deduplikacji: jeśli pojawią się dwa wiersze z tym samym kluczem, określ, który wygrywa (np. ostatni wygrywa, albo feed o najwyższym priorytecie).

W przypadku migracji rozważ tabelę mapowań starych ID do nowych, aby zachować poprawne linki i historię zamówień. Zapisuj także identyfikatory dostawców, by w razie problemu szybko prześledzić pochodzenie konkretnej wartości.

Kategorie, taksonomie i słowniki

Zanim wgrasz plik, uzgodnij listę kategorii i nazwy atrybutów. Dla kategorii wielopoziomowych stosuj ścieżki rozdzielane znakiem „>” lub „/”, np. Dom i ogród > Oświetlenie > Lampy biurkowe. Jeśli pobierasz kategorie od wielu dostawców, przygotuj tabelę translacji do własnej taksonomii.

Stwórz słowniki (controlled vocabularies) dla stałych pól, jak marka, kolor, materiał. To ograniczy literówki i chaos w filtrach oraz ułatwi raportowanie. Dopuszczaj synonimy, ale zapisuj je w postaci map, które sprowadzają wartości do kanonicznej formy.

Atrybuty i warianty produktów

Produkty konfigurowalne wymagają wyraźnego rozróżnienia: produkt nadrzędny (model) i jego odmiany. Lista pól nadrzędnych powinna zawierać wspólne elementy (nazwa, opis, kategoria, marka), zaś warianty odpowiadają za kombinacje cech, takich jak kolor i rozmiar. Zaprojektuj spójny sposób opisu cech: kolumny Color i Size, lub jedna kolumna z parą klucz=wartość. To zapobiegnie chaosowi przy eksporcie i imporcie do różnych platform.

Użyj precyzyjnych nazw kolumn dla cech, które stają się filtrami. Dzięki temu wyszukiwarka katalogu uzyska wysoką trafność, a klient zobaczy jasne drzewo wyboru. Zadbaj o powtarzalność kolejności cech, by unikać duplikacji wariantów różniących się tylko kolejnością.

W tym miejscu warto wyróżnić dwa pojęcia: atrybuty opisują stałe cechy produktu (np. materiał), a warianty generują odrębne pozycje magazynowe i mogą mieć własne ceny, stany i kody.

Obrazy i pliki

Przygotuj stabilne adresy URL obrazów albo repozytorium SFTP z powtarzalną strukturą katalogów. Zadbaj o nazewnictwo (np. sku_1.jpg, sku_2.jpg), alt-teksty i proporcje. Wiele platform pozwala rozdzielić wiele obrazów separatorem „|” w jednej kolumnie. Kontroluj wymiary i wagę plików, by przyspieszyć renderowanie stron. W razie potrzeby zaplanuj przetwarzanie miniatur po stronie CDN.

Jakość danych: reguły, testy i oczyszczanie

Reguły walidacji i kompletność pól

Zaprojektuj zestaw reguł, które każda pozycja musi spełnić przed importem. Podstawowe to: obecność klucza, minimalna długość nazwy, poprawny format EAN/GTIN, dodatnie ceny i ilości, dozwolone wartości dla statusów i widoczności. Zadbaj o walidacja na dwóch poziomach: syntaktycznym (formaty) i semantycznym (sens biznesowy, np. promocyjna cena nie wyższa od regularnej).

Waliduj linki do obrazów (odpowiedź HTTP 200, typ MIME), dostępność kategorii docelowych, a także spójność relacji między produktem nadrzędnym i wariantami. Dla pól numerycznych wprowadź zakresy akceptowalne, by wykrywać literówki (np. cena 99999 zł w kategorii długopisów).

Normalizacja i porządkowanie wartości

Przed importem wykonaj normalizacja danych: usuń zbędne spacje, zastąp znaki specjalne w slugach, ujednolić wielkość liter (np. nazwy kolorów), przelicz jednostki (mm ↔ cm) do jednego standardu. Zamień wartości logiczne na jednolite „1/0” lub „true/false”, zgodnie z wymaganiami platformy.

Ujednolić formaty list (np. rozdzielanie wielu kategorii średnikiem), zamapuj synonimy (granatowy → navy), a puste opisy oznacz jako brak, jeśli chcesz je pominąć, lub wypełnij szablonem minimalnym, jeśli platforma wymaga niepustych wartości.

Ceny, podatki i waluty

Jednoznacznie zdecyduj, czy w CSV przekazujesz ceny netto, czy brutto. Jeśli obie, dołącz precyzyjną stawkę VAT i walutę. Stosuj zaokrąglanie zgodne z zasadami księgowymi i logiką platformy, aby uniknąć różnic jednego grosza. Dla wielowalutowości określ kursy i moment ich obowiązywania, a gdy platforma utrzymuje tylko jedną walutę, zapewnij konwersję po stronie pipeline’u importu.

Promocje zapisuj z oknem czasowym (od–do) i polityką kolizji (co, jeśli nakłada się więcej niż jedna promocja). Jeśli sprzedajesz B2B, przewidź cenniki dla grup klientów i flagę ceny katalo-gowej vs indywidualnej.

Spójność stanów i reguły magazynowe

Ustal źródło prawdy dla stanów oraz politykę rezerwacji i dostępności przedsprzedażowej. Wprowadź kontrolę, by ilość nie schodziła poniżej zera i by zmiana statusu dostępności następowała automatycznie po osiągnięciu progów. Zapisuj stany na poziomie wariantów, nie tylko produktu nadrzędnego.

Uwzględnij czasy uzupełniania i bufor bezpieczeństwa (safety stock). Eksponuj w CSV oddzielne pola na stany: dostępny, w drodze, zarezerwowany. Dzięki temu zyskasz precyzję widoczności oferty oraz ograniczysz zwroty spowodowane błędnym komunikatem o dostępności. W tym kontekście słowo-klucz to operacyjny magazyn i jego wiarygodność.

Mała próbka i testy na sucho

Przygotuj miniaturowy plik z 10–20 reprezentatywnymi produktami, obejmujący każdy wariant i nietypowy przypadek. Uruchom próbny import na środowisku testowym, aby sprawdzić, czy wszystkie zasady mapowania i walidacji działają poprawnie. Przejrzyj efekty w interfejsie sklepu: listingi, karty produktu, wyszukiwarkę i filtry.

Wprowadź iteracyjne poprawki do schematu i transformacji danych, aż test przejdzie bez błędów i ostrzeżeń. Zapisz wnioski w dokumentacji technicznej procesu.

Konfiguracja importu i mapowanie w platformach

Uniwersalne zasady mapowania pól

Mapowanie to przypisanie kolumn z pliku do pól systemu sprzedażowego. Zdefiniuj domyślne wartości dla braków (np. domyślna stawka VAT), reguły transformacji (np. łączenie dwóch kolumn w tytuł SEO) i filtrację treści zabronionych. Dobrą praktyką jest nazwanie kolumn identycznie jak pola API/administracji, co ogranicza liczbę reguł.

Upewnij się, że nazwy zestawów atrybutów i typów produktów odpowiadają temu, co rozumie platforma. Zadbaj o mechanizm wykrywania, kiedy dany wiersz powinien tworzyć nowy produkt, a kiedy aktualizować istniejący. W logach zapisuj wynik każdego wiersza, aby móc szybko zdiagnozować błędy mapowanie.

WooCommerce

W WooCommerce skorzystasz z wbudowanego importera (Produkty → Importuj) lub rozszerzeń zwiększających obsługę wariantów i atrybutów. Kluczem jest zgodne użycie pól: SKU, Regular price, Sale price, Stock quantity, Categories (z rozdzielaniem „>” dla hierarchii), Images (URL-e rozdzielone „|”).

Dla wariantów przygotuj produkt nadrzędny typu „Variable” i wiersze wariantów z atrybutami (np. attribute:pa_color, attribute:pa_size). Upewnij się, że atrybuty są wcześniej zdefiniowane jako globalne, a zestaw atrybutów przypisany do produktu. Jeśli importujesz wiele obrazów, WooCommerce pobierze je i utworzy załączniki w bibliotece mediów.

Shopify

Shopify opiera warianty na kolumnach Option1, Option2, Option3 oraz jednym wierszu na wariant. Kolumny Handle i Title identyfikują produkt i jego warianty. Stany kontroluje Inventory Quantity oraz magazyn (Location). Dla obrazów użyj Image Src i, opcjonalnie, Image Alt Text.

Uważaj na specyficzne nazwy pól (np. „Variant SKU”, „Variant Price”, „Published”). Jeśli przenosisz dane z innych systemów, wcześniej zrób mapę różnic pól i automatyczne konwersje. Shopify w imporcie odczyta też tagi i kolekcje, co pozwala szybko zbudować nawigację w sklepie.

PrestaShop

W PrestaShop (Zaawansowane → Import CSV) precyzyjnie ustaw separator kolumn i wielowartościowy (dla wielu kategorii). Kategorie możesz podawać jako ścieżkę. Cechy i kombinacje wymagają wcześniejszego zdefiniowania atrybutów; warianty wprowadzaj jako kombinacje powiązane z produktem bazowym.

Obsłuż pola specyficzne: ID Tax Rules Group, On sale, Wholesale price, Reference. Dla zdjęć podawaj URL-e lub nazwę pliku, jeśli korzystasz z importu z serwera. Po imporcie wygeneruj miniatury i przebuduj indeksy wyszukiwania.

Magento/Adobe Commerce

Magento wymaga precyzji: obowiązkowe są sku, attribute_set_code, product_type, name, price (zależnie od typu), oraz poprawny zestaw atrybutów. Warianty (configurable) buduje się na bazie prostych produktów (simple) połączonych przez super attributes (np. color, size). Kolumna configurable_variations opisuje powiązania wariantów z produktem nadrzędnym.

Wybierz tryb importu (Add/Update, Replace, Delete), a przed startem włącz reindeksację w trybie „on save” lub zaplanuj pełną po zakończeniu. Magento akceptuje duże wolumeny, ale wymaga cierpliwości i kontroli pamięci oraz limitów czasu.

Headless i własna integracja

Jeśli budujesz kanał headless, zaplanuj integracja w oparciu o REST/GraphQL. Przetwarzaj CSV strumieniowo i rozbijaj na paczki, aby spełnić limity API. Stosuj klucze idempotencji, aby powtórne wywołania nie tworzyły duplikatów.

Modeluj dane zgodnie z domeną: encje Produkt, Wariant, Atrybut, Obraz, Cennik. Zadbaj o walidację po stronie API i wersjonowanie kontraktów, by zmiany schematu nie przerywały importu.

Aktualizacje, harmonogram i automatyzacja

Tryby importu: tworzenie, aktualizacja, upsert, usuwanie

Definiuj wyraźnie, co ma się stać dla wiersza: utwórz nowy produkt, zaktualizuj istniejący, wykonaj upsert (utwórz lub zaktualizuj), czy usuń/deaktywuj. Dla aktualizacji częściowych pozwól na puste wartości oznaczające „bez zmian”, a specjalne znaczniki na „wyczyść pole”. Ustal politykę dla usuwania: twarde kasowanie czy miękkie (status archiwalny, niewidoczny dla klienta).

Wykrywanie zmian i importy przyrostowe

Kiedy źródło publikuje pełny dump, oszczędzisz zasoby, jeśli wykryjesz różnice: porównuj znaczniki czasu (updated_at) lub wyliczaj skróty (hash) z istotnych pól. Importuj tylko wiersze zmienione od ostatniego przebiegu, a resztę pomijaj. Prowadź tabelę metadanych z datami i licznikami rekordów, aby mieć kontrolę nad postępem.

Harmonogramy, kolejki i orkiestracja

Automatyzacja procesu to nie tylko cron. W większej skali użyj kolejki zadań i orkiestratora, który zadba o retry i monitorowanie (np. Celery, Sidekiq, Airflow). Rozbijaj pracę na etapy: pobranie pliku, wstępna walidacja, transformacje, import, reindeksacja, raport.

Ustal okna serwisowe, by importy nie kolidowały z godzinami szczytu. Dla feedów dostawców ustaw harmonogram pobierania tuż po ich publikacji. Pamiętaj o strefach czasowych i o tym, że promocje powinny aktywować się w odpowiednim momencie.

Obsługa błędów, logi i alertowanie

Przygotuj przejrzyste logi z identyfikatorem partii i wiersza, kodem błędu, opisem oraz ewentualnym snapshotem danych. Zaimplementuj retry z narastającym odstępem dla błędów sieciowych i odróżniaj błędy trwałe (np. nieistniejąca kategoria) od chwilowych (timeout).

Po każdym przebiegu generuj raport: liczba wczytanych produktów, zaktualizowanych, pominiętych, błędów i ostrzeżeń. Wysyłaj alerty, gdy odsetek błędów przekroczy próg lub kiedy feed nie nadejdzie o czasie. To rdzeń operacyjnej automatyzacja.

Wydajność i skalowanie

Przetwarzaj plik strumieniowo i partiami (np. 500–2000 rekordów), aby nie przekraczać limitów pamięci. Używaj równoległości tam, gdzie platforma pozwala, ale z poszanowaniem limitów API i blokad na poziomie bazy danych. Po imporcie planuj reindeksacje i odświeżenia cache warstwowo, aby nie przeciążać frontu.

Dla bardzo dużych katalogów rozważ sharding po kategoriach lub marce oraz osobne pipeline’y dla obrazów. Mierz czas trwania etapów, by dokładnie wiedzieć, gdzie inwestować w optymalizację.

Bezpieczeństwo transportu i dostępu

Przesyłaj dane kanałami szyfrowanymi (SFTP, HTTPS). Ogranicz dostęp do plików za pomocą podpisów czasowych i tokenów. Sekrety trzymaj w managerze tajemnic, a nie w plikach konfiguracyjnych. Szyfruj pliki w spoczynku, jeśli zawierają wrażliwe pola (np. koszty zakupu).

Audytuj, kto i kiedy uruchamiał import i co zostało zmienione. W razie incydentu bezpieczeństwa będziesz mógł szybko odtworzyć przebieg zdarzeń.

Dobre praktyki operacyjne i checklisty

Lista kontrolna przed startem

  • Spójny schemat CSV, test na 20 rekordach, brak błędów krytycznych.
  • Wszystkie kategorie i atrybuty zdefiniowane w platformie.
  • Weryfikacja obrazów: rozmiary, ratio, alt-teksty.
  • Konfiguracja mapowania pól, domyślnych wartości i transformacji.
  • Plan reindeksacji i odświeżenia cache po imporcie.
  • Backup bazy i repozytorium mediów.
  • Harmonogram i okno serwisowe zatwierdzone z biznesem.
  • Plan komunikacji i kontakt do osób on-call.

Rollback i kopie bezpieczeństwa

Przed dużą publikacją zrób pełny snapshot bazy oraz eksport kluczowych tabel produktów. Jeśli platforma na to pozwala, wykonuj import w transakcji lub w trybie „blue-green” (tworzenie kopii ofert i przełączenie widoczności po weryfikacji). Alternatywnie użyj miękkiej publikacji: najpierw wgraj jako niewidoczne, następnie masowo zmień status po testach.

Przygotuj skrypty cofające zmiany: usunięcie nowo dodanych produktów, przywrócenie poprzednich cen i stanów. Jasno opisz, jak długo trwają operacje cofania, by ocenić ryzyko biznesowe.

Monitoring jakości po imporcie

Po każdym przebiegu sprawdzaj metryki: liczba produktów bez obrazów, bez kategorii, z pustą nazwą, z ceną równą 0, z nietypowo wysoką ceną w kategorii. Analizuj trend odrzuceń wierszy i czas trwania importu. Wyszukuj martwe linki do obrazów i 404-ki.

Na froncie sprawdź: kompletność filtrów, poprawność paginacji, szybkość ładowania listingu i karty produktu. W logach zwróć uwagę na ostrzeżenia, które nie zatrzymały importu, ale mogą kumulować dług techniczny.

Dokumentacja i utrzymanie procesu

Utwórz żywą dokumentację: słownik kolumn, przykładowe pliki, scenariusze błędów i ich rozwiązania, kontakt do właścicieli procesów. Aktualizuj ją przy każdej zmianie schematu lub platformy. Dodaj procedurę on-boardingową dla nowych dostawców danych, aby szybciej włączać ich feedy do procesu.

Dbaj o zgodność ze standardami nazewnictwa i wersjonowanie schematu (v1, v2). Wprowadzając zmiany, zachowuj kompatybilność wsteczną lub planuj okno migracyjne z konwerterem.

Najczęstsze problemy i ich naprawa

  • Nieprawidłowe kodowanie znaków: wymuś UTF-8 bez BOM, usuń ukryte znaki sterujące.
  • Zły separator lub cudzysłowy w opisie: ujednolić separator, włącz escapowanie pól.
  • Duplikaty kluczy: wprowadź regułę „ostatni wygrywa” i raportuj listę duplikatów.
  • Błędne mapowanie kategorii: stosuj tabelę translacji i waliduj istnienie kategorii docelowej.
  • Warianty nie łączą się z produktem nadrzędnym: sprawdź pola grupujące i spójność atrybutów.
  • Różnice w groszach: ujednolić typy liczb i algorytmy zaokrąglania.
  • Puste obrazy: sprawdź dostępność URL-i, wprowadź retry i fallback na placeholder.
  • Import trwa zbyt długo: włącz przetwarzanie partiami, równoległość, odłóż reindeksację.
  • Konflikty stanów: ustal jeden system źródłowy dla ilości i blokuj aktualizacje z innych miejsc.
  • Błędy uprawnień: przyznawaj minimalne role i rotuj klucze dostępowe cyklicznie.

Kiedy zbudujesz proces w oparciu o powyższe kroki, codzienne aktualizacje staną się przewidywalne i łatwe do utrzymania. Dyscyplina w projektowaniu schematu, konsekwentna kontrola jakości oraz narzędzia do śledzenia zmian pozwolą Ci skalować katalog bez chaosu i ryzyka utraty danych. Tak zorganizowany import to solidna baza dla rozwoju sklepu, szybkiego wdrażania nowych linii produktowych i sprawnej pracy całego zespołu.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz