BaseLinker

Automatyczna synchronizacja cen i stanów z hurtowni w BaseLinker — jak to działa i dlaczego warto

Sprzedajesz przez BaseLinker i współpracujesz z hurtowniami? Pewnie znasz ten problem: hurtownia zmienia ceny albo wyprzedaje towar, a Ty dowiadujesz się o tym dopiero gdy zamówienie już poszło do klienta. Albo gorzej — gdy klient dzwoni że paczka nie dotrze bo produktu nie ma na stanie.

Ręczna aktualizacja setek produktów z kilku hurtowni to praca na godziny dziennie. Przy tysiącach pozycji — niemożliwa. W tym artykule opisuję jak zbudowałem narzędzie które robi to automatycznie: pobiera feedy XML z hurtowni, deduplikuje dane i aktualizuje stany oraz ceny zakupu w BaseLinker — bez żadnej ręcznej pracy.

Skąd się bierze problem

Hurtownie udostępniają feedy XML z aktualnymi cenami i dostępnością. Plik wygląda prosto — EAN, ilość, cena. Problem zaczyna się gdy:

  • masz kilka hurtowni z tym samym towarem w różnych cenach
  • ten sam produkt pojawia się wielokrotnie w jednym feedzie (sztuka, karton, paleta)
  • hurtownia wycofuje produkt — plik po prostu przestaje go zawierać
  • hurtownia ma awarię i zwraca pustą stronę HTML zamiast XML

Każdy z tych przypadków bez odpowiedniej obsługi prowadzi do błędnych danych w BaseLinker.

Logika która robi różnicę

Sama synchronizacja to nie problem — BaseLinker ma API. Trudna część to reguły biznesowe które decydują co właściwie zsynchronizować.

Ten sam EAN w dwóch hurtowniach? Program bierze niższą cenę zakupu. Jeśli tańszy dostawca ma towar na stanie — bierze jego ilość. Jeśli nie ma — sprawdza droższego. Gdy obaj dostawcy mają zerowy stan — produkt zostaje wyzerowany w BaseLinker, żebyś nie sprzedawał towaru którego nikt nie ma.

Ten sam EAN wielokrotnie w jednej hurtowni? Sztuka, karton, paleta to osobne rekordy z tym samym EAN-em ale różnymi ilościami. Zsumowanie byłoby błędem — w BaseLinker to jeden produkt. Program pomija takie przypadki i loguje ostrzeżenie żebyś wiedział że coś wymaga uwagi.

Produkt zniknął z feedu? Stan w BaseLinker zeruje się automatycznie. Bez tego klienci widzieliby dostępność towaru który hurtownia już wycofała.

Jeżeli Twój setup wymaga innej logiki — np. sumowania stanów z kilku magazynów, innego priorytetu dostawcy albo własnych reguł dla konkretnych kategorii produktów — napisz do nas. Wtyczka jest w pełni konfigurowalna i elastyczna na nową logikę biznesową.

→ Opisz swój przypadek

Zabezpieczenie które uratowało dane

Najważniejsze zabezpieczenie w całym programie to kontrola kompletności feedu.

Jeśli przy danym uruchomieniu feed zwraca mniej niż 70% produktów względem poprzedniego — program przerywa i nie wysyła nic do BaseLinker. Dlaczego to ważne?

Hurtownie czasem mają awarie i zamiast pliku XML zwracają pustą stronę błędu HTML. Bez tej kontroli program odczytałby "brak produktów w feedzie" jako stan faktyczny i wyzerował stany wszystkich produktów w BaseLinker. Jedno błędne uruchomienie, tysiące zerowych stanów, zamówienia które nie mogą być zrealizowane.

Jak wygląda praca z programem

Ręcznie — okno z przyciskiem uruchomienia i podglądem logów na żywo. Widzisz co się dzieje: ile produktów pobrano, ile zaktualizowano, jakie były wyjątki.

Automatycznie — przez Harmonogram zadań Windows. Ustawiasz raz np. co godzinę i program działa w tle bez żadnej interakcji. Stany i ceny aktualizują się same. Cały cykl dla 27 000 produktów z dwóch hurtowni trwa 3–5 sekund.

Dla kogo to rozwiązanie

To narzędzie ma sens jeśli:

  • współpracujesz z co najmniej jedną hurtownią która udostępnia feed XML
  • masz ponad kilkaset produktów i ręczna aktualizacja zajmuje Ci realny czas
  • zdarzyło Ci się sprzedać towar którego nie było na stanie lub w złej cenie

Nie jest to gotowy produkt SaaS — to rozwiązanie wdrażane indywidualnie, skonfigurowane pod Twoje hurtownie i Twój cennik w BaseLinker.

Co dalej

Planowane rozszerzenia: raport email po każdej synchronizacji, tryb dry-run (symulacja bez zapisu do BaseLinker), obsługa wielu cenników per magazyn.

Jeśli masz podobny problem — opisz jakie hurtownie używasz i jak wygląda Twój setup w BaseLinker. Chętnie ocenię czy to rozwiązanie pasuje do Twojego przypadku.

→ Napisz do mnie w sprawie integracji BaseLinker