Bezpieczny import i synchronizacja produktów PrestaShop

Importuj produkty i kombinacje, prawidłowo mapuj ceny i zapasy, diagnozuj częściowe błędy i sprawdzaj feedy dostawców przed wprowadzeniem zmian w sklepie.

mypresta.rocks · Zaktualizowano 2026-11-01

Wybierz metodę importu dopasowaną do Twoich danych i częstotliwości ich zmian. Najpierw zmapuj identyfikację, ceny, kombinacje i zapasy, a następnie zadbaj o możliwość wznowienia zadania, zanim uruchomisz je na produkcyjnym katalogu. Uzgodnij, który system odpowiada za każde pole, i przećwicz przebieg na kopii testowej: właściwa ścieżka zależy od Twojego katalogu, dostawców i innych systemów, które do niego zapisują.

Jak byśmy do tego podeszli

Ścieżka zależy od istniejącego katalogu i jakości danych, plików danych od dostawców, zainstalowanych modułów, integracji i wymagań motywu oraz od tego, które pola pracownicy utrzymują ręcznie. Przy jednorazowym wczytaniu arkusza najpierw przetestowalibyśmy natywny importer CSV na kopii testowej, korzystając z przykładowego formatu tego sklepu. Przy cyklicznych aktualizacjach od dostawców oceń sprawdzony moduł synchronizacji plików danych, zanim zlecisz skrypt API. Przy eksportach zacznij od pól wymaganych przez system odbierający. Przy dwukierunkowym połączeniu z ERP określ odpowiedzialność za dane, konflikty i odtwarzanie, zanim wybierzesz interfejs.

ZadanieŚcieżka początkowaDecyzja do podjęcia
Jednorazowe wgranie produktów lub kombinacjiNatywny importer CSV ze sprawdzonym mapowaniem.Czy zainstalowany importer obsługuje wymagane pola i sposób aktualizacji?
Cykliczne stany magazynowe, ceny lub treści od dostawcySprawdzony moduł synchronizacji plików danych.Za które pola odpowiada każdy dostawca, a co musi pozostać pod ręczną kontrolą?
Eksport produktów lub plik danych dla marketplaceNarzędzie eksportu dopasowane do miejsca docelowego.Jakich pól, przekształceń, języków, walut i harmonogramu wymaga odbiorca?
Dwukierunkowe połączenie z ERP lub PIM albo kontrakt źródła nieobsługiwany przez żadne narzędzieIntegracja o określonym zakresie korzystająca z interfejsów potwierdzonych dla zainstalowanego sklepu.Kto zarządza każdą wartością, jak rozwiązywane są konflikty i jak bezpiecznie wznowić pracę po błędzie?
Masowa korekta cen detalicznych lub hurtowychDedykowane narzędzie cenowe, jeśli cała potrzeba sprowadza się do obliczeń.Czy korekta z podglądem może zastąpić eksport i ponowny import?

Jeśli proces wymaga osobnej integracji, nasza usługa PrestaShop Custom Module Development Service zaczyna się od pisemnej specyfikacji obejmującej reguły biznesowe, połączenia, wykluczenia i kryteria odbioru, a następnie stałej wyceny; opłaty podmiotów zewnętrznych i zmiany infrastruktury są rozliczane osobno.

Wybierz CSV, API lub cykliczny feed

Użyj sekcji Zaawansowane > Import dla przygotowanego CSV i jednorazowego lub okazjonalnego wczytywania. Użyj procesu integracyjnego, gdy potrzebujesz cyklicznej synchronizacji dostawcy lub ERP, niezawodnych ponowień albo przekształceń trudnych do utrzymania w arkuszu. PIM może zarządzać bogatszymi danymi katalogowymi, ale nadal wymaga przetestowanego mapowania do PrestaShop.

Natywny importer CSV nie przyjmuje dowolnego pliku XML od dostawcy. Przekonwertuj taki plik do formatu CSV wybranego typu danych, użyj konektora, który wyraźnie obsługuje jego strukturę, lub napisz integrację z dostępnym API. Zagnieżdżone warianty, powtarzane wartości obrazów i pola językowe wymagają przemyślanego mapowania; zmiana rozszerzenia pliku nie konwertuje danych. Moduł zaplanowanych eksportów lub plików danych może tworzyć cykliczne pliki dla marketplace; ręczny eksport z listy katalogu nie jest pełną kopią zapasową.

Wybierz między tymi podejściami na podstawie reprezentatywnej próby i potrzeb operacyjnych. Sam rozmiar katalogu nie wyznacza metody. Na wydajność wpływają pobieranie obrazów, kombinacje, hooki, limity serwera i jakość danych. Zacznij od reprezentatywnej próbki zawierającej znaki diakrytyczne, wiele kategorii, warianty i obrazy. Dobierz wielkość partii na podstawie zmierzonych czasów ukończenia.

