Integracja sklepu z systemem magazynowym jest najczęstszym powodem rozbudowy Subiekta. Rozstrzyga się na kilku decyzjach, nie na wyborze narzędzia.
Kierunki przepływu
Z systemu do sklepu: kartoteki, ceny, stany. Ze sklepu do systemu: zamówienia i dane klientów. Każdy kierunek ma inną częstotliwość i inne ryzyka.
Warto rozpisać to na kartce przed pierwszą linijką kodu: co, dokąd, jak często i co się dzieje, gdy przesyłka nie dojdzie. Większość awarii integracji to nie błąd przesyłania, tylko brak odpowiedzi na to ostatnie pytanie.
Który system jest nadrzędny
Zwykle magazynowy dla stanów i cen, sklep dla treści i zdjęć. Bez tego rozstrzygnięcia zmiany nadpisują się nawzajem.
Rozstrzygnięcie musi być rozłączne: dla każdego pola jedno miejsce, w którym się je zmienia. Jeśli nazwa towaru jest poprawiana i w systemie, i w sklepie, to przy każdej synchronizacji jedna z poprawek ginie. Ludzie przestają wtedy ufać obu systemom i zaczynają prowadzić trzeci — w arkuszu.
Stany
Wymagają najczęstszej aktualizacji. Przy szybkiej rotacji różnica godzinna oznacza sprzedaż towaru, którego nie ma.
Częstotliwość dobiera się do rotacji, nie do możliwości technicznych. Przy towarze schodzącym pojedynczo w tygodniu wysyłanie stanów co minutę tylko obciąża system. Przy sprzedaży ostatnich sztuk z serii nawet kilkanaście minut opóźnienia to za dużo. Częściowym zabezpieczeniem jest bufor: część stanu zostaje nieujawniona w sklepie, żeby wchłonąć różnice.
Przy wielu magazynach dochodzi pytanie, który z nich zasila sprzedaż wysyłkową. Wysyłanie sumy stanów jest najprostsze i najczęściej błędne.
Powiązanie kartotek
Po symbolu albo kodzie kreskowym. To powiązanie musi być jednoznaczne i utrzymywane — rozjazd tutaj psuje całą integrację.
Kluczowa zasada: identyfikator łączący nie może się zmieniać. Jeśli ktoś poprawi symbol towaru, bo „ładniej wygląda”, powiązanie pęka i pozycja zaczyna żyć w sklepie własnym życiem. Zmiana symbolu powinna być czynnością wyjątkową, wykonywaną świadomie i z poprawieniem drugiej strony.
Zamówienia
Pobierane cyklicznie, zamieniane na dokument w systemie. Powtórne pobranie tego samego zamówienia nie może utworzyć duplikatu.
Zabezpieczeniem jest zapamiętanie identyfikatora zamówienia po stronie systemu i sprawdzanie go przed wystawieniem dokumentu. Bez tego wystarczy jedno ponowne uruchomienie po awarii, żeby powstał drugi komplet dokumentów.
Obsługa błędów
Zamówienie z towarem spoza kartoteki albo z nieznanym sposobem płatności musi trafić do kolejki wymagającej decyzji, a nie zniknąć.
Kolejka potrzebuje właściciela i codziennego przeglądu. Kolejka, do której nikt nie zagląda, jest tym samym co brak kolejki, tylko z fałszywym poczuciem bezpieczeństwa.
Kiedy nie warto pisać własnej
Jeśli sklep stoi na popularnym silniku, a potrzeby są typowe, gotowe rozwiązanie zamyka temat szybciej i taniej. Podobnie gdy firma sprzedaje w kilku kanałach — wtedy sensowniejszy bywa układ z platformą wielokanałową pośrodku. Własna integracja ma sens przy nietypowym procesie, którego gotowe narzędzie nie obsługuje bez obchodzenia go z boku.