• Kierowca dostępny teraz
  • całą dobę, 7 dni w tygodniu
  • Dojazd do 1 h w promieniu 40 km
  • Diagnoza laptopa 0 zł
Chess pieces balanced on a scale depicting equality or strategy in decision making.

Integracja sklepu z porównywarkami cen (Ceneo, Skąpiec)

Porównywarki cen przyciągają klientów szukających konkretnego produktu w najlepszej cenie — obecność sklepu w takich serwisach wymaga jednak automatycznego, aktualnego eksportu oferty, żeby nie pokazywać nieaktualnych cen czy niedostępnych produktów.

Na czym polega ta usługa

Konfiguracja obejmuje przygotowanie pliku eksportu produktów zgodnego z wymaganiami wybranej porównywarki cen, ustawienie automatycznej, cyklicznej aktualizacji cen i stanów magazynowych oraz sprawdzenie poprawności kategoryzacji produktów w serwisie porównującym oferty.

Dla kogo ma sens

Usługa jest przydatna dla sklepów chcących zwiększyć widoczność wśród klientów porównujących ceny przed zakupem, bez ryzyka publikowania nieaktualnych informacji o dostępności czy cenie produktu.

Ile to trwa

Konfiguracja integracji z porównywarką cen mieści się z reguły w standardowym czasie do 3 dni.

Warunki

Diagnoza wstępna i wycena są bezpłatne. Dojazd na terenie Warszawy i okolic jest bezpłatny, a usługa objęta jest gwarancją do 12 miesięcy.

Struktura techniczna pliku wymiany danych (feed XML)

Podstawą komunikacji między sklepem internetowym a serwisami takimi jak Ceneo czy Skąpiec jest plik wymiany danych, najczęściej w formacie XML (Extensible Markup Language, czyli rozszerzalny język znaczników przeznaczony do reprezentowania ustrukturyzowanych danych). Plik ten, określany w branży e-commerce jako feed produktowy, musi spełniać rygorystyczne wytyczne strukturalne narzucone przez daną porównywarkę cen.

Standardowy plik XML dla porównywarki zawiera węzły główne oraz zestaw elementów opisujących każdy pojedynczy produkt. Wśród kluczowych znaczników znajdują się:

  • Identyfikator oferty (id) – unikalny numer produktu w bazie sklepu (zazwyczaj ID z bazy danych lub kod SKU, czyli jednostka magazynowa identyfikująca konkretny towar), który musi pozostać stały przez cały cykl życia produktu.
  • Nazwa produktu (name) – pełny tytuł artykułu zawierający markę, model oraz kluczowe parametry techniczne ułatwiające jednoznaczną identyfikację.
  • Cena brutto (price) – aktualna cena sprzedaży dla klienta końcowego, podawana z separatorem dziesiętnym w postaci kropki.
  • Adres URL produktu (url) – bezpośredni odnośnik prowadzący do karty produktu w sklepie internetowym, często wzbogacany o parametry śledzące UTM (parametry dopisywane do adresu strony w celu analizy ruchu w narzędziach analitycznych).
  • Adres zdjęcia głównego i dodatkowych (image) – bezpośrednie łącza do plików graficznych prezentujących produkt na jednolitym tle, zgodnie z wytycznymi serwisów.
  • Dostępność (avail) – znacznik określający czas wysyłki towaru (na przykład wysyłka w 24 godziny, do 3 dni lub produkt na zamówienie).
  • Kod producenta oraz kod EAN (European Article Number, czyli unikalny trzynastocyfrowy kod kreskowy) – elementy niezbędne do automatycznego łączenia oferty sklepu z kartą produktu w porównywarce.
  • Ścieżka kategorii (category) – pełna hierarchia kategorii w sklepie, oddzielona separatorami, wykorzystywana do wstępnego przypisania towaru do odpowiedniego działu.
  • Koszty dostawy (shipping) – sekcja definiująca koszty wysyłki dla poszczególnych form transportu (kurier, paczkomat, odbiór osobisty).

Źródła danych i architektura integracji w środowisku sklepu i ERP

