Jak zintegrować sklep internetowy z magazynem i księgowością?
Klient kupuje ostatnią sztukę produktu, choć chwilę wcześniej sprzedano ją w innym kanale. Pracownik przepisuje zamówienie do programu magazynowego, a księgowość otrzymuje dokument z inną kwotą rabatu. Takie sytuacje pokazują, że integracja sklepu internetowego wymaga czegoś więcej niż połączenia dwóch aplikacji. Potrzebne są wspólne identyfikatory, jasne zasady rezerwacji towaru i kontrola nad przepływem danych od zamówienia aż po zwrot.
Ustal, który system odpowiada za poszczególne dane
Zanim wybierzesz sposób połączenia aplikacji, rozpisz przebieg zamówienia. Wskaż, gdzie powstają dane, kto może je zmieniać i dokąd mają trafić. Pozwoli to uniknąć sytuacji, w której sklep i magazyn wzajemnie nadpisują swoje informacje.
Przykładowy podział odpowiedzialności może wyglądać tak:
| Obszar | System odpowiedzialny | Informacje przekazywane dalej |
|---|---|---|
| Zamówienie | Sklep internetowy | Pozycje, ceny, rabaty, dane klienta i dostawy |
| Dostępność towaru | System magazynowy lub ERP | Stan dostępny do sprzedaży, rezerwacje |
| Płatność | Operator płatności lub system rozliczeń | Potwierdzenie wpłaty, kwota, identyfikator transakcji |
| Dokumenty sprzedaży | Program fakturujący lub księgowy | Numer dokumentu, wartości, status wystawienia |
ERP to system wspierający zarządzanie zasobami firmy, który może obejmować magazyn, sprzedaż i finanse. Jeżeli korzystasz z jednego programu do kilku zadań, przepływ będzie prostszy, ale nadal trzeba określić odpowiedzialność za każde pole.
Dla każdej informacji wskaż jedno źródło nadrzędne. Przykładowo opis marketingowy produktu może pochodzić ze sklepu, a ilość dostępna do sprzedaży — z magazynu.
Uporządkuj identyfikatory produktów i wariantów
Integracja musi jednoznacznie rozpoznawać towar. Sama nazwa produktu nie wystarczy: „Koszulka czarna M” i „Czarna koszulka, rozmiar M” mogą oznaczać tę samą pozycję, choć tekst jest inny.
Najczęściej wykorzystuje się SKU, czyli wewnętrzny kod produktu lub wariantu. Każdy sprzedawany rozmiar, kolor czy pojemność powinien mieć własny kod. Jeżeli systemy używają różnych identyfikatorów, przygotuj tabelę powiązań:
- identyfikator wariantu w sklepie;
- SKU;
- identyfikator kartoteki magazynowej;
- kod towaru w programie sprzedażowym, jeśli jest potrzebny.
Dodatkowym identyfikatorem może być GTIN. Jego rolę w jednoznacznym oznaczaniu jednostek handlowych opisuje standard GTIN przedstawiony przez GS1 Polska. Trzeba jednak sprawdzić, czy numery zapisane w aplikacjach odnoszą się do tej samej jednostki: pojedynczej sztuki, zestawu czy opakowania zbiorczego.
Ustal też przeliczniki jednostek. Jeżeli sklep sprzedaje sztuki, a magazyn ewidencjonuje kartony po 12 sztuk, zamówienie dwóch produktów nie może zmniejszać zapasu o dwa kartony. Przy zestawach dostępność powinna uwzględniać zapas wszystkich składników.
Zaprojektuj przepływ od zamówienia do księgowości
Przyjęcie zamówienia i rezerwacja
Po złożeniu zamówienia sklep przekazuje jego numer, pozycje, ilości, ceny, rabaty oraz dane potrzebne do realizacji. System odbierający sprawdza kompletność danych i powiązania produktów.
Następnie powstaje rezerwacja towaru. Nie musi ona oznaczać fizycznego zmniejszenia stanu magazynu — jej zadaniem jest ograniczenie ilości dostępnej dla kolejnych klientów.
Ustal, kiedy rezerwujesz produkty: przy przyjęciu zamówienia czy po płatności. Pierwszy wariant lepiej chroni dostępność podczas oczekiwania na wpłatę, ale wymaga zasad wygasania nieopłaconych rezerwacji.
Płatność, kompletacja i wydanie
Potwierdzenie płatności powinno zostać powiązane z konkretnym zamówieniem. Status „opłacone” uruchamia dalsze czynności zgodnie z przyjętym procesem. Zamówienia za pobraniem potrzebują osobnej ścieżki, ponieważ realizacja zaczyna się przed otrzymaniem pieniędzy.
Po skompletowaniu przesyłki system magazynowy rejestruje wydanie. W tym momencie zmniejsza stan fizyczny i rozlicza odpowiadającą mu rezerwację. Sklep otrzymuje aktualny status realizacji oraz informacje o wysyłce.
Warto przewidzieć wydania częściowe. Jeżeli zamówienie obejmuje trzy produkty, a wysłano dwa, integracja powinna zachować informację o brakującej pozycji.
Przekazanie danych do księgowości
Integracja sklepu z księgowością powinna przekazywać uporządkowane dane, obejmujące między innymi:
- dane nabywcy i identyfikator zamówienia;
- pozycje, ilości, ceny oraz rabaty;
- koszty dostawy i przypisane oznaczenia podatkowe;
- walutę, sposób płatności i powiązanie z wpłatą;
- identyfikatory wystawionych dokumentów.
Moment wystawienia dokumentu i sposób jego obsługi uzgodnij z księgowością. Zamówienie, płatność, wydanie towaru i dokument sprzedaży powinny mieć osobne statusy.
Sprawdź również zaokrąglenia. Rozdzielenie rabatu na pozycje może powodować różnice groszowe, jeśli sklep i program księgowy liczą wartości według innych zasad. Kwoty trzeba uzgodnić przed uruchomieniem automatycznego wystawiania dokumentów.
Jak zapobiegać sprzedaży niedostępnego towaru?
Synchronizacja stanów magazynowych powinna przekazywać ilość dostępną do sprzedaży. Stan fizyczny może obejmować towary już zarezerwowane albo wyłączone z obrotu.
Praktyczna reguła wygląda następująco:
Dostępność = stan fizyczny − aktywne rezerwacje − zapas bezpieczeństwa.
Jeżeli masz 12 sztuk, cztery są zarezerwowane, a jedną pozostawiasz jako bufor, sklep może oferować siedem. Sprawdź przy tym, czy system magazynowy już odejmuje rezerwacje w udostępnianym polu, aby nie odliczać ich ponownie.
Sama częsta aktualizacja nie zabezpiecza przed dwoma równoczesnymi zakupami ostatniej sztuki. Jeżeli potrzebujesz ścisłej kontroli, sprawdzenie dostępności i utworzenie rezerwacji muszą odbywać się jako jedna niepodzielna operacja we wspólnym systemie. Wymiana danych z opóźnieniem wymaga dodatkowych zabezpieczeń, takich jak bufor lub limity dla kanałów sprzedaży.
Ustal też zachowanie podczas awarii. Przy towarach o małym zapasie można czasowo wstrzymać sprzedaż, gdy dane o dostępności są zbyt stare. Po przywróceniu połączenia system powinien porównać stany i uzupełnić brakujące zmiany.
Oddziel anulowanie zamówienia od zwrotu towaru
Anulowanie zamówienia przed wydaniem zwykle wymaga zwolnienia rezerwacji. Nie powinno zwiększać stanu fizycznego, jeżeli towar wcześniej go nie opuścił.
Zwrot po wysyłce ma inny przebieg. Obejmuje przyjęcie przesyłki, kontrolę produktu oraz decyzję, czy może ponownie trafić do sprzedaży. Samo zgłoszenie zwrotu przez klienta nie powinno zwiększać dostępności.
W integracji rozdziel trzy zdarzenia:
- Zgłoszenie zwrotu — wskazuje zamówienie, pozycje i ilości.
- Przyjęcie oraz ocena towaru — określa, co wraca do sprzedaży, a co wymaga wyłączenia.
- Rozliczenie finansowe — wiąże zwrot pieniędzy i odpowiednie dokumenty z pierwotną transakcją.
Obsługa musi działać także dla zwrotów częściowych. Oddanie jednej sztuki z zamówionych trzech powinno zmienić właściwą ilość i wartość. Zasady rozliczania rabatów oraz dostawy ustal wcześniej z księgowością.
Zadbaj o ponawianie operacji i kontrolę błędów
API, czyli interfejs umożliwiający komunikację między programami, pozwala automatycznie przesyłać dane. Sam dostęp do API nie przesądza jednak o niezawodności połączenia.
Integracja powinna bezpiecznie ponawiać nieudane operacje. Jeśli program utworzył dokument, ale sklep nie otrzymał potwierdzenia, ponowienie żądania musi rozpoznać wcześniejszy zapis. Inaczej powstanie drugi dokument dla tej samej sprzedaży.
Potrzebne są również rejestr błędów, powiadomienia dla odpowiedzialnej osoby oraz możliwość ponownego przetworzenia wybranego zamówienia. Starsza aktualizacja nie powinna nadpisywać nowszego stanu. Okresowe porównanie danych między aplikacjami pomaga wykryć zdarzenia pominięte podczas przerwy w komunikacji.
Uruchom integrację po sprawdzeniu pełnych scenariuszy
Przed wdrożeniem przetestuj zakup ostatniej sztuki przez dwóch klientów, ponowne przesłanie zamówienia, brak płatności, anulowanie, częściową wysyłkę i częściowy zwrot. Dodaj próbę przerwania połączenia po zapisaniu dokumentu, lecz przed odebraniem potwierdzenia.
Dla każdego przypadku porównaj stan magazynu, rezerwacje, kwotę zamówienia i dokumenty. Sprawdź również, czy pracownik widzi przyczynę błędu i wie, jak dokończyć obsługę.
Wdrożenie warto rozpocząć od ograniczonej grupy produktów lub zamówień. Dopiero po potwierdzeniu zgodności danych rozszerz automatyzację. Dobrze zaprojektowana integracja sklepu internetowego pozwala prześledzić każdą sprzedaż: od rezerwacji konkretnego produktu, przez jego wydanie, aż po rozliczenie i ewentualny zwrot.