Gdy import jest częścią przenosin do nowego sklepu, zwykle ścieżką jest czysty sklep docelowy na środowisku testowym, wypełniony przez przećwiczoną migrację danych, a następnie zaplanowane przełączenie. Obsługę kont, zamówień i adresów URL właściwą dla migracji opisuje poradnik migracji platformy.

Uzgodnij odpowiedzialność za pola przed importem

Zapisz, który system odpowiada za każde pole: dostawca, Twój ERP lub PIM, czy pracownicy w panelu administracyjnym. Przebieg powinien zmieniać tylko pola, za które odpowiada. Opisy napisane przez pracowników, Twoje własne zdjęcia i zatwierdzona cena sprzedaży pozostają chronione, chyba że uzgodniona reguła mówi inaczej.

Poniżej znajduje się przykładowa specyfikacja mapowania, a nie plik CSV do importu ani obietnica, że dane narzędzie udostępnia takie nazwy pól:

Wartość źródłowaUzgodnione miejsce doceloweReguła
Dostawca A + SKU MUG-BLUEIstniejący indeks produktu MUG-BLUE, sklep MainAktualizuj dopiero po jednym jednoznacznym dopasowaniu; brak dopasowania lub wiele dopasowań wstrzymaj do sprawdzenia.
Produkt nadrzędny TEE + wariant TEE-BLUE-MZmapowana kombinacja pod zmapowanym produktem nadrzędnymNie używaj samego indeksu produktu nadrzędnego do identyfikacji wariantu.
available_qtyUzgodnione pole stanu magazynowegoPotwierdź, czy dostawca podaje stan fizyczny czy dostępny do sprzedaży i jak wpływają na niego zamówienia sklepu.
net_cost + currencyPole kosztu, z osobno zatwierdzoną regułą ceny detalicznejPotwierdź format dziesiętny, walutę, sposób uwzględniania podatku i zaokrąglenia przed aktualizacją ceny.
description i adresy URL obrazówPozostaw bez zmian w tym uruchomieniuChroń treści napisane przez pracowników i istniejące obrazy; nie mapuj pól, za które dostawca nie odpowiada.

Obok zapisz reguły tworzenia, aktualizacji i brakujących rekordów, osobno dla produktów nadrzędnych, kombinacji i każdego sklepu. Uzgodnij, czy pusta komórka oznacza pozostawienie wartości bez zmian, jej wyczyszczenie czy odrzucenie wiersza. Rozwiąż zdublowane indeksy, puste identyfikatory, nieznane produkty nadrzędne i brakujące kategorie przed zastosowaniem partii.

Przy połączeniu dwukierunkowym uzgodnij też, jak późniejsza sprzedaż w sklepie współgra ze starszą aktualizacją stanu z ERP. Poproś programistę o pokazanie kolejności, rozwiązywania konfliktów i odtwarzania, zamiast pozwolić, by przypadkową regułą stało się to, który zapis dotrze ostatni.

Przygotuj CSV i zmapuj pola

  1. Zachowaj nienaruszoną kopię pliku źródłowego i wszystkie poprawki wprowadzaj na kopii.
  2. Pobierz przykładowy plik dla typu danych wybranego na rzeczywistym ekranie Import. Dostępne pola różnią się według typu i wydania.
  3. Zapisz jako UTF-8. Wbudowany importer PrestaShop 1.7.8 i 9.1 automatycznie pomija znacznik kolejności bajtów UTF-8. Usuwanie BOM nie jest wymaganą naprawą tego importera.
  4. Ustaw separator pól i separator wielu wartości zgodnie z plikiem. Domyślnym separatorem pól jest średnik. Ujmuj w cudzysłowy pola zawierające separator, wewnętrzne cudzysłowy lub podziały wierszy, stosując reguły zapisu CSV.
  5. Jawnie zmapuj kolumny, pomiń wiersz nagłówka i zapisz nazwane mapowanie, jeśli użyjesz go ponownie. Przed startem sprawdź język, kontekst sklepu i wszystkie opcje destrukcyjne.
  6. Uruchom małą próbkę i sprawdź rzeczywiste produkty. Oprócz składni CSV sprawdź mapowanie podatku, identyfikatorów i zapasów na zaimportowanych produktach.
Active;Name;Reference;Price tax excluded;Tax rule ID;Quantity
1;Blue widget;WIDGET-BLUE;100.00;1;12

