Integrator Allegro

Kamil Mlonek 29 lipca 2021

Wdrożenie skryptu do automatycznego wystawiania aukcji i śledzenia stanów magazynowych Allegro.

Klient zlecił nam wykonanie dwukierunkowego integratora pomiędzy wewnętrznym magazynem produktów (zarządzanego za pomocą dedykowanej aplikacji) a portalem aukcyjnym Allegro.

Aplikacja miała za zadanie wystawiać nowe aukcje określone w panelu administracyjnym, na bieżąco monitorować i aktualizować zmiany parametrów tych istniejących oraz przetwarzać zamówienia pilnując tym samym integralności stanów magazynowych w systemie zleceniodawcy. W dodatku wszystko miało dziać się w pełni automatycznie, w miarę możliwości szybko i bez konieczności udziału człowieka (z pominięciem określania aukcji do wystawienia).

System magazynowy klienta nie posiadał rozwiązania pozwalającego na łatwą komunikację z zewnętrzną aplikacją, przez co byliśmy zmuszeni utworzyć rozwiązanie pozwalące kolejno: pobrać listę produktów do wystawienia, zaktualizować stan produktu, sprawdzić stany magazynowe produktu. Z racji przestarzałości systemu nie było możliwości podeprzeć się wykorzystaniem API, stąd skrypt musiał znajdować się na serwerze klienta i współpracować z bazą danych. Z uwagi na fakt rozbieżności pomiędzy identyfikatorami poszczególnych typów, stanów, czy kategorii, zanim przystąpiliśmy do faktycznej pracy nad tworzeniem kodu integratora, “wyciągnęliśmy” wszystkie potrzebne parametry i zmapowaliśmy, tj. powiązaliśmy je z systemem klienta. Posłużyliśmy się również polem etykieta w Allegro, aby połączyć identyfikator produktu w systemie magazynowym z konkretną aukcją Allegro. Tak opracowana logika działania pozwoliła na sprawną komunikację pomiędzy platformami.

Po wstępnej konfiguracji środowiska i przygotowaniu potrzebnych materiałów, przystąpiliśmy do pisania kodu. Posłużyliśmy się biblioteką Guzzle dla PHP do komunikacji z API Allegro i wcześniej przygotowanymi funkcjami w aplikacji magazynowej klienta. Dodatkowo zgodnie z oczekiwaniami, dla pełnej automatyzacji utworzyliśmy zadanie CRON uruchamiane raz na 30 minut inicjujące wykonanie skryptu, który sprawdzi i zaktualizuje aktualne stany, utworzy nowe aukcje i przetworzy zamówienia, tworząc log z działania w określonym katalogu. Finalnie czas wykonywania skryptu przy ilości 350+ aukcji Allegro wyniósł +/- minutę, co z uwagi na fakt wykorzystania wielu requestów HTTP i komunikacji z bazą danych aplikacji magazynowej jest zadowalającym wynikiem. Skrypt otrzymuje stałe, odpłatne wsparcie techniczne w momencie zmiany w parametrach poszczególnych endpointów, czy ich całkowitego wyłączenia.

Mockup psd created by freepik – www.freepik.com