Jak eksportować produkty z PrestaShop

dowiedz się

Eksport danych z PrestaShop to jedna z tych czynności, które z pozoru wyglądają prosto, a w praktyce wymagają planu: jasnego wyboru pól, kontroli formatu oraz świadomości ograniczeń wbudowanych narzędzi. Ten poradnik pokazuje kilka skutecznych ścieżek – od szybkiego eksportu z listy produkty po zaawansowane wyciąganie pól przez Menedżera SQL i interfejs CSV. Uwzględniamy też pracę w trybie Multistore, podstawy Webservice API i praktyki, które minimalizują problemy podczas integracji z ERP czy marketplace.

Przygotowanie i wymagania

Co chcesz wyeksportować i po co

Zacznij od spisania zakresu: identyfikatory, nazwy, opisy, ceny, stawki VAT, ilości, dostępność, referencje, producent, dostawca, tagi, kategorie, cechy, warianty, zdjęcia, wymiary i wagi, indeksy wyszukiwania. Doprecyzuj do jakiego systemu trafi plik (ERP, marketplace, BI, archiwum) i jakie ma wymagania względem formatu, separatora, kodowania, nagłówków, kolejności kolumn oraz typów danych.

Sprawdź wersję i różnice

W PrestaShop 1.6/1.7/8 różnią się zarówno lokalizacje przycisków, jak i dostępne kolumny w siatce produktów. W nowszych wersjach łatwiej wyeksportujesz dane filtrowane na liście produktów, ale nadal nie jest to pełny zrzut bazy (np. cechy i pełna struktura wariantów nie zawsze wchodzą w taki plik). W razie wątpliwości zaplanuj wariant B: Menedżer SQL lub Webservice.

Kopia zapasowa i środowisko testowe

Przed głębszymi eksportami z udziałem wielu tabel (produkty, warianty, zdjęcia, cechy) wykonaj kopię bazy. Choć eksport jest operacją odczytu, każda pomyłka w interpretacji danych – zwłaszcza przy późniejszym imporcie zwrotnym – może kosztować godziny pracy. Dobrym nawykiem jest testowy sklep (staging), na którym ćwiczysz zapytania SQL i sprawdzasz efekty.

Język, sklep i strefa walutowa

W sklepie wielojęzycznym ustaw właściwy kontekst języka – nazwy, opisy i metadane pochodzą z tabel z sufiksem „_lang” i wymagają podania id_lang. W trybie Multi-Store wybierz kontekst sklepu, z którego eksportujesz dane (cała grupa czy pojedynczy sklep). Zwróć uwagę na waluty i reguły podatkowe, by zrozumieć różnicę między ceną netto, brutto i ceną po specyficznych regułach.

Separator, kodowanie i rozmiar pliku

Uzgodnij separator pól (średnik czy przecinek) i otaczanie pól cudzysłowem. W Unii Europejskiej popularny jest średnik, zwłaszcza gdy w opisach pojawiają się przecinki. Kodowanie zalecane to UTF-8; jeśli plik będzie otwierany w Excelu na Windows, rozważ wersję z BOM lub użycie LibreOffice/Notepad++ do kontrolowanego otwarcia. Przy bardzo dużych katalogach planuj podział na części (limit/paginacja).

Lista pól – co zwykle bywa potrzebne

Najczęściej przydają się: ID produktu, aktywność, nazwa, krótki opis, pełny opis, kategoria domyślna i ścieżka kategorii, producent, dostawca, referencja, kod EAN, UPC/MPN, cena katalogowa, cena zakupu, stawka VAT, ceny specyficzne, status dostępności, ilość, minimalna ilość, data dostępności, wymiary, waga, cechy (feature), Słowa kluczowe, tagi, URL i alias, zdjęcie główne, lista zdjęć, data utworzenia i aktualizacji.

Szybki eksport z listy produktów

Znajdź przycisk i ustaw kontekst

Wejdź do Katalog → Produkty. W prawym górnym rogu (lub w menu akcji tabeli) znajdziesz przycisk Eksport. W widoku Multi-Store ustaw właściwy sklep lub grupę sklepów. Jeśli chcesz wyeksportować tylko aktywne pozycje, włącz filtr „Aktywne: Tak”. To, co zobaczysz w siatce i co przefiltrujesz, zazwyczaj decyduje o tym, co znajdzie się w pliku.

Dopasuj kolumny i filtry

