Do czego służy moduł
- Przeniesienie katalogu do innego sklepu. Nowy sklep, migracja na nowszą wersję PrestaShop albo sklep testowy – pliki są przygotowane pod import wersji docelowej, a nie wersji, z której eksportujesz.
- Masowa edycja w arkuszu kalkulacyjnym. Eksport wybranych kolumn, zmiana w Excelu lub innym arkuszu i ponowny import do tego samego sklepu.
- Stały plik dla integracji. Hurtownia, porównywarka, system ERP albo inny sklep mogą pobierać aktualny plik pod stałym adresem, odświeżanym przez CRON.
Pliki zgodne z importem wybranej wersji PrestaShop
Cztery wersje docelowe
- Wybór wersji importu. W profilu wskazujesz, który PrestaShop odczyta plik: 1.7.0–1.7.2, 1.7.3–1.7.6, 1.7.7–8.x, 9.x albo „Automatycznie” (wersja bieżącego sklepu).
- Kolumny w kolejności importu. Plik produktów ma od 63 kolumn (1.7.0–1.7.2) do 68 kolumn (1.7.7–8.x), a dla PrestaShop 9 – 66 kolumn. Plik kombinacji ma od 23 do 26 kolumn. Kolejność odpowiada polom importu danej wersji, dlatego pełny plik dopasowuje się na stronie importu sam.
- Kolumny istniejące tylko w niektórych wersjach. Na przykład ISBN, MPN, próg niskiego stanu i lokalizacja magazynowa trafiają tylko do plików dla wersji, których import je obsługuje; słowa kluczowe meta i kolumny zaawansowanego zarządzania magazynem tylko do plików dla 1.7.0–1.7.2.
- Dwa sposoby zapisu CSV. PrestaShop 9 czyta CSV według RFC 4180, a wersje 1.7 i 8 inaczej traktują cudzysłowy i ukośniki wsteczne. Moduł zapisuje wartości tak, aby import konkretnej wersji odczytał je bez zmian, a gdy to niemożliwe – zgłasza to w raporcie.
- Zapisane dopasowanie kolumn. Dla każdego profilu moduł tworzy w PrestaShop zapisaną konfigurację dopasowania kolumn („Eksport CSV #ID - produkty” i „Eksport CSV #ID - kombinacje”), którą można wczytać na stronie importu, gdy plik ma tylko część kolumn.
- Zakładka „Format CSV”. Opis każdej kolumny dla wybranej wersji PrestaShop oraz instrukcja ustawień importu krok po kroku.
Plik produktów i plik kombinacji
- Osobne pliki dla dwóch typów importu. Plik produktów dla typu „Produkty” i plik kombinacji dla typu „Kombinacje” („Warianty” w PrestaShop 8 i 9); w profilu można włączyć jeden z nich albo oba.
- Pełny plik kombinacji. Plik kombinacji zawsze ma wszystkie kolumny, ponieważ import przy aktualizacji kombinacji nadpisuje cenę, wagę, stan i kody wartościami z pliku – brak kolumny wyczyściłby te dane.
- Zdjęcia jako adresy URL. Kolumna zdjęć zawiera adresy oryginalnych plików zdjęć z domeny sklepu profilu, z okładką na pierwszym miejscu, oraz teksty alternatywne. Zdjęcia, których pliku brakuje na serwerze, są pomijane i zgłaszane w raporcie.
- Cechy, atrybuty, tagi i akcesoria w formacie, którego oczekuje import (m.in. cecha jako nazwa:wartość:pozycja:własna).
- Cena z podatkiem jako ostatnia kolumna. Import wstępnie dopasowuje kolumny po pozycji i pomija to pole, dlatego moduł zawsze umieszcza je na końcu, aby nie przesunąć pozostałych kolumn.
Profile eksportu
Źródło danych
- Dowolna liczba profili. Każdy profil opisuje jeden zestaw plików i ma własną nazwę, stan aktywności, link do pobierania i adres CRON.
- Sklep profilu. W multistore ceny, stany, widoczność i zdjęcia są pobierane z wybranego sklepu, a plik podaje ten sklep w kolumnie sklepu.
- Język danych. Nazwy, opisy, pola SEO, tagi, podpisy zdjęć i wartości cech są eksportowane w języku profilu; ten sam język wybiera się na stronie importu jako język pliku.
Filtry produktów
- Tylko aktywne produkty.
- Tylko produkty dostępne w magazynie. Pomija produkty o stanie 0 lub niższym oraz kombinacje, których własny stan wynosi 0 lub mniej.
- Wybrane kategorie. Produkt trafia do pliku, gdy należy do co najmniej jednej zaznaczonej kategorii; brak zaznaczenia oznacza wszystkie kategorie.
- Wykluczenia. Pomijanie wybranych marek, dostawców (według domyślnego dostawcy produktu) oraz produktów o podanych numerach ID.
Kolumny i zestawy
- Wybór kolumn pliku produktów z podziałem na grupy: identyfikacja, kategorie, ceny i podatki, rabat, kody (EAN, UPC, ISBN, MPN), wymiary i waga, stany i dostępność, opisy i SEO, zdjęcia, cechy, akcesoria oraz produkt wirtualny.
- Cztery gotowe zestawy: „Pełny – przeniesienie do innego sklepu”, „Masowa edycja w tym sklepie”, „Ceny i stany” oraz „Opisy i SEO”.
- Kolumny ID i indeks są zawsze w pliku, ponieważ po nich import rozpoznaje produkt.
- Lista kolumn zależy od wersji docelowej. Po zmianie wersji w formularzu dostępne są tylko kolumny, które import tej wersji obsługuje.
Klucz produktu, kategorie i separatory
- Klucz produktu: ID produktu (import z opcją „Wymuś wszystkie numery ID”) albo indeks (import z opcją „Użyć indeksu produktu jako klucza”). Przy indeksie kolumny ID pozostają puste, a import kombinacji znajduje produkt po indeksie.
- Kategorie jako ID – przy imporcie do tego samego sklepu – albo jako ścieżki nazw (np. Odzież/Mężczyźni/Koszulki) przy imporcie do innego sklepu. Ścieżki są zapisywane w domyślnym języku sklepu, bo w tym języku import wyszukuje kategorie; brakujące kategorie import utworzy.
- Separator pól: średnik (domyślny, zgodny z Excelem w polskich ustawieniach), przecinek albo kreska pionowa.
- Separator wielu wartości: przecinek (domyślny w PrestaShop), kreska pionowa, krzyżyk, tylda albo daszek. Moduł nie pozwala ustawić tego samego znaku co separator pól.
Raport zgodności z importem PrestaShop
Import PrestaShop przerywa cały plik na pierwszym wierszu, którego nie potrafi zapisać, a część wartości zmienia bez ostrzeżenia. Moduł sprawdza podczas eksportu 34 rodzaje takich przypadków i zapisuje każdy z nich w osobnym pliku ostrzeżeń CSV (poziom, kod, ID produktu, ID kombinacji, kolumna, wartość, opis). Podsumowanie z przykładami jest widoczne w zakładce „Pliki i CRON”, z podziałem na błędy, ostrzeżenia i informacje.
- Wiersze, które import odrzuci: wartości niespełniające walidacji PrestaShop, produkty bez nazwy w języku profilu, kombinacje z brakującą nazwą atrybutu lub grupy atrybutów w domyślnym języku sklepu.
- Dane, których import nie przeniesie: ceny specyficzne inne niż jeden rabat dla całego katalogu, zawartość pakietów, etykiety pól personalizacji, pliki produktów wirtualnych.
- Wartości, które import zmieni: spacje na początku i końcu komórki, wartość „0” w cechach i tagach, rabat kwotowy netto (import tworzy go jako brutto), wpływ kombinacji na cenę jednostkową, nieprawidłowy kod EAN-13 kombinacji, ISBN kombinacji w wersjach 1.7 i 8.
- Konflikty separatorów i nazw: separator wielu wartości w treści, dwukropek w cechach i atrybutach, ukośnik w nazwie kategorii, powtarzające się nazwy kategorii, nazwy marek, dostawców lub kategorii będące liczbami.
- Problemy z kluczem: produkty i kombinacje bez indeksu, kombinacje z powtórzonym indeksem (import scaliłby je w jedną – moduł eksportuje tylko pierwszą), akcesoria bez indeksu.
- Znaki spoza UTF-8 są zastępowane znakiem „?”, aby pozostała część pliku zachowała polskie znaki.
Generowanie plików i CRON
- Generowanie z panelu. Przycisk „Generuj” na liście profili otwiera okno z paskiem postępu, liczbą przetworzonych produktów, liczbą wierszy obu plików i liczbą ostrzeżeń; generowanie można zatrzymać.
- Praca partiami. Produkty są przetwarzane partiami po 100, więc duży katalog nie przekracza limitu czasu jednego żądania.
- Wznawianie po przerwaniu. Jeśli przebieg zostanie przerwany, kolejne uruchomienie kontynuuje od ostatniej zapisanej partii, a plik wynikowy jest taki sam jak z przebiegu wykonanego za jednym razem.
- Bezpieczna publikacja. Nowe pliki zastępują poprzednie dopiero po ukończeniu generowania; do tego czasu link udostępnia ostatnie kompletne pliki. Dwa równoczesne przebiegi tego samego profilu są blokowane.
- Adres CRON dla wszystkich profili i dla każdego profilu osobno. Adres prowadzi przez kontroler modułu, dlatego działa także w PrestaShop 9, który blokuje bezpośrednie wywołania plików PHP w katalogu modułów.
- Kontynuacja przez CRON. Jeśli generowanie nie zmieści się w limicie czasu serwera, następne wywołanie CRON dokończy je od miejsca zatrzymania.
- Stan w nagłówku modułu. Nagłówek pokazuje, czy są aktywne profile, czy pliki są wygenerowane, kiedy ostatnio wywołano CRON i czy ostatni raport zawiera błędy lub ostrzeżenia.
Pobieranie plików i linki dla integracji
- Pobieranie w panelu pliku produktów, pliku kombinacji i pliku ostrzeżeń; przy plikach produktów i kombinacji widać liczbę wierszy i rozmiar.
- Publiczny link bez logowania do pliku produktów i pliku kombinacji, z tajnym tokenem osobnym dla każdego profilu. Link działa tylko dla aktywnego profilu.
- Unieważnianie linków. Przycisk „Nowy link do pobierania” tworzy nowy token profilu, a przycisk „Nowy token CRON” – nowy token adresów CRON; poprzednie adresy przestają działać.
- Pliki poza katalogiem głównym sklepu. Wygenerowane pliki są przechowywane w katalogu modułu chronionym plikiem
.htaccessi są wydawane tylko przez link z tokenem albo pracownikowi w panelu.
Format pliku i praca w Excelu
- UTF-8 z BOM, średnik, końce linii CRLF. Plik otwiera się w Excelu dwuklikiem z polskimi znakami.
- Kropka dziesiętna i daty w formacie bazy danych, tak jak oczekuje ich import PrestaShop. Do edycji cen najlepiej otworzyć plik przez Dane > Z pliku tekstowego/CSV z ustawieniami regionalnymi „Angielski (Stany Zjednoczone)”.
- Pierwszy wiersz to nagłówek z nazwami kolumn w języku profilu; na stronie importu ustawia się pominięcie jednego wiersza.
Panel administracyjny, uprawnienia i multistore
- Zakładki w menu Katalog: „Eksport CSV Pro” (lista profili), „Pliki i CRON” oraz „Format CSV”, dostępne z paska zakładek modułu.
- Uprawnienia PrestaShop. Dostęp do zakładek nadaje się w standardowych uprawnieniach profili pracowników; pracownik z prawem tylko do podglądu nie może generować plików ani zmieniać profili.
- Pracownicy ograniczeni do sklepów. Pracownik widzi i edytuje tylko profile sklepów, do których ma dostęp. Adresy CRON, nowy token CRON i usuwanie plików wersji 1.x są dostępne tylko dla pracowników z dostępem do wszystkich sklepów, ponieważ token CRON obsługuje każdy sklep.
- Tłumaczenie polskie w obu systemach tłumaczeń PrestaShop (słownik i katalogi XLF).
Zgodność, instalacja i aktualizacja
- PrestaShop 1.7.0–9.x, PHP 7.0–8.5 (zadeklarowana zgodność). Instalacja, generowanie plików i deinstalacja są sprawdzane automatycznie na PrestaShop 1.7.4.4, 1.7.5.2, 8.2.6, 9.0.2 i 9.1.5, a pełny cykl eksport → import → porównanie z bazą danych na PrestaShop 8.2.6 i 9.0.2.
- Bez zewnętrznych bibliotek i bez Composera.
- Aktualizacja z wersji 1.x. Moduł przenosi zapisane konfiguracje do profili, usuwa stare zakładki i punkty wejścia (
cron.php,get.php) oraz pokazuje w zakładce „Pliki i CRON” pliki CSV, które wersja 1.x zostawiła w katalogu głównym sklepu, aby można je było usunąć. - Deinstalacja usuwa tabele, ustawienia, zakładki, zapisane dopasowania importu i wygenerowane pliki modułu.
Ważne granice działania
- Moduł eksportuje dane; import wykonuje się standardowym importem CSV PrestaShop, który ma własne ograniczenia opisane w raporcie zgodności.
- Import PrestaShop rozpoznaje kombinacje wyłącznie po indeksie – kombinacje bez indeksu przy ponownym imporcie do tego samego sklepu utworzą duplikaty.
- W PrestaShop 8 i 9 plik kombinacji można zaimportować do sklepu, w którym produkty mają dostawcę, tylko raz; drugi import przerywa błąd bazy danych w rdzeniu PrestaShop.
- Od PrestaShop 8 import dodaje zmienioną wartość cechy obok dotychczasowej, zamiast ją zastąpić.
- Moduł nie eksportuje zamówień, klientów ani innych danych poza produktami i kombinacjami.
- Plik CSV nie jest zabezpieczony przed formułami arkusza kalkulacyjnego: wartości zaczynające się od znaku „=” są zapisywane bez zmian, aby import PrestaShop przeniósł je dokładnie.