Przejdź do treści
codecollab.pl
§ Blog baselinker import produktów

Import produktów z pliku XML od hurtowni - mapowanie, ceny, aktualizacje

Import produktów z pliku XML od hurtowni udaje się wtedy, gdy zanim wgrasz pierwszy produkt, ustalisz trzy rzeczy: co jest niezmiennym identyfikatorem produktu, skąd biorą się ceny i co wygrywa przy każdej kolejnej aktualizacji

Autor Krystian Kacik Data Czas czytania 9 min

Import produktów z pliku XML od hurtowni udaje się wtedy, gdy zanim wgrasz pierwszy produkt, ustalisz trzy rzeczy: co jest niezmiennym identyfikatorem produktu, skąd biorą się ceny i co wygrywa przy każdej kolejnej aktualizacji. Sam import to najłatwiejszy etap - klikasz, czekasz, masz kilka tysięcy produktów. Problem zaczyna się w drugim tygodniu, gdy hurtownia zmieni strukturę pliku, a Twoje ręcznie poprawione opisy zostaną nadpisane wersją hurtowni.

Poniżej rozpisuję to tak, jak sam ustawiam takie integracje. Tekst jest o WooCommerce i BaseLinkerze, ale logika jest ta sama na każdej platformie.

Czym jest plik XML od hurtowni

Plik XML od hurtowni to tekstowa lista jej asortymentu pod stałym adresem internetowym - z nazwą, indeksem, ceną zakupu, stanem magazynowym, kategorią, zdjęciami i parametrami. Hurtownia odświeża go co jakiś czas, a Twój sklep albo BaseLinker cyklicznie ten adres odpytuje i przenosi zawartość do siebie. Formaty, które dostaniesz w praktyce:

FormatUwaga
XMLnajczęstszy i najpojemniejszy - obsłuży warianty i wiele zdjęć
CSV / XLSXprosty, ale słabo radzi sobie z wariantami i galerią
APInajlepszy do stanów i cen na żywo, wymaga integracji
Feed pod konkretny systemwygodny, ale uproszczony względem pełnego XML-a

Nie ma jednego standardu - dwie hurtownie z tej samej branży nazwą to samo pole inaczej. Dlatego całą robotę zjada mapowanie, a nie samo pobranie pliku.

Klucz produktu, czyli decyzja, od której zależy wszystko

Klucz produktu to jedno pole, po którym system rozpoznaje, że produkt z pliku i produkt w Twoim sklepie to ten sam towar. Bez stabilnego klucza każda aktualizacja tworzy duplikaty zamiast podmieniać dane - stąd sklepy, w których po miesiącu jest trzy razy więcej produktów niż w hurtowni. Kandydaci, od najlepszego:

  1. Indeks hurtowni (SKU dostawcy) - stały przez lata, unikalny u jednego dostawcy. W BaseLinkerze to ten „index”, do którego wszystko się przywiązuje
  2. EAN / kod kreskowy - dobry przy towarze markowym i planach na drugiego dostawcę tego samego produktu
  3. Własne SKU z prefiksu dostawcy i jego indeksu, na przykład AB-10233 - najlepsze przy dwóch i więcej hurtowniach, bo od razu widzisz, skąd jest towar
  4. Nazwa produktu - nigdy. Nazwy zmieniają się co kwartał, a po każdej zmianie robi się duplikat

Raz wybranego klucza już nie zmieniasz. Zmiana klucza w działającym sklepie to w praktyce import od nowa, z ręcznym scalaniem historii zamówień.

Mapowanie kategorii i parametrów

Mapowanie to tabela tłumaczeń: kategoria z pliku hurtowni po lewej, Twoja kategoria po prawej. Robi się je raz, przed pierwszym pełnym importem, i tego etapu nie da się przeskoczyć bez konsekwencji. Co ustalasz:

  • Kategorie - hurtownie budują drzewko pod magazyn, nie pod klienta. Trzy poziomy typu „Elektronika > Kable > Kable HDMI” bywają u Ciebie jedną kategorią. Sklejaj, nie kopiuj jeden do jednego
  • Atrybuty - kolor, rozmiar, moc. To one napędzają filtry, więc wartości normalizuj od razu: „czarny”, „Czarny” i „BLACK” muszą trafić do jednej
  • Producent - osobne pole, nie fragment nazwy. Ludzie szukają po marce
  • Produkty do pominięcia - gabaryty, towar niebezpieczny, ceny poniżej progu opłacalności. Filtr ustawiasz na wejściu, nie kasujesz ręcznie po imporcie

