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.