To przykładowy nagłówek, a nie automatyczny kontrakt mapowania. Zmapuj każdą kolumnę w swojej instalacji. Przy wczytywaniu źródła do arkusza kalkulacyjnego ustaw indeksy, GTIN i kody pocztowe jako tekst, zanim automatyczna konwersja usunie zera wiodące lub zmieni długie identyfikatory. Porównaj zapisany plik z oryginałem, aby potwierdzić, że zera wiodące i długie indeksy przetrwały. Kodowanie w Excelu zależy od wybranego formatu eksportu i platformy; sprawdź wynikowy plik, na przykład na nazwie produktu ze znakami diakrytycznymi, zamiast ufać etykiecie eksportu. Zanim zmienisz końce linii CRLF, zbadaj nieudany wiersz.

Cudzysłowy mają znaczenie, gdy tylko wartość zawiera separator. Ten fragment pliku dostawcy ilustruje wyłącznie ujmowanie w cudzysłowy; nie jest natywnym szablonem importu:

supplier_sku;description
MUG-BLUE;"Blue mug; gift range"

Średnik w opisie musi pozostać częścią tej wartości. Otwórz plik z zamierzonymi ustawieniami parsowania i przed mapowaniem potwierdź, że każdy wiersz ma oczekiwaną liczbę kolumn.

Importuj kategorie przed przypisaniem do nich produktów. Zachowuj jawne mapowanie kategorii. Sprawdź, czy wybrane pole przyjmuje ID czy nazwę i czy nieznana nazwa tworzy kategorię. Nie traktuj dowolnych kolumn encji jako zamiennych identyfikatorów.

Aktualizuj istniejące produkty i importuj kombinacje

Zdecyduj, czy rekord aktualizuje istniejący produkt czy tworzy nowy. W PrestaShop 1.7.8 i 9.1 dopasowanie według indeksu produktu wymaga włączenia opcji dopasowania indeksów. Aby dopasować kolumnę ID produktu, włącz „Wymuś wszystkie numery ID”: bez tego importer produktów odrzuca ID przed dopasowaniem. Po włączeniu nieistniejący ID może utworzyć produkt z tym ID. Przed importem sprawdź każdy docelowy ID i indeks oraz odrzucaj niejednoznaczne indeksy.

Najpierw importuj produkty nadrzędne, potem wykonaj osobny przebieg Kombinacje. Dla produktu nadrzędnego podaj docelowy ID produktu lub włącz dopasowanie indeksów i podaj indeks produktu. Własny SKU/indeks kombinacji różni się od indeksu produktu nadrzędnego.

  1. Mapuj osie wariantów, takie jak Rozmiar i Kolor, na grupy atrybutów i ich wartości. Przed utworzeniem kombinacji sprawdź nazwy i wartości atrybutów pod kątem niespójnej pisowni.
  2. Mapuj opisowe specyfikacje, które nie wybierają wariantu, na cechy.
  3. Ustaw indeks każdej kombinacji, indeks dostawcy, identyfikatory, zapasy oraz wpływ na cenę/masę według potrzeb.
  4. Użyj flagi domyślnej w imporcie kombinacji dla zamierzonej kombinacji domyślnej.
  5. Sprawdź wybieralną wartość, cenę końcową, zdjęcie i ilość każdego zaimportowanego wariantu.

Na przykład jeśli cena netto produktu nadrzędnego wynosi 100 EUR, a wariant ma kosztować 120 EUR netto, jego wpływ na cenę wynosi 20 EUR. Nie importuj pełnych 120 EUR jako tego wpływu. Przetestuj drugi import, aby potwierdzić, że aktualizuje zamierzone rekordy zamiast je duplikować. Sprawdź regułę dopasowania na istniejącym produkcie i istniejącym wariancie, a następnie uruchom ponownie tę samą próbkę i sprawdź chronione opisy, obrazy i ceny oraz liczbę duplikatów.

Mapuj podatki, ceny i zapasy we właściwym zakresie

Wbudowany importer udostępnia osobne pola Cena netto i Cena brutto. Użyj pola odpowiadającego źródłu. Przy imporcie cen brutto potwierdź stawkę podatku używaną do wyliczenia zapisanej ceny bazowej. Przypisz właściwą grupę reguł podatkowych i sprawdź sumy koszyka dla kraju przeznaczenia. Zmapowanie 120 EUR brutto jako 120 EUR netto nie staje się poprawne tylko przez wybranie grupy podatkowej.

Oddzielaj koszt zakupu od dostawcy, cenę sprzedaży, przeliczenie waluty, rabaty i opodatkowanie. Sprawdzaj efektywne ceny sprzedaży po kombinacjach, cenach specjalnych i rabatach katalogowych, zamiast polegać tylko na kolumnie ceny bazowej.

Jeśli zadanie sprowadza się do masowej korekty cen, Mass Price Updater oferuje korekty procentowe lub kwotowe cen detalicznych lub hurtowych, obowiązkowy podgląd i zapis poprzednich wartości do sprawdzonego przywrócenia, bez eksportu i ponownego importu. To inne zadanie niż synchronizacja katalogu dostawcy.