Prawidłowe generowanie pliku wymiany danych wymaga powiązania sklepu internetowego z centralną bazą magazynową. W zależności od infrastruktury informatycznej przedsiębiorstwa, dane do pliku XML mogą pochodzić bezpośrednio z platformy sklepowej lub z zewnętrznego systemu zarządzania przedsiębiorstwem ERP (Enterprise Resource Planning, czyli oprogramowania do kompleksowego zarządzania zasobami firmy).

W praktyce stosuje się kilka modeli przesyłania informacji o produktach:

  • Integracja bezpośrednia z poziomu platformy e-commerce – silniki sklepowe (takie jak WooCommerce, PrestaShop czy Magento) wykorzystują wbudowane moduły lub rozszerzenia generujące plik XML na podstawie tabel w bazie danych MySQL lub MariaDB. Rozwiązanie to sprawdza się w mniejszych sklepach, w których stan magazynowy jest prowadzony bezpośrednio w panelu administracyjnym sklepu.
  • Synchronizacja poprzez system ERP – w środowiskach, w których głównym źródłem prawdy o stanach magazynowych i cenach jest system handlowy (na przykład InsERT Subiekt GT, Subiekt nexo, Comarch ERP Optima, WAPRO Mag czy enova365), plik produktowy jest generowany na podstawie danych wyeksportowanych z bazy SQL Server do sklepu lub bezpośrednio do pliku XML przez dedykowaną usługę systemową.
  • Wykorzystanie integratora wielokanałowego – systemy pośredniczące, takie jak BaseLinker, pobierają stany magazynowe z ERP oraz zamówienia z wielu kanałów sprzedaży, po czym tworzą ujednolicony feed produktowy dla Ceneo, Skąpca i innych serwisów zewnętrznych.

Wdrożenie obejmuje weryfikację spójności danych między bazą ERP a sklepem, aby zapobiec sytuacjom, w których rozbieżność w kodach EAN lub stanach minimalnych prowadzi do wystawiania ofert na towary wyprzedane.

Mapowanie kategorii, atrybutów i łączenie ofert

Samo wygenerowanie pliku XML nie gwarantuje, że produkty pojawią się w odpowiednich sekcjach porównywarki. Kluczowym etapem jest proces mapowania, czyli przypisania lokalnych kategorii i cech towarów ze sklepu do znormalizowanego drzewa kategorii serwisu zewnętrznego.

Każda porównywarka cen utrzymuje własną, unikalną taksonomię (hierarchiczny podział produktów na kategorie i podkategorie). Jeżeli sklep posiada kategorię „Elektronika użytkowa / Akcesoria do laptopów / Zasilacze”, a porównywarka stosuje układ „Komputery / Laptopy i akcesoria / Zasilacze do laptopów”, konieczne jest zdefiniowanie reguły mapującej. Brak takiego dopasowania powoduje, że produkty trafiają do kategorii ogólnych lub są odrzucane podczas weryfikacji.

Drugim istotnym elementem jest standaryzacja atrybutów technicznych. Porównywarki grupują oferty wielu sprzedawców na jednej karcie produktu (tak zwany produkt wzorcowy). Aby sklep został dołączony do właściwej karty, silnik porównywarki musi rozpoznać kod EAN-13, kod MPN (Manufacturer Part Number, czyli unikatowy numer części nadawany przez producenta) oraz markę. W ramach prac konfiguracyjnych weryfikuje się poprawność wypełnienia tych pól w bazie danych oraz konfiguruje filtry wykluczające towary pozbawione wymaganych identyfikatorów.

Optymalizacja wydajności serwera i harmonogram zadań cron

Generowanie obszernego pliku XML zawierającego tysiące lub dziesiątki tysięcy produktów stanowi poważne obciążenie dla serwera WWW i bazy danych. Nieprawidłowo skonfigurowany mechanizm eksportu może doprowadzić do spowolnienia działania całego sklepu lub wystąpienia błędów przekroczenia limitu czasu wykonywania skryptu (błędy 504 Gateway Timeout lub 500 Internal Server Error).