Szybki eksport zwykle zwraca kolumny aktualnie dostępne w widoku siatki. Włącz dodatkowe kolumny (np. ilość, producent, kategoria), jeśli Twoja wersja/konfiguracja pozwala je pokazać. Użyj filtrów po nazwie, referencji, kategorii, producencie, statusie i dacie aktualizacji. Tabela często eksportuje wszystkie wyniki spełniające filtr (nie tylko bieżącą stronę), ale upewnij się, czy Twoja wersja tak działa – zbyt szeroki filtr może dać bardzo duży plik.

Eksport i interpretacja pliku

Kliknij Eksport i pobierz plik. Otwórz go w edytorze tekstowym, aby potwierdzić separator i kodowanie. W szybkim eksporcie rzadko znajdziesz pełne opisy, listy zdjęć, cechy i warianty – to rozwiązanie jest idealne do list kontrolnych, szybkiej inwentaryzacji i raportów sprzedażowych, ale ograniczone dla kompletnej migracji.

Plusy i minusy tej metody

  • Plus: błyskawiczna konfiguracja – dwa kliknięcia i gotowe.
  • Plus: uwzględnia bieżące filtry, co ułatwia selekcję asortymentu.
  • Minus: ograniczona liczba pól (głównie to, co w siatce).
  • Minus: brak wariantów w formie granularnej, brak cech i pełnej listy zdjęć.
  • Minus: polega na widoku backendu – zmiana skórek/modułów może zmieniać dostępne kolumny.

Eksport zaawansowany przez Menedżera SQL

Gdzie to jest i jak działa

Wejdź w Zaawansowane → Baza danych → Menedżer SQL. To narzędzie pozwala zapisać zapytania SELECT, uruchamiać je na żądanie i exportować wyniki do CSV. Dzięki niemu możesz łączyć wiele tabel i precyzyjnie definiować zestaw kolumn.

Podstawowe tabele i łączenia

  • ps_product – dane ogólne (ID, ceny, waga, producent, dostawca, referencja, EAN/UPC, status).
  • ps_product_lang – nazwa, opis, meta; wymaga id_lang i id_shop w multistore.
  • ps_stock_available – ilości (uważaj na id_product_attribute = 0 dla produktu bazowego oraz >0 dla wariantów).
  • ps_category_lang oraz powiązanie ps_category_product – kategorie i ich nazwy.
  • ps_manufacturer, ps_supplier – producent i dostawca.
  • ps_image (+ ps_image_lang w razie podpisów) oraz ps_image_shop – obrazy i przypisanie do sklepów.

W multi-store uwzględnij tabele „_shop” i pola id_shop. W wielojęzyczności zawsze filtruj po id_lang właściwym dla eksportu.

Przykładowy zakres kolumn dla produktów bazowych

Przygotuj SELECT, który pobiera: id_product jako ID, aktywność (active), referencję, ean13, upc, nazwę (z _lang), link_rewrite (alias), cenę katalogową (price), cenę zakupu (wholesale_price), stawkę podatkową (przez dołączenie tabeli z regułami podatkowymi lub podaj id_tax_rules_group), ilość (z ps_stock_available dla id_product_attribute=0), producenta i kategorię domyślną. Dołącz jedno zdjęcie główne (cover=1). Taki zestaw sprawdzi się jako fundament eksportu do ERP lub narzędzi analitycznych.

Dodawanie ścieżki kategorii

Domyślna kategoria to za mało, jeśli potrzebujesz pełnej ścieżki. Zbuduj ją rekurencyjnie (używając nlevel/parent) albo w prostszej wersji pobierz nazwy kategorii bezpośrednich. W wielu wdrożeniach stosuje się zewnętrzny skrypt (np. w Pythonie) do rozwinięcia ścieżki po stronie ETL, a w SQL eksportuje się id_category_default i id_product wraz z tabelą mapującą id_category → ścieżka.

Eksport do CSV i kontrola formatu

Po zapisaniu zapytania użyj akcji „Eksportuj do CSV”. Jeśli potrzebujesz separatora innego niż domyślny, otwórz plik w edytorze i dokonaj konwersji separatorów lub użyj narzędzia wiersza poleceń do zamiany. Pamiętaj o UTF-8 i ewentualnym BOM dla Excela. Zadbaj o konsekwentny cudzysłów wokół pól tekstowych (nazwy, opisy), aby uniknąć rozjechania kolumn przy przecinkach lub średnikach w treści.