Zapasy należą do stock_available. Używaj usług zapasów PrestaShop, StockAvailable lub obsługiwanego zasobu API zamiast bezpośrednio aktualizować starsze pole ilości produktu. Prawidłowe operacje magazynowe powiadamiają też odpowiednie hooki.

Ogranicz ceny do zamierzonego rekordu product_shop. Ogranicz zapasy do sklepu lub grupy sklepów współdzielących zapasy. Ilości kombinacji wymagają własnych identyfikatorów atrybutów produktu; wiersz poziomu produktu nie jest dodatkową pulą zapasów dodawaną do wszystkich kombinacji.

Ustawienie out_of_stock wybiera odmowę, zezwolenie lub dziedziczenie. Dziedziczone zachowanie odczytuje PS_ORDER_OUT_OF_STOCK we właściwym kontekście konfiguracji. Zerowa ilość nadal może pozwalać na zakup, jeśli zamawianie bez zapasu jest dozwolone.

Obsługuj obrazy i duże importy

Wbudowany importer przetwarza partie offset/limit. Nie musi pobierać wszystkich obrazów w jednym długim żądaniu. Wolny lub uszkodzony obraz zdalny nadal może wyczerpać limity jednej partii.

  1. Najpierw importuj podstawowe dane produktów bez zdjęć i sprawdź je.
  2. Jeśli wybrany importer obsługuje osobny przebieg aktualizacji obrazów, przećwicz go z wymaganymi polami i sprawdzoną regułą dopasowania przed zastosowaniem. Sprawdź dostęp zdalny, certyfikaty, przekierowania, rozmiar obrazów i miejsce na dysku serwera. Przećwicz ten przebieg bez usuwania i potwierdź, że jego ponowne uruchomienie nie dodaje niechcianych kopii.
  3. W razie potrzeby użyj opcji pominięcia regeneracji miniatur, a następnie wygeneruj potrzebne miniatury po imporcie. Zachowaj formaty obrazów wymagane przez motyw.
  4. Używaj „Usuń istniejące zdjęcia” tylko przy zaplanowanej wymianie: opcja może usunąć zdjęcia dodane ręcznie do dopasowanych produktów.
  5. Zmierz, czy dominują pobieranie, zmiana rozmiaru, zapis bazy, hooki czy indeksowanie. Jeśli wstrzymasz automatyczne indeksowanie wyszukiwania podczas kontrolowanego importu, później przebuduj odpowiednie indeksy wyszukiwania i filtrowania.

Sprawdź upload_max_filesize, post_max_size, memory_limit, max_execution_time oraz max_input_time. Przy przesyłaniu multipart sprawdź też właściwe limity liczby plików. Limity czasu zakończenia PHP-FPM, limity czasu odczytu serwera WWW/proxy i limity żądań CDN są osobnymi ograniczeniami. Zwiększenie jednej wartości PHP nie znosi wszystkich pozostałych.

Proces CLI lub cron usuwa żądanie przeglądarki z procesu, ale nadal ma limity pamięci, wykonania i operacyjne. Nie zakładaj istnienia wbudowanego polecenia prestashop:import. Sprawdź dostępne polecenia instalacji lub użyj utrzymywanego importera ze wskazanym procesem roboczym.

Przećwicz symulację i selektywne wycofanie zmian

Przećwicz rutynowe importy na odizolowanej kopii testowej sklepu produkcyjnego. Przy migracji ćwicz na opisanym wyżej czystym sklepie docelowym. Udany import nie oznacza, że zmiany są poprawne dla Twojej działalności: sprawdź strony produktów, kombinacje i sumy w koszyku.

  1. Przygotuj odtwarzanie. Wykonaj kopię zapasową bazy danych, plików i obrazów, sprawdź, czy odtworzenie jest możliwe, i korzystaj ze środowiska testowego. Odizoluj kopię od prawdziwych płatności, wiadomości do klientów, dostawców i systemów realizacji zamówień.
  2. Zbuduj reprezentatywną próbkę. Poza znakami diakrytycznymi, wieloma kategoriami, wariantami i obrazami uwzględnij istniejący produkt, nowy produkt, brakujące identyfikatory, podejrzaną cenę i nieudany obraz oraz odpowiednie przypadki języków i sklepów.
  3. Przejrzyj proponowane zmiany. Korzystaj z podglądu narzędzia, jeśli jest dostępny. W przeciwnym razie porównaj stan środowiska testowego przed i po; nie nazywaj nieprzejrzanego importu produkcyjnego symulacją. Policz utworzenia, aktualizacje, wykluczenia i błędy.
  4. Sprawdź sklep. Obejrzyj rzeczywiste strony produktów, kombinacje, dostępność, obrazy i sumy koszyka, a także log importu. Potwierdź, że chronione pola pozostają bez zmian i że ponowienie jest bezpieczne.
  5. Sprawdź możliwość wycofania. Przećwicz udokumentowane wycofanie zmian w narzędziu lub odtworzenie w ograniczonym zakresie. Uwzględnij późniejsze zmiany pracowników i zamówienia, aby odtworzenie nie nadpisało nowszych danych biznesowych.
  6. Uruchom zmierzoną partię. Dobierz jej wielkość na podstawie zmierzonego czasu ukończenia na środowisku testowym. Przed kontynuacją uzgodnij liczby, błędy i zmienione wartości, a jeśli wyniki odbiegają od uzgodnionych reguł, wstrzymaj harmonogram.

