← Wszystkie realizacje
Scotts Miracle-Gro USA

Sklep sprzedawał szybciej, niż magazyn nadążał dzielić paczki

System obsługi zamówień dla producenta nawozów – pobiera je z Shopify, dzieli na przesyłki według wagi i reguł wysyłki, i prowadzi przez cały proces realizacji.

Sklep na gotowej platformie uruchamia się w tydzień i przez pierwsze miesiące wszystko działa. Problem pojawia się wtedy, gdy zamówień jest dużo, a produkt jest ciężki, płynny albo objęty przepisami o przewozie chemii. Wtedy „zamówienie” przestaje równać się „paczce”.

Co się działo wcześniej

Scotts Miracle-Gro sprzedaje nawozy i środki do pielęgnacji trawników. Sklep stoi na Shopify, który świetnie przyjmuje zamówienia i nie ma zdania na temat tego, jak podzielić dwadzieścia kilogramów produktu między przesyłki, których waga jest ograniczona, albo co zrobić, gdy jedna pozycja jedzie z innego magazynu niż reszta.

Przy każdym większym zamówieniu decydował o tym człowiek na magazynie. Do pewnej skali to działa, a potem zaczyna kosztować. Błędy w podziale, powtórne pakowanie, przesyłki droższe, niż musiały być, i klient, który dostaje trzy paczki w trzech różnych dniach, bez słowa wyjaśnienia.

Co zbudowaliśmy

Aplikację, która siedzi między sklepem a realizacją i przejmuje całą logikę obsługi zamówienia.

Pobieranie zamówień ze sklepu. Integracja z Shopify, która zdejmuje zamówienie i pilnuje, żeby żadne nie zniknęło po drodze ani nie zostało przetworzone dwa razy.

Dzielenie na przesyłki. Reguły wagowe, magazynowe i produktowe decydują, z ilu paczek składa się zamówienie i co trafia do której. To samo zamówienie w różnych konfiguracjach rozpada się inaczej i robi to system, a nie człowiek z kalkulatorem.

Prowadzenie przez proces. Zamówienie przechodzi kolejne stany aż do wysyłki, a każdy krok zostaje zapisany. Gdy coś się zatnie, widać w którym miejscu.

Dane do planowania. Informacje o zamówieniach wracają w postaci, z której da się korzystać przy planowaniu, zamiast siedzieć wyłącznie w panelu sklepu.

Jak to zmienia pracę

Najwięcej zmienia to, że o podziale przesyłki nie decyduje już pracownik magazynu. Reguła działa za każdym razem tak samo, więc koszt wysyłki da się przewidzieć, a pytanie „dlaczego dostałem to w trzech paczkach” przestaje zależeć od czyjegoś nastroju tamtego dnia.

Druga zmiana dotyczy odporności. Integracja ze sklepem bez zabezpieczeń gubi zamówienia przy każdej dłuższej awarii – i dowiadujesz się o tym od klienta. Tutaj przetwarzanie jest kolejkowane i powtarzalne, więc chwilowa niedostępność jednej strony nie kosztuje utraconego zamówienia.

Dlaczego zrobiliśmy to w ten sposób

Gotowa platforma sklepowa jest dobrym miejscem na sprzedaż i złym miejscem na reguły operacyjne firmy. Logika podziału przesyłek siedzi więc poza sklepem, w osobnej aplikacji. Dzięki temu zmiana reguł wysyłki nie wymaga grzebania w sklepie, a zmiana platformy sprzedażowej w przyszłości nie oznacza odbudowywania całej obsługi zamówień od nowa.

Pokaż stos technologiczny
  • NestJS
  • TypeORM
  • TypeScript
  • RxJS
  • Swagger
  • Jest
  • CQRS
  • DDD
  • Google Cloud Tasks
  • Google Cloud Logging
  • Winston

Masz podobny problem u siebie?

Opisz go w dwóch zdaniach. Odpowiemy, czy da się go rozwiązać i ile to zajmie.

Napisz do nas
Albo napisz bezpośrednio na hello@udb.pl