Mapowanie trzymaj poza głową - w arkuszu albo w konfiguracji integracji; za pół roku, przy dokładaniu drugiej hurtowni, oszczędzi Ci dzień pracy. Szerzej o mechanizmach wgrywania danych piszę przy imporcie i eksporcie produktów w WooCommerce.

Ceny - narzuty, progi i zaokrąglenia

Cena w sklepie nigdy nie jest ceną z pliku hurtowni przepisaną wprost - jest wynikiem reguły, którą ustawiasz raz i która przelicza się przy każdej aktualizacji. Minimalny zestaw, który sprawdza się w większości sklepów:

  1. Narzut progowy zamiast jednego procentu - na tani drobiazg procent musi być wyższy niż na drogi sprzęt, inaczej albo zarobisz grosze, albo wypadniesz z rynku
  2. Marża minimalna kwotowa - dolna granica w złotówkach, poniżej której narzut procentowy nie zejdzie
  3. Doliczenie kosztu obsługi - pakowanie, prowizja bramki, zwroty. To realny koszt sztuki
  4. Zaokrąglenie końcówki - do 0,99 albo do pełnych złotówek; drobiazg, a robi porządek w ofercie
  5. Wyjątki na sztuki - lista indeksów z ceną ustawianą ręcznie, której automat nie rusza

Ostatni punkt jest ważniejszy, niż wygląda: bez mechanizmu wyjątków każda ręczna korekta ceny żyje do najbliższej aktualizacji i znika. Ustawiam to jako pole „cena zablokowana” przy produkcie - automat je widzi i omija. A jeśli sprzedajesz też hurtowo, ceny dla kontrahentów są osobną warstwą i nie mieszaj ich z narzutem detalicznym - to logika panelu zamówień B2B.

Zdjęcia, opisy i to, co nadpisujesz

Zdjęcia i opisy to najcięższa część importu - dosłownie, bo zajmują czas i miejsce na serwerze. Reguła, którą stosuję: zdjęcia bierz z hurtowni, opisy pisz u siebie.

  • Zdjęcia - pobieraj raz, przy pierwszym imporcie, i nie odświeżaj przy każdej synchronizacji. Skalowanie i konwersja do WebP przy wgrywaniu to konieczność - inaczej po roku masz kilkadziesiąt gigabajtów i sklep, który ładuje się wolno
  • Opisy - hurtownia daje wszystkim to samo. Kluczowe produkty muszą mieć opis własny, więc opis to pole, którego automat po pierwszym imporcie już nie dotyka
  • Nazwy - warto raz posprzątać z kodów magazynowych typu „(2 szt/op) NOWE”

Praktyczny model: przy każdej aktualizacji automat odświeża wyłącznie stan magazynowy, cenę zakupu i status dostępności. Reszta pól jest oznaczona jako „moja” i zostaje nietknięta.

Warianty (rozmiar, kolor) sprawdź przed pierwszym importem: każda odmiana musi mieć własny indeks, inaczej nie zsynchronizujesz stanów per rozmiar, a plik musi mieć pole grupujące, po którym odmiany skleją się w jeden produkt. Bez takiego pola zostaje sprzedaż odmian osobno albo sklejanie po fragmencie nazwy - to już robota programistyczna.

Harmonogram aktualizacji - co i jak często

Nie wszystko odświeża się w tym samym rytmie. Rozdzielenie tego na osobne zadania jest tańsze dla serwera i bezpieczniejsze dla danych.

CoJak częstoDlaczego tak
Stan magazynowyco 15-60 minutanulowane zamówienia biorą się z towaru, którego już nie ma
Ceny zakupu1-2 razy dzienniezmieniają się rzadziej, a przeliczanie obciąża sklep
Nowe produktyraz dziennie, w nocynowość może poczekać do rana
Zdjęcia i opisytylko przy pierwszym imporcieodświeżanie nadpisuje Twoją pracę i zapycha dysk
Wycofane produktyraz dziennienie kasuj - ustaw jako niedostępne, żeby nie stracić adresu

Ostatni wiersz jest istotny: kasowanie produktów, które zniknęły z pliku hurtowni, to prosta droga do setek adresów przestających istnieć. Bezpieczniej ukryć produkt i zostawić stronę z informacją o niedostępności - szerzej piszę o tym przy synchronizacji stanów magazynowych.

BaseLinker czy import prosto do sklepu

BaseLinker ma sens, gdy sprzedajesz w kilku miejscach naraz - własny sklep plus Allegro i inne rynki. Wtedy jeden magazyn zasila wszystkie kanały i tam też robisz integrację Allegro z hurtownią. Import prosto do WooCommerce ma sens, gdy sklep jest jedynym kanałem - mniej warstw, mniej abonamentów, mniej miejsc, w których coś może się rozjechać.