Pełne odtworzenie bazy danych w działającym sklepie może usunąć nowsze zamówienia i płatności. Przed każdą operacją destrukcyjną uzgodnij, jak zostaną one zachowane; zachowane wartości z pliku danych też nie zastępują odtwarzalnej kopii zapasowej sklepu. Nie usuwaj produktów, nie przycinaj formatów obrazów ani nie podnoś limitów serwera jako pierwszej reakcji na nieudany import.

Co powinna przekazać agencja

  • Mapowanie odpowiedzialności za pola i identyfikacji, obejmujące produkty, warianty, sklepy i języki.
  • Przetestowane operacje importera lub API, formaty źródeł i uprawnienia, bez danych dostępowych w zwykłych logach przebiegów.
  • Dowody dla przypadków duplikatów, pustych wartości, brakujących rekordów, podejrzanych cen, odrzuconych wierszy i przerwanych przebiegów, a także uzgodnione warunki zatrzymania i to, co dzieje się, gdy dwa przebiegi się nakładają.
  • Osobę odpowiedzialną za harmonogram, sposób alarmowania o błędach, procedurę wznowienia i przećwiczone kroki odzyskiwania chroniące późniejsze zamówienia i zmiany.

Jeśli szerszym problemem jest odpowiedzialność za stany magazynowe, zobacz poradnik zarządzania zapasami. Integracja powinna odpowiadać uzgodnionemu procesowi operacyjnemu.

Diagnozuj nieudany lub częściowo ukończony import

  1. Zapisz nieudany plik, mapowanie, opcje, czas i ostatnie potwierdzone rekordy. Wstrzymaj zaplanowane lub nakładające się przebiegi, które mogłyby zapisywać do tych samych rekordów. Przed naprawą wykonaj kopię zapasową.
  2. Sprawdź dzienniki błędów aplikacji, PHP-FPM i serwera WWW. Używaj faktycznych ścieżek skonfigurowanych dla instalacji; var/logs/ jest częstą lokalizacją dzienników aplikacji.
  3. Jeśli zawodzi ten sam wiersz, wyodrębnij go i sprawdź wymagane wartości, separatory, cudzysłowy, kodowanie, odwołania do kategorii i URL-e zdjęć.
  4. Jeśli awaria zależy od czasu lub wielkości partii, zmierz błędne żądanie i porównaj wszystkie limity czasu i pamięci.
  5. Sprawdź bazę i sklep, aby ustalić zapisane rekordy. Pusta strona lub błędna partia nie oznaczają, że nie zapisano żadnych wierszy.
  6. Wznawiaj za pomocą stabilnych indeksów lub zmapowanych ID. Uzgodnij niejednoznaczne rekordy przed ponowieniem. Nie włączaj usuwania katalogu jako obejścia niepełnego importu.
  7. Napraw niepełne obrazy, flagi aktywności lub powiązania i przebuduj odpowiednie indeksy po ostatniej partii.
Co widziszCo sprawdzić najpierwKontrolowany następny krok
„Właściwość X jest pusta” lub kategoria zostaje odrzucona.Wskazane pole wymagane i jego mapowanie, wymagane wartości odrzuconego wiersza oraz kategorię docelową.Popraw mapowanie; nie zakładaj, że importer utworzy zamierzoną kategorię.
Błędne znaki diakrytyczne lub przesunięte kolumny.Kodowanie źródła przed jakąkolwiek konwersją, a następnie separatory, cudzysłowy i obsługę nagłówka w surowym pliku.Popraw kopię i przetestuj reprezentatywne wiersze na środowisku testowym przed kolejną partią.
Ceny różnią się od arkusza.Odczyt liczb dziesiętnych, koszt a cenę sprzedaży, walutę, sposób uwzględniania podatku i aktywne reguły cenowe.Porównaj zmapowaną wartość ze stroną produktu i koszykiem w zamierzonym kontekście klienta.
Widać tylko część partii lub obrazy się nie wczytują.Logi przebiegu, poprawnie zastosowane identyfikatory, dostęp do zdalnych obrazów i zmierzone zużycie zasobów.Wznów od uzgodnionych wyników ze sprawdzoną regułą dopasowania, bez usuwania poprawnie wykonanej pracy.
Niewidoczne produkty.Status aktywności, powiązania ze sklepami i kategoriami, widoczność i indeksowanie.Przed zmianą danych odróżnij problem z samą stroną produktu od problemu z wyszukiwaniem lub listą; ponowne indeksowanie nie jest uniwersalną naprawą.
Powtarzające się duplikaty.Klucz aktualizacji i jego unikalność.Wstrzymaj zaplanowane przebiegi, porównaj klucze źródłowe duplikatów i sprawdź poprawioną regułę dopasowania na środowisku testowym przed ponownym uruchomieniem.