Wskazówki dotyczące wydajności

  • Filtruj po dacie aktualizacji (date_upd) lub zakresie ID, aby uniknąć ogromnych plików.
  • Twórz większe eksporty etapami: podstawowe dane, obrazy, cechy, warianty – osobnymi plikami.
  • Dodaj limity i offsety, jeżeli Menedżer SQL pozwala, lub zrób kilka zapytań z warunkami.
  • Pamiętaj o indeksach i unikaj nadmiernych zagnieżdżonych podzapytań w jednym SELECT.

Eksport wariantów, zdjęć i danych powiązanych

Warianty produktu – logika danych

Wariant to osobny rekord w tabeli ps_product_attribute powiązany z produktem bazowym. Ilości wariantów znajdziesz w ps_stock_available dla id_product_attribute > 0. Atrybuty wariantów są mapowane przez ps_product_attribute_combination → ps_attribute → ps_attribute_lang oraz ps_attribute_group_lang. Aby uzyskać czytelną etykietę wariantu (np. Kolor: Czerwony; Rozmiar: M), łącz atrybuty według grup i wartości, a następnie scalaj w jeden ciąg (grupowanie po id_product_attribute).

Pola identyfikujące warianty

Kluczowe dane wariantu to: id_product_attribute (jego własne ID), referencja wariantu, ean13/UPC wariantu, waga różnicowa, zmiana ceny netto/brutto (impact), dostępność i stan. W eksporcie zaznacz, czy dany wariant jest domyślny (default_on). Dzięki temu zewnętrzny system zrozumie, który wariant reprezentuje kartę produktu w listingu.

Eksport nazw atrybutów

Połącz grupy i wartości, aby w CSV mieć kolumny typu Grupa_1, Wartość_1, Grupa_2, Wartość_2 i tak dalej, lub scalisz wszystkie w jedną kolumnę. Jeśli integracja wymaga kolumn stałych (np. osobne kolumny dla Koloru i Rozmiaru), najpierw zidentyfikuj maksymalną liczbę grup atrybutów używanych w katalogu i przygotuj schemat kolumn odpowiedni do tego limitu. Tutaj łatwo o błędy – testuj na wielu produktach z różną liczbą atrybutów.

Zdjęcia – ID, okładka i pełne ścieżki URL

Lista zdjęć znajduje się w ps_image, gdzie cover=1 oznacza zdjęcie główne. Aby zbudować pełny URL pliku, potrzebujesz adresu sklepu i algorytmu ścieżek (Presta rozbija id_image na segmenty, np. 12 → img/p/1/2/12-large_default.jpg). W praktyce prościej jest eksportować id_image oraz flagę okładki, a adresy przeliczyć w narzędziu integrującym albo dopisać prostą funkcję sklejającą ścieżkę. Jeśli wymagane są różne rozmiary (home_default, large_default), generuj odpowiednie sufiksy.

Cechy (feature) i wartości

Cechy to inny byt niż atrybuty wariantu. Dane siedzą w ps_feature, ps_feature_lang, ps_feature_value, ps_feature_value_lang oraz powiązaniu ps_feature_product. Aby je przenieść do CSV, zwykle robi się agregację wartości cech do jednej kolumny (np. „Materiał: Bawełna | Skład: 100%”), albo rozbija się na kolumny per cecha, jeśli integracja tego wymaga. Zadbaj o spójnik/separator, który nie koliduje z wybranym separatorem CSV.

Najczęstsze pułapki przy wariantach i zdjęciach

  • Mieszanie ilości produktu bazowego z ilościami wariantów – pamiętaj o id_product_attribute.
  • Niespójne nazewnictwo atrybutów między językami – filtruj po właściwym id_lang.
  • Zdjęcia przypisane do sklepu – w multistore kontroluj ps_image_shop.
  • Brakujące referencje wariantów – niektóre integracje wymagają unikatowego SKU per wariant.
  • Niejednoznaczne mapowanie kategorii i producentów – zawsze dokładaj id obiektów obok nazw.

Na tym etapie dobrze jest odnotować, które kolumny są obowiązkowe dla zewnętrznego systemu. W wielu marketplace wymagane są m.in. nazwa, kategoria, opis, cena, ilość, zdjęcie główne oraz bezbłędny identyfikator, taki jak EAN.

Jeżeli przygotowujesz eksport specjalnie pod warianty, zwróć szczególną uwagę na kombinacje oraz spójność słowników dla koloru i rozmiaru. Zadbaj też o poprawne tłumaczenia i kody atrybutów – dobrze opisane atrybuty znacząco redukują odrzucone oferty po stronie integracji.

