
Rozbieżności cenowe u 380 kontrahentów zeszły do zera
Dystrybutor części przemysłowych obsługiwał 380 aktywnych kontrahentów. Każdy miał własne rabaty zależne od grupy towarowej, wielkości zakupów i historii współpracy. Firma korzystała też z limitów kupieckich, płatności odroczonych i zamówień przesyłanych w plikach CSV.
Sklep na PrestaShop miał trzy moduły cenników B2B, kupowane w różnym czasie od różnych producentów. Każdy realizował część zasad naliczania cen, ale nie uwzględniał działania pozostałych. Cena w koszyku potrafiła różnić się od kwoty na fakturze. Wyjaśnienie pojedynczej rozbieżności zajmowało handlowcowi pół dnia.
Analiza przed zakupem kolejnego modułu
Klient chciał wycenić czwarty moduł, który połączy działanie trzech istniejących. Zaproponowałem najpierw dwa tygodnie diagnozy. Opis problemu wskazywał, że potrzebne jest sprawdzenie całego sposobu wyliczania ceny.
Analiza pokazała, że cena zależała od czterech zmiennych: kontrahenta, produktu, wcześniejszych zakupów i salda. Moduły realizowały te zasady niezależnie, obchodząc ograniczenia przyjętego w sklepie modelu danych. Ich połączenie nie zapewniało spójnego wyniku.
Porównanie trzech rozwiązań
Przygotowałem trzy warianty z kosztem, ryzykiem i przewidywanym okresem zwrotu:
- Czwarty moduł oznaczał najmniejszy wydatek, ale oceniałem jego przydatność na około rok.
- Przepisanie zasad cenowych wewnątrz PrestaShop wymagało większej inwestycji i utrzymywania własnego obejścia architektury.
- Osobna usługa naliczająca ceny, a następnie zmiana platformy, była najdroższa, ale pozwalała usunąć źródło rozbieżności.
Do porównania dodaliśmy koszt czasu handlowców i wstrzymanych zamówień w skali roku. Przekraczał różnicę między wariantami. Po uwzględnieniu tej kwoty klient zdecydował się na wydzielenie cen i późniejszą migrację.
Najpierw ceny, potem cały sklep
W pierwszym etapie wydzieliłem obliczanie cen do usługi z API. Dotychczasowy sklep pobierał wynik przez HTTP. Ten etap zajął osiem tygodni i rozwiązał najpilniejszy problem przy zachowaniu bieżącej sprzedaży.
Docelowo sklep został przeniesiony na Syliusa, w którym reguły cenowe można było bezpośrednio opisać w modelu domenowym. Wdrożenie zajęło kolejne pięć miesięcy. Przełączenie nastąpiło po zebraniu półrocznej historii działania usługi cenowej bez rozbieżności.
Wyniki po roku
- Liczba różnic między ceną w koszyku a fakturą spadła z kilkunastu miesięcznie do zera.
- Dodanie reguły rabatowej zajmowało jeden dzień zamiast dwóch lub trzech tygodni oczekiwania na producenta modułu.
- Zamówienia z pliku były obsługiwane bezpośrednio przez sklep, bez zewnętrznego modułu.
- Testy pokrywały 94% logiki cenowej, której błędy bezpośrednio wpływały na rozliczenia.
Dlaczego ten zakres był uzasadniony
O wyborze zdecydowała skala problemu i koszt jego codziennej obsługi. Przy trzydziestu kontrahentach rekomendowałbym pozostanie przy PrestaShop i uporządkowanie modułów. Przy 380 porównanie kosztów uzasadniło zmianę. Migrację warto rozważać po sprawdzeniu, czy tańsze rozwiązanie wystarczy do osiągnięcia celu.