Eksportuj właściwy sklep, język i zapasy

Przydatny eksport SQL musi uwzględniać zakres sklepu i języka. Poniższy przykład tylko do odczytu eksportuje zbiorcze ilości produktów dla sklepu 1 i języka 1, gdy sklep ma własne zapasy. Zastąp prefiks tabel i ID odpowiednimi dla instalacji.

SELECT p.id_product, pl.name, p.reference,
       ps.price AS price_tax_excluded, sa.quantity
FROM ps_product p
JOIN ps_product_shop ps
  ON ps.id_product = p.id_product AND ps.id_shop = 1
JOIN ps_product_lang pl
  ON pl.id_product = p.id_product
 AND pl.id_shop = 1 AND pl.id_lang = 1
LEFT JOIN ps_stock_available sa
  ON sa.id_product = p.id_product
 AND sa.id_product_attribute = 0
 AND sa.id_shop = 1 AND sa.id_shop_group = 0;

Dla współdzielonych zapasów wybierz rzeczywisty wiersz grupy współdzielenia, zwykle id_shop = 0 i właściwe id_shop_group. Nie dodawaj luźnego OR łączącego oba zakresy. Dla zapasów wariantów osobno eksportuj rekordy kombinacji i ich indeksy. Sprawdź relację ilości zbiorczych do tych rekordów.

Zapytanie zwraca zapisaną cenę bazową, która niekoniecznie jest kwotą płaconą przez klienta po uwzględnieniu podatku, wpływu kombinacji i cen specjalnych. Jeśli do takiego pobrania danych w trybie tylko do odczytu używasz Menedżera SQL, poproś programistę o sprawdzenie złączeń oraz zakresu sklepu, języka i kombinacji.

Używaj cyklicznego eksportu pliku danych, gdy miejsce docelowe potrzebuje aktualnych cen i dostępności według harmonogramu. Wymaga to generatora, harmonogramu, kontroli dostarczenia i osoby odpowiedzialnej za błędy; wymagania miejsc docelowych opisuje poradnik plików produktowych. Eksporty zamówień i faktur to osobne zbiory danych (zobacz eksporty zamówień i faktur). Ani lista produktów, ani to zapytanie nie zapewniają odtwarzalnej kopii zapasowej bazy danych.

Spisz kontrakt eksportu przed jego zbudowaniem

Nie zakładaj, że eksport listy produktów zawiera kombinacje, obrazy, przetłumaczone treści lub ceny potrzebne w miejscu docelowym. Zdecyduj, czy każdy wiersz reprezentuje produkt nadrzędny, czy kombinację dostępną do sprzedaży, i określ jego sklep oraz język. Określ, jakiej ceny potrzebuje odbiorca, w tym waluty, podstawy podatkowej i ewentualnego kontekstu grupy klientów. Uwzględnij wymagania dotyczące dostępności, obrazów i miejsca docelowego w próbce akceptowanej przez system odbierający i porównuj każdy przykładowy eksport z tą pisemną listą pól. Przy zaplanowanym pliku danych sprawdzaj aktualność i zawartość dostarczonego pliku, a nie tylko to, czy zadanie zgłasza sukces.

Prawidłowo używaj żądań XML i odpowiedzi JSON

Starszy Webservice i Admin API PrestaShop 9 są różnymi interfejsami. Starszy Webservice w PrestaShop 1.7.8 i 9.1 przyjmuje zapis encji XML i może zwracać JSON przez output_format=JSON. Nie potrzebujesz nowszego API tylko po to, aby otrzymywać odpowiedź JSON.

GET /api/products?display=full&output_format=JSON
GET /api/products?schema=blank

Włącz starszą usługę w Zaawansowane > Webservice i nadaj tylko wymagane uprawnienia do zasobów. Chroń klucze i używaj HTTPS. Nie umieszczaj kluczy w plikach udostępnianych dostawcom. Przed budowaniem żądań sprawdź schemat docelowego zasobu i potwierdź dokładne wydanie, zainstalowane rozszerzenia, uprawnienia i akceptowany format zapisu dla każdego potrzebnego zasobu. Odpowiedź w JSON nie dowodzi, że zapisy w JSON są akceptowane, a inne API może nie udostępniać każdego potrzebnego zasobu.

