System dedykowany
iBMS — automatyzacja katalogu
Dla iModels stworzyliśmy system, który automatyzuje aktualizację katalogu produktowego. iBMS cyklicznie pobiera produkty, ceny, stany i zdjęcia, rozpoznaje nowe oraz zmienione pozycje, a następnie przygotowuje je do publikacji w BaseLinkerze. Operator może również ręcznie uruchamiać procesy i śledzić historię importów.
Od źródła danych do gotowego katalogu
Dane produktowe bez ręcznego przepisywania
iModels rozwija rozbudowany katalog produktów, którego dane zmieniają się niezależnie od pracy sklepu: pojawiają się nowe pozycje, korekty cen, aktualizacje dostępności, opisy i kolejne zdjęcia. iBMS porządkuje ten przepływ w jednym procesie. Zamiast ręcznie porównywać pliki i przenosić każdą zmianę do kolejnych narzędzi, system pobiera dane ze zewnętrznych źródeł produktowych, sprawdza je i aktualizuje centralny katalog.
Operator pracuje na ujednoliconym modelu produktu i widzi, co zostało dodane, co zmienione, a co wymaga sprawdzenia. Szczegóły partnerów oraz konfiguracji integracji pozostają poza publicznym zakresem realizacji.
Blazor na froncie, osobne API i procesy Worker
Frontend panelu powstał w Blazor WebAssembly z komponentami MudBlazor. Osobne API w ASP.NET Core obsługuje katalog, importy, użytkowników i integracje, a warstwa BFF pośredniczy w komunikacji oraz utrzymuje sesję użytkownika. Dzięki temu interfejs pozostaje oddzielony od logiki biznesowej i dostępu do danych.
Cykliczne zadania zostały wydzielone do niezależnych procesów Worker, które mogą działać jako usługa Windows. Pobieranie plików, aktualizacja stanów i przetwarzanie kolejek odbywają się w tle, bez blokowania pracy panelu. Operator może równocześnie sprawdzać katalog, historię zmian i status trwających operacji.
Cykliczne pobieranie plików przez Selenium
Nie każde źródło udostępnia wygodne API. Dlatego część procesu została zautomatyzowana przy użyciu Selenium: Worker otwiera przeglądarkę, przechodzi kontrolowany scenariusz pobrania i zapisuje plik CSV w katalogu roboczym. System rozpoznaje rozpoczęcie oraz zakończenie pobierania, respektuje ograniczenia częstotliwości i archiwizuje poprzednie pliki.
Import może uruchamiać się według harmonogramu albo ręcznie z panelu. Każde wykonanie otrzymuje własny status, czas rozpoczęcia i zakończenia, źródło wywołania oraz podsumowanie liczby odczytanych rekordów.
Nowe produkty i aktualizacja istniejących pozycji
Podczas importu iBMS rozpoznaje produkt po kodzie źródłowym. Jeśli pozycja jest nowa, tworzy kompletny rekord katalogowy. Jeśli już istnieje, aktualizuje tylko pola, które faktycznie się zmieniły. Mechanizm obejmuje między innymi nazwę, markę, kod producenta, EAN, skalę, opis, cenę i stan magazynowy.
Historia zachowuje wartości przed i po zmianie, dlatego operator może sprawdzić nie tylko końcowy stan produktu, ale również skąd wynikała aktualizacja. Niejednoznaczne rekordy i powielone kody są wykrywane i pomijane w automatycznych operacjach, zamiast przypadkowo nadpisywać niewłaściwy produkt.
Ceny, stany i produkty znikające ze źródła
Reguły cenowe są konfigurowalne w panelu. System może zastosować przelicznik, marżę i zasady zaokrąglenia, a następnie zapisać cenę netto oraz brutto gotową do dalszej publikacji. Dzięki temu zmiana parametrów nie wymaga ręcznej korekty każdego rekordu.
iBMS porównuje bieżący import z katalogiem. Gdy produktu brakuje w aktualnym pliku, może przygotować ustawienie jego stanu na zero. Jeżeli pozycja wróci do źródła, system rozpoznaje ten fakt i przygotowuje przywrócenie stanu. Zespół nie musi ręcznie wyszukiwać produktów wycofanych i ponownie dostępnych.
Zdjęcia gotowe do dalszej publikacji
System pobiera zdjęcia powiązane z produktem, zapisuje wiele ujęć i pozwala wskazać obraz główny. Pliki otrzymują status przygotowania, a zbyt duże materiały mogą zostać zoptymalizowane przed wysłaniem do zewnętrznego kanału sprzedaży.
Operator widzi zdjęcia bezpośrednio w katalogu i w szczegółach produktu. Może uzupełnić brakujący materiał, zmienić kolejność lub poprawić wybór zdjęcia głównego bez opuszczania iBMS.
BaseLinker obsługiwany przez kolejki
Zmiany przeznaczone do BaseLinkera nie są wysyłane przypadkowo w trakcie importu. iBMS zapisuje je jako operacje w kolejce: dodanie lub aktualizację produktu, usunięcie, ustawienie stanu na zero albo przywrócenie dostępności. Worker przetwarza kolejkę partiami, zapisuje wynik i w razie przejściowego błędu może ponowić operację.
Panel pokazuje liczbę operacji zakończonych, oczekujących i ponawianych, a historia dzienna pozwala szybko ocenić przebieg synchronizacji. Ręczne działania są nadal dostępne dla pojedynczego produktu, ale podlegają temu samemu kontrolowanemu mechanizmowi.
Ręczne wywołania, historia i kontrola pracy
Dashboard zbiera najważniejsze informacje: wielkość katalogu, liczbę produktów gotowych do synchronizacji, operacje w kolejce i ostatni zakończony import. Uprawniony użytkownik może ręcznie uruchomić import, odświeżyć status lub przejść do szczegółów konkretnego procesu.
Historia importów pokazuje liczbę dodanych i zaktualizowanych produktów, zmiany stanów, pobrane zdjęcia i operacje przekazane do kolejki. Role oraz uprawnienia rozdzielają dostęp do katalogu, integratora, ustawień i administracji użytkownikami. Po zakończeniu albo błędzie procesu system może wysłać powiadomienie e-mail do właściwej osoby.
Jeden proces od importu do sprzedaży
Powstał dedykowany panel, który prowadzi dane produktu od pobranego pliku przez walidację i aktualizację katalogu aż do kontrolowanej kolejki BaseLinkera. Nowe produkty, ceny, stany i zdjęcia są obsługiwane w jednym procesie, a istniejące pozycje nie wymagają ponownego ręcznego wprowadzania.
Blazor WebAssembly zapewnia czytelny interfejs operatorski, osobne API porządkuje operacje na danych, BFF pośredniczy w komunikacji, a Workery wykonują cykliczne zadania w tle. Dzięki historii wartości przed i po zmianie zespół może sprawdzić, co wydarzyło się w każdym imporcie oraz na którym etapie znajduje się konkretna operacja.
Wszystkie widoki użyte w tej realizacji zostały przygotowane na fikcyjnych danych demonstracyjnych. Nie wykorzystują rzeczywistych baz, produktów, cen, stanów, plików ani nazw zewnętrznych źródeł.
Twój projekt
Chcesz podobną realizację?
Opowiedz nam o celu, zakresie i terminie. Wrócimy z dopasowaną propozycją.