W celu zapewnienia stabilności infrastruktury stosuje się następujące rozwiązania inżynieryjne:

  • Generowanie asynchroniczne przez harmonogram zadań – zamiast generować plik XML dynamicznie w momencie każdego zapytania bota porównywarki, uruchamia się zadanie w harmonogramie cron (narzędzie w systemach Linux służące do cyklicznego uruchamiania zadań w tle) lub harmonogramie zadań Windows Server. Skrypt przetwarza dane w nocy lub w odstępach kilkugodzinnych i zapisuje gotowy, statyczny plik na dysku.
  • Przetwarzanie partiami (batching) – pobieranie danych z bazy SQL partiami (na przykład po 500 rekordów) z wykorzystaniem mechanizmu stronicowania i wskaźników kursorów, co zapobiega wyczerpaniu pamięci operacyjnej RAM przydzielonej do procesu PHP.
  • Kompresja GZIP – wdrożenie kompresji pliku wynikowego do formatu .xml.gz, co zmniejsza objętość przesyłanych danych nawet o 80-90 procent i przyspiesza transfer danych podczas pobierania przez serwery Ceneo i Skąpca.
  • Buforowanie i zapytania indeksowane – optymalizacja zapytań SQL wyciągających stany magazynowe i ceny, poprzez nałożenie odpowiednich indeksów na kolumny bazodanowe odpowiedzialne za powiązania produktów z cennikami i magazynami.

Typowe błędy i problemy przy samodzielnej konfiguracji

Próby samodzielnego uruchomienia integracji z porównywarkami cen za pomocą prostych, darmowych wtyczek często prowadzą do problemów technicznych i finansowych. Najczęściej spotykane błędy obejmują:

  • Prezentowanie nieaktualnych cen – brak synchronizacji w czasie rzeczywistym między cennikami w systemie ERP a plikiem XML może skutkować tym, że klient widzi w porównywarce niższą cenę niż w sklepie. Prowadzi to do sporów konsumenckich oraz nakładania punktów karnych przez administratorów platformy porównującej.
  • Brak bufora stanów magazynowych – wystawianie towarów o stanie magazynowym równym 1 sztuka w sytuacji, gdy sprzedaż odbywa się równolegle w sklepie stacjonarnym, na platformie Allegro i w sklepie internetowym. Bez odpowiedniego buforowania dochodzi do sprzedaży towaru, którego fizycznie nie ma na półce.
  • Blokowanie bota indeksującego przez zabezpieczenia serwera – reguły zapory sieciowej WAF (Web Application Firewall, czyli zapora aplikacji internetowych chroniąca przed atakami) lub restrykcje w pliku robots.txt mogą omyłkowo zablokować adresy IP porównywarki, co powoduje brak aktualizacji oferty i zawieszenie konta sklepu.
  • Nieprawidłowe kodowanie znaków – użycie kodowania innego niż UTF-8 (na przykład Windows-1250 lub ISO-8859-2) bez deklaracji w nagłówku XML powoduje błędy parsowania pliku, uszkodzenie polskich znaków diakrytycznych w nazwach produktów oraz odrzucenie pliku przez parser.
  • Niezgodność cenników dostaw – podanie stałej, zaniżonej kwoty dostawy w pliku XML przy jednoczesnym stosowaniu zmiennych gabarytowych stawek w koszyku sklepu. Skutkuje to negatywną weryfikacją techniczną oferty podczas audytu jakościowego prowadzonego przez serwis.

Rozróżnienie problemów: błąd feedu a błędy infrastruktury i oprogramowania

Podczas eksploatacji sklepu internetowego zintegrowanego z porównywarkami istotne jest właściwe diagnozowanie źródła ewentualnych nieprawidłowości. Nie każda anomalia wynika bezpośrednio z konfiguracji pliku XML:

  • Błąd po stronie bazy ERP lub integratora – jeśli cena produktu w feedzie różni się od ceny w sklepie, problemem zazwyczaj nie jest generator XML, lecz zawieszona usługa synchronizacji między systemem magazynowym (np. Subiekt GT, Comarch Optima, WAPRO Mag) a bazą sklepu internetowego.
  • Błąd indeksowania po stronie porównywarki – sytuacja, w której plik XML zawiera poprawne dane i jest pobierany bez błędów, ale zmiany nie są widoczne w serwisie przez kilkanaście godzin, wynika z wewnętrznych kolejek przetwarzania po stronie operatora porównywarki (Ceneo lub Skąpiec przetwarzają duże bazy w określonych oknach czasowych).
  • Niewydolność zasobów serwera hostingowego – cykliczne błędy generowania feedu występujące w godzinach szczytu zakupowego są sygnałem przeciążenia procesora (CPU) lub ograniczeń pamięciowych (memory_limit w konfiguracji PHP), a nie błędem samej struktury XML.