Implementacje żądań PrestaShop 1.7.8 i 9.1 przechodzą przez wiele encji XML w żądaniu zapisu. Nie jest to obietnica atomowej transakcji zbiorczej. Wcześniejsze encje mogą zostać zapisane przed późniejszym błędem walidacji lub powiązania. Przetestuj obsługę wielu encji dla dokładnego wydania i zasobu.

Rejestruj ID przebiegu, klucz źródła, ID celu, operację i oczyszczoną odpowiedź. Przy przekroczeniu czasu lub niejednoznacznym błędzie pobierz stan celu przed ponownym tworzeniem. Ponawiaj przejściowe błędy z ograniczonym narastającym opóźnieniem. Napraw błędy uwierzytelniania, uprawnień, schematu i walidacji przed ponowieniem. Nie zakładaj, że każde HTTP 500 można bezpiecznie powtórzyć.

Do obrazów binarnych używaj obsługiwanego punktu końcowego przesyłania obrazów produktów. Planuj produkty, kombinacje, powiązania i zapasy jako powiązane operacje z punktami kontrolnymi i testuj osobno operacje na produktach, kombinacjach, zapasach i obrazach w zainstalowanym sklepie. Mierz przepustowość i respektuj limity hostingu lub WAF; stałe opóźnienie między żądaniami nie przewiduje łącznego czasu przebiegu.

Stosuj kontrolowane aktualizacje od dostawców i planuj je bezpiecznie

Smart Wholesaler Feed Sync zaczyna od źródła, testu połączenia i mapowania kolumn próbki. Jego opis produktu obejmuje zarządzane pola, priorytety dostawców, reguły cenowe i ochronę wartości ręcznych lub zamrożonych. Aktualizacje zabezpieczają przegląd przed i po, limity działań i kwarantanna podejrzanych cen; każdy plik danych ma własny harmonogram, a zastosowane przebiegi zachowują poprzednie wartości do wycofania zmian.

Przed wyborem potwierdź, że Twój format źródła, uwierzytelnianie i wymagane pola są obsługiwane. Zdecyduj, co się dzieje, gdy plik się spóźnia, jest pusty lub niekompletny, gdy kilku dostawców pasuje do tego samego produktu i gdy cena zostaje odrzucona. Według opisu bezpieczne aktualizacje stanów i treści mogą być kontynuowane, podczas gdy podejrzana cena dostawcy pozostaje bez zmian. Zachowane poprzednie wartości pozwalają na selektywne wycofanie zmian wprowadzonych przez to narzędzie; nie są odtwarzalną kopią zapasową sklepu i same nie rozstrzygają konfliktów z późniejszymi zmianami pracowników.

Cena dostawcy się zmienia, ale Twój opis powinien pozostać

Masz przepisany opis MUG-BLUE i własne zdjęcia. Plik dostawcy zawiera nowy koszt, informacje o stanie magazynowym i starszy opis. Uzgodniony przebieg zarządza kosztem dostawcy i jego zdefiniowanym udziałem w stanie magazynowym; Twoje zmienione treści pozostają chronione. Cena detaliczna zmienia się wyłącznie zgodnie z zatwierdzoną regułą cenową.

Teraz dostawca przysyła podejrzaną cenę. Przejrzyj odrzuconą kwotę i powód, sprawdzając jednocześnie, czy dozwolone aktualizacje przebiegły zgodnie z uzgodnioną polityką. Jeśli plik jest ucięty, wstrzymaj go do sprawdzenia, zamiast traktować brak danych jako zmianę stanów w całym katalogu. Zachowaj plik źródłowy i zapis przebiegu, aby pracownicy mogli wyjaśnić, które wartości się zmieniły i dlaczego.

Cron Manager może planować zadania w tle i pokazywać wyniki oraz błędy. To narzędzie do planowania: nie zapewnia mapowania importu ani nie zamienia nieobsługiwanego pliku danych w konektor. Potwierdź, że wybrany importer udostępnia zgodne zadanie, i nie dodawaj kolejnego harmonogramu, jeśli narzędzie do plików danych już planuje to zadanie.

Zatrzymuj błędne dane dostawców przed publikacją

Udokumentuj zasady identyfikacji produktów w danych dostawcy. Identyfikator nadany przez dostawcę może być stały lub używany ponownie. GTIN, MPN lub indeks sprzedawcy może być nieobecny, powielony lub przypisany na innym poziomie. Dopasowuj we właściwym zakresie dostawcy, producenta, produktu/kombinacji i sklepu. Odrzucaj niejednoznaczne dopasowania.

