# Import Export CSV i XML dla PrestaShop: kompletny przewodnik

> Przewodnik instalacji, konfiguracji i użytkowania modułu DF CSV & XML Pro dla PrestaShop 8 i 9: profile, wizualne mapowanie, formaty kolumn, źródła FTP/SFTP/URL, harmonogram cron, dzienniki i rozwiązywanie problemów.

- Strona: <https://www.datafirefly.com/pl/documentation/import-export-csv-xml-prestashop/>
- Język: pl
- Zaktualizowano: 2026-07-31
- Inne języki: [fr](https://www.datafirefly.com/documentation/import-export-csv-xml-prestashop/index.md), [en](https://www.datafirefly.com/en/documentation/import-export-csv-xml-prestashop/index.md), [es](https://www.datafirefly.com/es/documentation/import-export-csv-xml-prestashop/index.md), [de](https://www.datafirefly.com/de/documentation/import-export-csv-xml-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/import-export-csv-xml-prestashop/index.md), [pt](https://www.datafirefly.com/pt/documentation/import-export-csv-xml-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/import-export-csv-xml-prestashop/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

DF CSV & XML Pro to uniwersalny silnik importu i eksportu dla PrestaShop 8 i 9. Łączy dowolny plik CSV lub XML z Twoim sklepem dzięki wizualnemu mapowaniu kolumn, zapisuje każdą konfigurację w profilu wielokrotnego użytku i potrafi automatycznie pobierać strumienie od dostawców z FTP, SFTP lub adresu URL. Ten przewodnik obejmuje instalację, tworzenie profili, oczekiwane formaty kolumn, harmonogram cron, dzienniki i rozwiązywanie problemów.

## Instalacja

Przejdź do **Moduły > Menedżer modułów > Dodaj moduł**, wyślij plik `dfcsvpro.zip`, a następnie kliknij **Zainstaluj**. Po instalacji zakładka **DF CSV Pro** pojawia się w sekcji **Ustawienia zaawansowane**.

Moduł nie dodaje żadnego override do rdzenia PrestaShop i deinstaluje się bez pozostałości. Tworzone są dwie tabele (profile i dzienniki) oraz kilka zmiennych konfiguracyjnych, usuwanych przy deinstalacji.

## Tworzenie profilu

**Profil** opisuje kompletną operację: kierunek (import lub eksport), encję, format, źródło, mapowanie kolumn, opcje i harmonogram. Uruchamia się go jednym kliknięciem albo automatycznie przez cron. Kliknij **Nowy profil**: kreator przeprowadzi Cię przez cztery kroki.

### 1. Ogólne

Wybierz **kierunek** (import / eksport), **encję**, **format** (CSV lub XML) i docelowy **język**. Dla CSV ustaw separator (albo zostaw wykrywanie automatyczne), kodowanie (UTF-8, ISO-8859-1 lub Windows-1252), liczbę wierszy do pominięcia przed nagłówkiem oraz separator wielu wartości (domyślnie przecinek). Dla XML możesz wskazać węzeł elementu albo pozwolić modułowi go wykryć.

Encje dostępne przy **imporcie**: produkty, odmiany, kategorie, klienci, stany magazynowe i ceny. Przy **eksporcie**: produkty, kategorie, klienci, zamówienia.

### 2. Źródło

Wskaż, skąd pochodzi plik (import) albo gdzie zapisać wynik (eksport): **ręczne wgranie**, **URL** (HTTP/HTTPS), **FTP**, **SFTP** albo **ścieżka lokalna**. Przy FTP i SFTP podaj host, port, użytkownika i hasło, a następnie użyj przycisku **Testuj połączenie**, aby zweryfikować dane przed zapisem.

### 3. Wizualne mapowanie

Wczytaj przykładowy plik (albo pobierz go ze zdalnego źródła): moduł wykrywa kolumny, pokazuje podgląd pierwszych wierszy i automatycznie przypisuje każdą kolumnę do właściwego pola PrestaShop dzięki rozpoznawaniu francusko-angielskiemu (référence/SKU, prix/price, quantité/stock, EAN/gencod, TVA/VAT i tak dalej). Popraw przypisania w tabeli; każda kolumna pozostawiona jako „niezmapowana” jest po prostu pomijana.

**Klucz dopasowania** (krok 4) decyduje o tym, jak odnajdywany jest istniejący produkt: ID, referencja/SKU, EAN-13 albo MPN. Upewnij się, że odpowiadająca kolumna jest zmapowana.

### 4. Opcje i harmonogram

Określ zachowanie importu: tworzenie brakujących elementów, aktualizacja istniejących, tworzenie kategorii w locie, pobieranie zdjęć z adresów URL, zastępowanie lub zachowywanie istniejących zdjęć przy aktualizacji oraz rozmiar partii (wiersze przetwarzane w jednym wywołaniu AJAX). Opcjonalnie włącz **harmonogram** i wybierz częstotliwość (godzinowa, dzienna albo tygodniowa). Zapisz: profil pojawi się na liście, gotowy do uruchomienia lub zaplanowania.

## Formaty kolumn

Moduł rozumie formaty biznesowe PrestaShop. Oto konwencje oczekiwane w Twoich plikach:

| Pole | Oczekiwany format |
| --- | --- |
| Cena | Liczba dziesiętna, przecinek lub kropka: `19,90` albo `19.90` |
| Wartości logiczne (aktywny i podobne) | `1/0`, `yes/no`, `oui/non`, `true/false` |
| Kategorie | Nazwy lub ID rozdzielone separatorem wielu wartości (domyślnie `,`). Tworzenie w locie jako opcja. |
| Zdjęcia | Adresy URL rozdzielone separatorem wielu wartości. Pierwszy staje się zdjęciem głównym. |
| Cechy | `Nazwa:Wartość\|Nazwa:Wartość` |
| Odmiany | `Grupa:Wartość\|Grupa:Wartość` (na przykład `Rozmiar:M\|Kolor:Czerwony`) |
| Stawka VAT | Wartość liczbowa (na przykład `23`), powiązana z grupą podatkową kraju domyślnego |

### Odmiany

Kolumna atrybutów ma format `Grupa:Wartość|Grupa:Wartość`. Brakujące grupy i wartości atrybutów są tworzone automatycznie, a odmiana jest identyfikowana przez swój dokładny zestaw atrybutów, więc ponowne uruchomienie importu nie tworzy duplikatu. Produkt nadrzędny jest odnajdywany po referencji lub ID, zależnie od klucza dopasowania.

### Cechy

Użyj formatu `Nazwa:Wartość|Nazwa:Wartość`. Każda cecha i jej wartość są tworzone, jeśli jeszcze nie istnieją.

### Kategorie, zdjęcia i tagi

Te pola przyjmują wiele wartości rozdzielonych separatorem wielu wartości zdefiniowanym w profilu. W kategoriach możesz mieszać nazwy i ID; pierwsze wymienione zdjęcie służy jako główne.

## Źródła zdalne i bezpieczeństwo

Przy imporcie moduł pobiera plik z adresu URL (HTTP/HTTPS, w razie potrzeby z uwierzytelnianiem basic), serwera FTP (tryb pasywny lub aktywny), serwera SFTP albo ze ścieżki lokalnej ograniczonej do katalogu sklepu. Przy eksporcie może umieścić wygenerowany plik na FTP/SFTP albo w katalogu lokalnym, lub udostępnić go do pobrania.

**SFTP** wymaga rozszerzenia PHP `ssh2`. Jeśli brakuje go na Twoim hostingu, interfejs wyraźnie to sygnalizuje, a Ty możesz zamiast tego użyć FTP lub adresu URL.

Hasła FTP i SFTP są szyfrowane w bazie danych (AES-256-CBC, klucz wyprowadzony z klucza szyfrowania Twojego sklepu) i nigdy nie są zwracane do przeglądarki w postaci jawnej.

## Import partiami i wznawianie

Importy ręczne odbywają się kolejnymi partiami w AJAX, z paskiem postępu i licznikami w czasie rzeczywistym (OK / błędy / razem). Po każdej partii zapamiętywana jest dokładna pozycja: plik liczący kilkadziesiąt tysięcy wierszy importuje się bez wywołania timeoutu PHP, nawet na hostingu współdzielonym. W trybie cron przetwarzanie przebiega synchronicznie aż do ostatniego wiersza.

## Eksport

Utwórz profil eksportu, wybierając encję (produkty, kategorie, klienci, zamówienia), format (CSV lub XML) i pola do uwzględnienia. Wygenerowany plik jest udostępniany do natychmiastowego pobrania i (lub) automatycznie umieszczany w skonfigurowanym miejscu docelowym. Eksporty są generowane partiami, aby zachować wydajność przy dużych wolumenach.

## Harmonogram (cron)

Aby zautomatyzować profil, włącz jego harmonogram (krok 4), a następnie wywołuj adres URL crona modułu w regularnych odstępach. Przy każdym wywołaniu uruchamiane są wyłącznie profile, których częstotliwość upłynęła.

```
*/15 * * * * curl -s "https://twoj-sklep.pl/index.php?fc=module&module=dfcsvpro&controller=cron&token=TWOJ_TOKEN" > /dev/null
```

Dokładny adres URL i token znajdziesz w zakładce **Scheduling / Cron** modułu, wraz z przyciskiem do wygenerowania nowego tokenu. Dwa opcjonalne parametry:

- `&id_profile=N`: uruchamia wyłącznie wskazany profil.
- `&force=1`: pomija sprawdzenie częstotliwości i uruchamia profil natychmiast.

Sklep musi być dostępny, aby cron działał: tryb konserwacji blokuje kontrolery witryny, w tym ten endpoint.

## Dzienniki i alerty e-mail

Każde uruchomienie trafia do dziennika wraz ze statusem, licznikami i szczegółami błędów wiersz po wierszu (pierwsze 200). Zakładka **Logi** pokazuje historię i pozwala przejrzeć błędy danego importu. Gdy tylko import zakończy się niepowodzeniem lub zawiera błędne wiersze, na adres skonfigurowany w ustawieniach wysyłany jest automatycznie alert e-mail (szablon francuski lub angielski).

## Ustawienia

W zakładce **Ustawienia** włączasz lub wyłączasz alerty e-mail, ustawiasz adres odbiorcy, domyślny rozmiar partii oraz czas przechowywania dzienników (starsze wpisy są usuwane automatycznie). Tymczasowe pliki importu i eksportu są czyszczone po 48 godzinach.

## Format XML

Przy imporcie XML powtarzający się węzeł elementu jest wykrywany automatycznie (albo wskazany w profilu). Elementy są spłaszczane: zagnieżdżone węzły stają się kolumnami `rodzic/dziecko`, atrybuty stają się `@atrybut`, a powtórzone elementy otrzymują sufiksy `nazwa#1`, `nazwa#2`. Tak spłaszczone kolumny mapujesz następnie tak samo jak w CSV.

## Zgodność i uwagi techniczne

- Zgodny z PrestaShop 8.0 do 9.x, PHP 7.4 do 8.3, tryb wielosklepowy.
- CSV: automatyczne wykrywanie separatora, obsługa BOM, konwersja kodowań ISO-8859-1 i Windows-1252.
- Klienci importowani z hasłem haszowanym w bcrypt i przypisywani do grupy po nazwie.
- Brak override rdzenia; legacy AJAX korzysta z konwencji PS9.

## Rozwiązywanie problemów

**Interfejs modułu pozostaje pusty albo listy rozwijane się nie wypełniają.** Wyczyść pamięć podręczną PrestaShop, a następnie wymuś przeładowanie przeglądarki (Ctrl+Shift+R). Jeśli aktywny jest menedżer pamięci podręcznej lub CCC, wygeneruj zasoby ponownie.

**SFTP kończy się niepowodzeniem.** Sprawdź, czy rozszerzenie PHP `ssh2` jest zainstalowane na serwerze; w przeciwnym razie użyj FTP lub adresu URL.

**Cron się nie uruchamia.** Sprawdź token, upewnij się, że sklep nie jest w trybie konserwacji, oraz że profil ma włączony harmonogram i automatyczne źródło (profili z ręcznym wgraniem nie da się zaplanować).

**Część wierszy jest błędna.** Otwórz szczegóły dziennika: każdy błąd wskazuje numer wiersza i przyczynę (brak kolumny klucza, nieprawidłowa wartość i tak dalej).