Automatyzacja, Webservice i integracje

Włączenie Webservice i dostęp do danych

W PrestaShop włącz Webservice: Zaawansowane → Webservice → Dodaj klucz. Zaznacz uprawnienia do zasobów products, combinations, images, categories, stock_availables i innych potrzebnych. Zapisz klucz i przetestuj endpoint na adresie /api/products z parametrami display i filter. Domyślny format to XML; możesz ograniczać pola (display=[id,reference,price]) oraz filtrować po data_add/date_upd, a także stronicować przez limit i sortować przez sort.

Scenariusz: pełny eksport przez Webservice

  • Pobierz listę ID produktów: /api/products?display=[id]&limit=…&filter[active]=[1]
  • Dla partii ID pobierz pełne rekordy: /api/products?display=full&filter[id]=[id1|id2|…]
  • Dla wariantów użyj /api/combinations i mapuj po id_product.
  • Zdjęcia pobieraj przez /api/images/products/{id_product} lub bezpośrednie ścieżki do plików.
  • Stany magazynowe uzupełnij z /api/stock_availables.

Atut Webservice: brak ręcznego logowania i klikania – dane pobierasz skryptem, w regularnych interwałach i z selekcją pól potrzebnych integracji. Pamiętaj o limitach i retry przy błędach sieci oraz o tym, że duże katalogi wymagają paginacji.

Harmonogramy i eksport w tle

Jeśli potrzebujesz codziennych/ godzinowych plików, uruchom zadanie Cron po stronie hostingu lub użyj modułu „cronjobs”. Skrypt może łączyć się z Webservice lub wykonywać predefiniowane zapytania SQL i zapisywać pliki na dysku, FTP, SFTP lub w chmurze. Dobrą praktyką jest wersjonowanie plików w nazwie (data, godzina) oraz czyszczenie starych paczek według polityki retencji.

Integracje z marketplace i systemami zewnętrznymi

Marketplace zwykle mają własne specyfikacje: wymagane kolumny, typy danych, kody kategorii i zakresy wartości (np. lista dopuszczalnych kolorów). Zanim rozpoczniesz eksport, przygotuj mapowanie kategorii (Twoje → ich), przemapuj stawki VAT i waluty oraz ujednolić jednostki (kg, cm). Zidentyfikuj brakujące dane (np. brak kodów EAN, brak cech materiałowych), popraw je u źródła, a dopiero potem eksportuj. W integracjach z hurtowniami istotne są też referencje dostawcy i polityka aktualizacji (tylko zmiany vs pełne zrzuty).

Walidacja, kontrola jakości i testy

  • Otwórz plik w edytorze tekstowym i sprawdź pierwsze wiersze: separator, cudzysłowy, nagłówki.
  • Załaduj próbkę do narzędzia docelowego (ERP, marketplace) w trybie testowym i przejrzyj błędy.
  • Porównaj liczność rekordów: ile rekordów w Presta vs ile w pliku – dopasuj filtry.
  • Zadbaj o spójność identyfikatorów (id_product, reference, EAN) oraz o unikatowość SKU.
  • Jeżeli reimportujesz do PrestaShop, wykonaj to wyłącznie na kopii, aby nie nadpisać danych produkcyjnych.

Bezpieczeństwo i zgodność

Eksport produktów rzadko dotyka danych osobowych, ale pamiętaj o prawach dostępu do panelu i kluczy Webservice. Nie publikuj publicznie wygenerowanych plików, jeżeli zawierają cenniki zakupu lub wewnętrzne referencje. Stosuj szyfrowanie połączeń (HTTPS, SFTP) i ograniczaj adresy IP uprawnione do pobierania plików.

Checklist przed uruchomieniem cyklicznego eksportu

  • Ustal jednoznaczny schemat kolumn i ich kolejność.
  • Sprawdź kompletność: czy obejmujesz warianty, cechy i zdjęcia zgodnie z wymaganiami integracji.
  • Zweryfikuj wydajność: czas generowania, rozmiar, paginację.
  • Opracuj alerty błędów (e-mail, logi) i plan awaryjny przy nieudanej sesji.
  • Udokumentuj proces: źródła danych, filtry, transformacje, miejsca docelowe.
< Powrót

Zapisz się do newslettera


Zadzwoń Napisz