Niezależnie sprawdzaj wymagane długości GTIN i cyfry kontrolne. W modelu produktu PrestaShop 1.7.8 i modelu kombinacji 9.1 pole ean13 używa isEan13(), które przyjmuje do 13 cyfr. Model produktu PrestaShop 9.1 używa zamiast tego isGtin(), którego wzorzec przyjmuje do 14 cyfr. Żaden wzorzec sam nie sprawdza wymaganego zbioru długości GTIN ani cyfry kontrolnej. Pola MPN nie są dostępne w każdej starszej wersji, w tym standardowej 1.6.1.24.

  1. Zapisz pobrany plik w obszarze przygotowawczym. Sprawdź ukończenie transferu, oczekiwaną sumę kontrolną, jeśli podana, znacznik czasu źródła i wyniki parsowania.
  2. Zapisuj początek/koniec przebiegu, dostawcę, liczbę wierszy, poprzednią liczbę, sumę kontrolną, status i przyczynę odrzucenia.
  3. Odrzucaj niewiarygodne zmiany lub ucięty plik przed zastosowaniem usunięć. Brak wiersza oznacza wycofanie tylko wtedy, gdy zasady danych źródłowych tak stanowią.
  4. Stosuj minimalne ceny i zabezpieczenia zmian ilości przed publikacją. Alarmuj o odrzuconych zmianach zamiast bezgłośnie podstawiać odgadniętą wartość.
  5. Zapisuj wartości przed/po i docelowe ID. Sprawdzaj zmiany przed przekazaniem do marketplace.
  6. Oddzielaj wycofane zapasy dostawcy od rzeczywistych zapasów lokalnych. Sprzedawaj pozostały zapas tylko zgodnie z zamierzoną polityką dostępności.

Oddziel brak informacji od polecenia jej wyczyszczenia

Dostawca pomija kubek w dzisiejszym pliku. Może to oznaczać wycofany produkt, niepełne pobranie lub plik zawierający tylko zmiany. Uzgodnij znaczenie każdego stanu źródła, zanim przebieg potraktuje go jako instrukcję dotyczącą stanu lub widoczności.

Stan źródłaPytanie do rozstrzygnięciaProponowana obsługa
Jawne zero dostępnego stanu magazynowegoCzy opisuje stan dostawcy, Twojego magazynu czy łączną ilość dostępną do sprzedaży?Zastosuj wyłącznie zatwierdzoną regułę odpowiedzialności za stany.
Pusta komórka stanu magazynowegoCzy wartość jest nieznana, niezmieniona czy celowo wyczyszczona?Wstrzymaj zmianę wartości, chyba że uzgodniony format definiuje jej znaczenie.
Brak produktu w plikuCzy to pełna migawka czy plik zawierający tylko zmiany?Wstrzymaj do sprawdzenia; usunięcie stosuj tylko na podstawie pełnej migawki zgodnie z uzgodnionym kontraktem.

To reguły działania do określenia i przetestowania, a nie stwierdzenie, że każdy importer udostępnia takie mechanizmy.

Fikcyjny zapas może prowadzić do nadmiernej sprzedaży; błędne dopasowanie może opublikować cenę innego produktu. Konsekwencje na marketplace zależą od kanału i operacji. Uzupełnienie, zmiana i zastąpienie oferty nie zawsze resetują jej historię.

Badaj powielone identyfikatory i ceny poniżej kosztów

Te zapytania wskazują kandydatów do zbadania. Nie dowodzą błędu. Zastąp ps_ prefiksem swojej bazy.

SELECT ean13, COUNT(*) AS records_found
FROM ps_product
WHERE ean13 <> ''
GROUP BY ean13
HAVING COUNT(*) > 1;

SELECT p.id_product, p.reference, ps.id_shop,
       ps.price, ps.wholesale_price
FROM ps_product p
JOIN ps_product_shop ps ON ps.id_product = p.id_product
WHERE ps.id_shop = 1 AND ps.active = 1
  AND ps.wholesale_price > 0
  AND ps.price < ps.wholesale_price;

Powtarzaj audyty identyfikatorów dla kombinacji i innych pól tylko tam, gdzie pola istnieją. Sprawdź zakres sklepu i dostawcy, zanim uznasz duplikaty za błędne. Cena produktu poniżej zapisanego kosztu bazowego może wynikać z nieaktualnych kosztów, celowej wyprzedaży lub błędnego mapowania. Przed decyzją o zmianach sprawdź porównywalność podatków/walut, wpływ kombinacji i efektywne rabaty.

Zachowuj ślad zapisów zapasów pozwalający ustalić źródło oraz odzyskiwalną migawkę. Jeśli błędny feed dotrze do klientów, wstrzymaj dalsze przekazywanie, ustal dotknięte oferty i zamówienia oraz oceń faktyczne obowiązki umowne i konsumenckie. Nie istnieje uniwersalna reguła finansowa mówiąca, że anulowanie wszystkich zamówień lub realizacja wszystkich jest zawsze tańsza.

Ładowanie...
Do góry