Portfolio

Integracja WooCommerce z API hurtowni: sklep z częściami motoryzacyjnymi

Case study integracji sklepu WooCommerce z REST API hurtowni motoryzacyjnej: synchronizacja katalogu, stanów magazynowych i cen w czasie rzeczywistym oraz automatyczna logika marżowa.

#E-commerce
Integracja WooCommerce z API hurtowni: sklep z częściami motoryzacyjnymi

#Integracja WooCommerce z API hurtowni motoryzacyjnej

Sklep z częściami motoryzacyjnymi żyje kompletnością i aktualnością katalogu. Przy kilkudziesięciu tysiącach indeksów, których dostępność i ceny zmieniają się u dostawcy z dnia na dzień, ręczne utrzymanie oferty nie ma sensu. W tym wdrożeniu spięliśmy sklep WooCommerce bezpośrednio z web-service hurtowni po REST API, tak aby katalog, stany i ceny utrzymywały się same. Nazwa klienta i systemu dostawcy pozostaje poufna.

#Problem: sprzedaż tego, czego nie ma na stanie

Najkosztowniejszy błąd w tego typu sklepie to przyjęcie i opłacenie zamówienia na część, której dostawca fizycznie nie ma. Kończy się to zwrotem, obsługą reklamacji i utratą zaufania. Do tego dochodzi rozjazd cen: hurtownia zmienia cennik, a sklep sprzedaje po starej, czasem poniżej własnego kosztu. Cel wdrożenia był więc konkretny: katalog sklepu ma odzwierciedlać to, co dostawca ma realnie dostępne i po ile, bez pracy ręcznej.

#Architektura: WooCommerce spięty z web-service hurtowni

Podstawą jest WordPress z WooCommerce, a warstwą integracyjną dedykowany kod PHP komunikujący się z REST API hurtowni. Dostawca udostępnia dane w formacie JSON i XML, więc integracja parsuje oba i sprowadza je do jednego, wewnętrznego modelu. Synchronizacja działa cyklicznie w tle (zadania WP-Cron), z podziałem na lżejsze, częste odpytywanie o stany i ceny oraz cięższe, rzadsze odświeżanie pełnego asortymentu.

#Mapowanie danych hurtowni na produkty WooCommerce

Hurtownia opisuje produkty własną strukturą pól. Zadaniem integracji jest przełożyć ją na strukturę produktów i atrybutów WooCommerce. Mapujemy między innymi:

  • EAN i indeks - jako klucze identyfikujące produkt i łączące pozycję w sklepie z rekordem w hurtowni przy każdej kolejnej synchronizacji.
  • Atrybuty techniczne - parametry części przenoszone na atrybuty i warianty WooCommerce, tak aby działały filtry i wyszukiwanie po parametrach.
  • Media i opisy - zdjęcia oraz kody HTML opisów pobierane z endpointów hurtowni i osadzane w kartach produktów.

Mapa pól jest deklaratywna, więc dodanie nowego parametru z hurtowni nie wymaga przepisywania logiki, tylko rozszerzenia mapowania.

#Synchronizacja stanów i cen w czasie rzeczywistym

Sercem integracji jest cykliczne odpytywanie API o dwie rzeczy: stan magazynowy każdego indeksu oraz cenę detaliczną netto u dystrybutora. Pozycje, których dostawca nie ma na stanie, są automatycznie oznaczane jako niedostępne lub ukrywane, co bezpośrednio realizuje główny cel: klient nie kupi części, której nie da się zrealizować. Zmiana ceny w cenniku hurtowni przenosi się do sklepu przy najbliższym cyklu, bez ingerencji obsługi.

#Logika marżowa

Ceny z hurtowni to koszt, nie cena sprzedaży. Nad warstwą pobierania danych działa logika marżowa: na cenę detaliczną netto pobraną od dystrybutora system automatycznie narzuca zdefiniowaną marżę sklepową i dopiero wynik trafia do WooCommerce jako cena produktu. Dzięki temu sklep utrzymuje założoną rentowność nawet przy zmiennych cennikach dostawcy, a właściciel steruje marżą regułami zamiast ręcznej edycji cen.

#Efekt

Katalog utrzymuje się sam: nowe pozycje z hurtowni pojawiają się w sklepie, wycofane znikają, stany i ceny podążają za dostawcą, a marża pilnuje rentowności. Obsługa sklepu przestała ręcznie aktualizować oferty i przestała mierzyć się z zamówieniami na niedostępne części. To ten sam mechanizm wymiany danych, parsowania JSON/XML i mapowania stanów, który stoi za integracjami WooCommerce z systemami klasy ERP - różni się źródłem danych, nie zasadą działania.