Najczęściej zadawane pytania (FAQ)

Czy każdy produkt w sklepie musi posiadać kod EAN, aby trafić do porównywarki?

Większość głównych porównywarek cen wymaga unikalnego kodu EAN-13 (lub ISBN dla książek) dla produktów masowych i markowych, ponieważ na tej podstawie łączy oferty różnych sprzedawców w jeden widok produktu. W przypadku produktów własnej produkcji, rękodzieła lub marek własnych możliwe jest wystawianie ofert bez kodu EAN pod warunkiem prawidłowego zdefiniowania marki i unikalnego kodu producenta MPN, choć wymaga to indywidualnej weryfikacji w panelu operatora.

Jak często porównywarki cen pobierają plik z danymi produktów?

Częstotliwość pobierania pliku XML zależy od ustaleń w panelu sprzedawcy oraz wielkości oferty sklepu. Zazwyczaj serwery porównywarek odpytują plik od kilku do kilkunastu razy na dobę (standardowo co 1 do 4 godzin). W przypadku bardzo dynamicznych zmian cen i stanów magazynowych konfiguruje się dodatkowo powiadomienia API (Application Programming Interface, czyli interfejs programistyczny aplikacji), które wymuszają szybsze pobranie zaktualizowanego feedu.

Co zrobić, gdy generowanie pliku XML powoduje zawieszanie się sklepu?

Należy przenieść proces generowania pliku do zadań harmonogramu w tle (cron), podzielić proces na mniejsze pakiety danych oraz zapisać wynik w formie statycznego pliku na dysku serwera. Dzięki temu bot porównywarki pobiera gotowy dokument bez obciążania interpretera PHP i bazy danych w czasie rzeczywistym. W przypadku baz liczących powyżej kilkudziesięciu tysięcy produktów stosuje się również indeksowanie tabel tymczasowych.

Dlaczego produkty trafiają do innych kategorii niż te w sklepie?

Zjawisko to wynika z różnic w strukturze kategorii sklepu oraz taksonomii porównywarki. Jeżeli w pliku XML nie skonfigurowano reguł mapowania kategorii, automatyczny algorytm porównywarki próbuje dopasować produkt na podstawie słów kluczowych w nazwie i opisie, co często prowadzi do pomyłek (na przykład etui na tablet może zostać zaklasyfikowane jako sam tablet). Rozwiązaniem jest jawne zmapowanie ścieżek kategorii w module integracyjnym.

Czy można wykluczyć określone produkty z eksportu do Ceneo lub Skąpca?

Tak, poprawnie wdrożona integracja pozwala na tworzenie reguł filtrujących. Można wykluczyć produkty o niskiej marży, towary gabarytowe o wysokich kosztach wysyłki, produkty niedostępne w magazynie własnym lub wybrane grupy asortymentowe. Filtrowanie może odbywać się na poziomie kategorii, producentów, cech w systemie ERP lub dedykowanych znaczników w panelu sklepu.

Procedura weryfikacji i stabilne utrzymanie feedu produktowego

Prawidłowe wdrożenie integracji kończy się audytem poprawności danych w oficjalnych walidatorach XML dostarczanych przez Ceneo i Skąpiec. Weryfikuje się zgodność schematu XSD (XML Schema Definition, czyli schemat definiujący poprawną strukturę dokumentu XML), kompletność wymaganych tagów, poprawność kodowania znaków oraz brak błędów logicznych w stawkach podatku i cennikach dostaw.

Po uruchomieniu integracji monitorowane są logi serwera WWW w celu upewnienia się, że roboty indeksujące mają stały dostęp do generowanych plików bez generowania błędów sieciowych, a stany magazynowe w porównywarce odzwierciedlają rzeczywistą dostępność towarów w systemie magazynowym.

Powiązane teksty