KryteriumBaseLinker jako centrumImport wprost do WooCommerce
Kilka kanałów sprzedażynaturalne, po to powstałtrzeba dobudować
Gotowe integracje hurtownidługa lista w paneluzależy od wtyczki lub integracji na zamówienie
Koszt stałyabonament rosnący z liczbą zamówieńkoszt wtyczki lub jednorazowe wdrożenie
Nietypowa logika cen i mapowańograniczona do tego, co daje paneldowolna, bo to Twój kod
Zależność od jednego dostawcy usługiwysokaniska

Cenniki narzędzi zmieniają się regularnie, więc przed decyzją sprawdź aktualne progi u źródła. Porównanie narzędzi rozpisałem przy alternatywach dla BaseLinkera, a automatyzacje na poziomie API - w BaseLinker API i automatyzacje.

Pięć wpadek, które widuję najczęściej

  1. Import bez testu na próbce - wgrywam najpierw 20-50 produktów, oglądam je w sklepie, dopiero potem puszczam całość
  2. Brak kopii zapasowej przed importem - cofanie źle zmapowanego importu bez kopii to dni pracy
  3. Aktualizacja co 5 minut na współdzielonym hostingu - sklep zwalnia i w szczycie potrafi przestać odpowiadać
  4. Zero monitoringu pliku - hurtownia zmienia strukturę XML-a bez uprzedzenia, a integracja cicho przestaje działać
  5. Publikacja od razu - nowe produkty niech wpadają jako szkice, do przejrzenia

Jak to zwykle wygląda u mnie

Zaczynam od bezpłatnej diagnozy: patrzę na plik od Twojej hurtowni, na sklep i na to, gdzie jeszcze sprzedajesz. Po tej rozmowie wiadomo, czy wystarczy dobra wtyczka i porządne mapowanie, czy potrzebna jest integracja pisana pod Twoją logikę cen - i co wychodzi taniej w utrzymaniu przez kolejne dwa lata.

Przy większej robocie dostajesz wycenę na piśmie przed startem: co się mapuje, co się aktualizuje, jak często i co się dzieje, gdy hurtownia zmieni format. Projekty tego typu mieszczą się zwykle w przedziale 5000-10000 zł netto, a jeśli integracja ma potem żyć i być pilnowana - wchodzi stała opieka od 1000 zł netto miesięcznie. Kwotę podaję po obejrzeniu, nigdy w ciemno.

Najczęstsze pytania

Ile produktów da się zaimportować do WooCommerce? Dziesiątki tysięcy, o ile sklep stoi na hostingu przygotowanym pod taki katalog i ma sensownie ustawione filtry oraz wyszukiwarkę. Granicą nie jest sama liczba produktów, tylko liczba wariantów i atrybutów - to one najmocniej obciążają bazę. Powyżej kilku tysięcy pozycji warto zaplanować optymalizację sklepu razem z importem, a nie po fakcie.

Czy import z hurtowni zaszkodzi mojemu SEO? Sam import nie, ale skopiowane opisy producenta bywają problemem - identyczną treść ma wtedy kilkadziesiąt sklepów naraz. Dlatego przy produktach, na których Ci zależy, opis pisze się własny, a resztę katalogu zostawia jak jest. Konkretnych pozycji nikt Ci nie zagwarantuje, bo zależą od konkurencji w Twojej niszy.

Co zrobić, gdy hurtownia zmieni strukturę pliku XML? Trzeba poprawić mapowanie po swojej stronie - i najlepiej dowiedzieć się o zmianie z alertu, a nie od klienta, który zamówił niedostępny towar. Dlatego przy każdej integracji ustawiam powiadomienie, gdy plik przestaje odpowiadać albo liczba pozycji zmienia się skokowo.

Czy mogę importować z dwóch hurtowni naraz? Tak i to częsty scenariusz, tylko wtedy klucz produktu musi mieć prefiks dostawcy, a system regułę rozstrzygającą, z której hurtowni brać towar dostępny u obu - zwykle decyduje cena zakupu albo czas dostawy. Bez tej reguły oferta zaczyna się rozjeżdżać już w pierwszym miesiącu.

Wyślij zakres - wycena 24h


Powiązane: Import i eksport produktów w WooCommerce · Synchronizacja stanów magazynowych · Sklepy e-commerce

§ Wycena 24h

Twój sklep zwalnia albo wygląda staro, a nie wiesz, od czego zacząć?

Opisz zakres w dwóch zdaniach albo podeślij link. Wskażę, co poprawić najszybciej, a wycenę dostajesz na piśmie w 24 godziny - bez „od X zł".

Wyślij zakres - wycena 24h