1. Opis ogólny
Elementy automatyzacji
Poziomy automatyzacji X,Y
2. Modele organizacyjne
2.1 Kompletacja [d][k]
2.2 Kompletacja dokumentu wysyłki [SD]
2.3 Kompletacja wysyłki, Sprawdzanie wysyłki
2.4 Wave Picking, Bath Picking, Robotyzacja
3. Kody kreskowe. Zastosowania
4. Rozwiązania techniczne WMS
5. Trawers ERP + WMS/BinLoc (AsystentAI)
6. Model danych i model funkcjonalny (AsystentAI)
7. Tematy powiązane
1. Opis ogólny
Automatyzacja w magazynie, to zespół rozwiązań organizacyjnych i środków
technicznych stosowanych dla uproszczenia i przyśpieszenia procesów
składowania, pobierania i przemieszczania asortymentu i powiązanej
z nimi ewidencji danych (dokumentowania).
Elementy automatyzacji
* Standardy w oznaczaniu: GTIN, GLN, GSIN, GS1-128, IZ Identyfikatory Zastosowań
* Czytniki kodów kreskowych (skanery) do odczytywania danych
* Etykiety jako nośniki danych
- oznaczenia towarów, etykiety na opakowaniach
- oznaczenia miejsc składowwania (lokalizacji) - przywieszki
- oznaczenia asortymentu do pobrania i składowania - kody na wydrukach
* Komputery przenośne ułatwiające dostęp do miejsc składowania (lokalizacji)
* Standardy opakowań, np. DOX (koperta), Paczka (Box), Paleta, Nietypowe
* Oprogramowanie sterujące: algorytmy, bazy danych, wymiana danych
* Rozwiązania organizacyjne: Pick-by-Light, Pick-by-Voice
* Automatyczna identyfikacja, IoT
* Urządzania techniczne: wózki, pojemniki, przenośniki, taśmociągi, roboty
* Wyświetlacze i tablice informacyjne
* Robotyzacja
Poziom automatyzacji. Rysunek
Poziom automatyzacji można wyznaczyć na przecięciu osi X,Y (rysunek poniżej)
Oś X
====
Sposób przemieszczania asortymentu
Recznie: Magazynier umieszcza asortyment w pojemnikach i przenosi.
Automatycznie: Urządzenia przemieszczają asortyment.
Oś Y
====
Sposób podejmowania decyzji o pracy poszczególnych magazynierów.
Ręczna: Używają wydruków, sami decydują o tym jak przemieszczają się
po magazynie, który asortyment pobierać i skąd.
Elementy automatyzacji:
Program wyznacza zadania: asortyment do pobrania, lokalizację,
trasę przemieszczania się, identyfikacja pojemników, palet.
Informacje przekazane na ekranach komputerów przenośnych,
dane odczytywane skanerami.
Automatyzacja zaawansowana:
Automaty, roboty, przenośniki, karuzele, np. magazyny Amazona
----------------------------------------------------------
Y
^
| |
| 2 | [ ]
| . Automatyzacja
D | . zaawansowana
E | .
C | .
Y |
Z | . [ ] Elementy automatyzacji
J | . WMS Wózki Palety
E | .
| .
| | .
| | [ ] Bez automatyzacji
| 1 |
| o----------------------------------------------------> X
| 1. Recznie 2. Automatycznie
|
| Sposób przemieszczania asortymentu
|
|
|
o--- Sposób podejmowania decyzji
1. Ręcznie
2. Automatycznie
----------------------------------------------------------
2. Modele organizacyjne (przykłady)
2.1 Kompletacja [d][k]
Wykonanie w dwóch krokach: [d][k]
[d] Gotowe do kompletacji
Oznaczenie zamówień sprzedaży
[k] Pobrane do kompletacji
Pobranie asortymentu ze wskazanych lokalizacji (Pick)
Ręczne korekty na zestawieniu
Przepisanie zamówienia do faktury sprzedaży
Zatwierdzenie faktury generuje [RO] Dokument rozchodu
Wysyłka, organizacja i dokumenty
Patrz tez: MG >Statystyki kompletacji [MG_DRO2K]
Informacje o przebiegu kompletacji w układzie wg operatorów.
Można porównywać wydajność pakowaczy.
TODO: Zrezygnować z wydruków, użyć terminal przenośny
Patrz niżej, rozbudowa DC: MG > Rozchód do zamówienia [DC_DMG02]
--> Paperless Picking
2.2 [SD] Dokument wysyłki
Utworzenie dokumentu [SD] Wysyłka. Zawiera asortyment wysyłany na wskazany
adres wysyłkowy (adres przeznaczenia). Można utworzyć na podstawie wielu
zamówień sprzedaży.
Pobranie asortymentu ze wskazanych lokalizacji (Pick)
Ręczne korekty na dokumencie, np. brak niektórych pozycji w magazynie
Generowanie [RO] Dokument rozchodu
Zatwierdzenie [RO] Dokument rozchodu
Utworzenie dok [FA] Faktura sprzedaży wg [RO] Dokument rozchoduZarządzanie wysyłkami [SD][LD]
TODO: Zrezygnować z wydruków, użyć terminal przenośny
Rozbudować DC. Dodac func: MG > Rozchód do [SD] Wysyłka
TODO: Automatyzować proces [FA] -> [SD] -> [RO] -> [FA]
(en: Pick Pack Ship)
TODO: Automatyzować wskazanie asortymentu do pobrania.
Stosować wyświetlacze w miejscach pakowania
MG > Rozchody > Do zam sprzedaży > Klawiatura, Skaner [MG_DRO2D]
a) Skanowanie asortymentu pobieranego z poszczególnych lokalizacji w magazynie.
Program zapisuje ilości wydane. Tworzy kolejne pozycje dokumentu: [RO] Rozchód.
Listę zamówień można zawęzić do oznaczonych [k] --> Kompletacja [d][k]
Fakturę sprzedaży tworzy się wg dok [RO] Rozchód [NA_DWZ30]
b) Skanowanie asortymentu zgromadzonego do wysyłki. Program zapisuje ilości
wydane. Tworzy kolejne pozycje dokumentu [RO] Rozchód.
Można porównać i ilości na zamówieniu sprzedaży z pobranym
(zgromadzonym) asortymentem.
Kody kreskowe Zastosowania
NOTE: (w planach) Asortyment skanowany można umieszczać w opakowaniach (box).
Po zapełnieniu boxu można wydrukować etykietę na box i pakować
kolejny box.
NOTE: Patrz też DC: MG > Rozchód do zamówienia [DC_DMG02]
Ew. rozbudować:
- Listę zamówień zawęzić do oznaczonych [k] --> Kompletacja
- Pokazywać ilości: Zamówione | Do wydania | WydanoTeraz
P. Czy i jak można rozbudować funkcję DC: MG > Rozchód do zamówienia [DC_DMG02]
aby umożliwić kompletację do zamówień z użyciem skanerów ?
O. Tak, zastosować procedurę (kroki) opisane w [MG_DRO2D] tj. [ZL] > Skanowanie > [RO] > [FA]
Skanować lokalizację i asortyment, tworzyć kolejne pozycje [RO] Rozchód.
Zatwierdzić dokument [RO] Rozchód.
Utworzyć [FA] Faktura sprzedaży: NA > Fakturowanie [NA_DWZ30].
Dodatkowo do zrobienia:
- umożliwienie powrotu do ewidencji po przerwaniu połączenia z terminalem
tj. dodac wyszukiwanie, korygowanie i usuwanie pozycji dokumentów
z użyciem skanera
- pomijanie z list wyboru zamówień pobranych do kompletacji [k]
- ew. dodanie wskaźnika [s] Kompletacja zakończona
umożliwia przejście do kolejnego etapu - wystawienie faktury
2.4 Wave Picking, Bath Picking, Robotyzacja
Wave Picking
NOTE: Większe organizacje
Cel: Zmniejszyć liczbę przemieszczeń pracownika magazynu (Picker)
Metoda: Jednoczesne kompletowanie asortymentu dla wielu zamówień
Ręcznie: Magazynier (Picker) chodzi z dwoma lub wieloma wydrukami zamówień
Automatycznie: System grupuje asortyment i zleca zadanie magazynierowi
Magazynier (Picker) chodzi i umieszcza asortyment w pojemnikach,
oddzielnie dla każdej wysyłki
https://www.cartoncloud.com/blog/what-is-wave-picking
Batch Picking
NOTE: Mniejsze organizacje
Cel: j/w
Metoda: j/w
Różnica: Magazynier (Picker) chodzi i pobiera asortyment
dla wielu zamówień i przekazuje do sekcji pakowania.
Pakowacz (Packer) sortuje wg zamówień i pakuje do wysyłki
Robotyzacja
Robot rozpoznaje 90% asortymentu (system wizyjny), pobiera (ramię) i umieszcza
w przenośniku.
Np. robot KNAPP Pick-it-Easy zastosowano w branży odzieżowej, w której jest
duża różnorodność rozmiarów, kształtów, materiałów, wagi i rodzajów opakowań.
Zastosowanie robotów znacznie przyśpiesza proces kompletacji do wysyłki.
Przede wszystkim dla odbiorców kupujących w sieci (e-commerce).
3. Kody kreskowe. Zastosowania
Auto-ID Automatyczna identyfikacja
Kody kreskowe mają zastosowanie w tych rozwiązaniach sprzętowych, programowych
i organizacyjnych, ktore pozwalają na wprowadzanie danych do systemów
informatycznych bezpośrednio, bez użycia klawiatury.
Patrz też:
Auto-ID Automatyczna identyfikacja
Do magazynu trafia asortyment na paletach, z zakupu lub produkcji.
Na opakowaniach są etykiety z informacjami o asortymencie.
Wzorce etykiet. Przykłady
ZP > Dokumenty > Przychód z produkcji > Z etykiet z kodem GS1-128 [ZP_DPZ1F]
Do magazynu przyjmuje się wyroby z produkcji.
Dokumenty w produkcji
Etykiety miejsc składowania WMS
Miejsca składowania mają swoje unikalne oznaczenia (numery, kody).
Zwykle wydrukowane na etykietach, umieszczone są półkach, pojemnikach.
WMS Miejsca składowania Kody kreskowe
Stany asortymentu można rejestrować do programu bezpośrednio na terminalach.
Terminal można postawić na wózku i skanować czytnikiem kodu kreskowego.
Wg kodu EAN13 (w karcie KIM) lub wg kodu KID.
Inwentaryzacja on-line
4. Rozwiązania techniczne WMS
4.1 Dyspozytor pracy magazynu
WES Warehouse Execution System.
Najprościej można powiedzieć, że WES to 'dyspozytor pracy magazynu'. Na bieżąco decyduje,
które zadanie wykonać najpierw, komu lub jakiej maszynie je przydzielić oraz jak najlepiej
wykorzystać ludzi i automatykę.
WES - system wykonawczy magazynu - steruje codzienną pracą magazynu w czasie rzeczywistym.
Odbiera informacje o zamówieniach i dostępnych towarach, a następnie organizuje ich realizację:
przydziela zadania pracownikom, wózkom, sorterom, przenośnikom lub robotom.
Na bieżąco reaguje na opóźnienia, zatory i zmieniające się priorytety.
Można powiedzieć, że WES jest 'mózgiem operacyjnym magazynu' - pilnuje, aby właściwy towar
został pobrany, spakowany i wysłany we właściwym czasie, przy jak najlepszym wykorzystaniu ludzi i urządzeń.
Jeszcze bardziej obrazowo:
ERP mówi, co firma ma zrealizować, WMS określa, gdzie znajduje się towar, a WES organizuje i steruje tym, jak magazyn ma wykonać pracę.
WES może wymieniać dane z ERP, WMS i innymi aplikacjami - podobnie jak systemy zewnętrzne
komunikują się z Trawersem przez usługi pobierania i zapisywania danych SOA.
Operacyjnie dotyczy m.in. przyjęć, rozchodów, zwrotów i przesunięć magazynowych.
4.2 Urządzania techniczne
NOTE: Wymieniono niektóre urządzenia stosowane w magazynach.
conveyor
Przenośnik. Urządzenie transportowe, przeznaczone do przemieszczania
ładunków, po określonym torze
carousel
Magazyn karuzelowy, pionowy i poziomy. Urządzenia dostarczają ładunki
do miejsc pakowania
chart
Wózek magazynowy
gravity roller
Urządzenie transportujące wykorzystujące grawitację do przemieszczania ładunków
tote, totes
Pojemnik magazynowy, skrzynka. Do przewożenia asortymentu w magazynie (Tote).
Do składowania na półkach (Tote Bin). Do transportu pojazdami (Totes)
Pojemniki mogą być zwrotne.
--> opakowania zwrotne
warehouse robots
Roboty magazynowe. Najpopularniejsze zastosowano w magazynach Amazona
verical storage lift
Pionowe regały windowe
Przykłady rozwiązań technicznych i programowych:
* Radio Beacon
* Accellos One Warehouse
* Scancode WMS
* Oracle WMS
* AutoMAG Shuttle
5. Trawers ERP + WMS/BinLoc (AsystentAI)
5.1 WMS/BinLoc + Automatyka magazynu
Pytanie: Czy można zintegrować moduły BinLoc z rozwiązaniami zewnętrznymi ?
Wg modelu:
Trawers ERP + WMS/BinLoc = system nadrzędny dla stanów, lokalizacji
i dyspozycji magazynowych
Dostawca zewnętrzny = warstwa techniczna / wykonawcza / automatyzacyjna
Odpowiedź (AsystentAI):
Nie rozwijać Trawers ERP + WMS/BinLoc jako system nadrzędny do zarządzania
magazynem i logistyką przyjęć i wydań.
Te obszary oddać do: Operator logistyczny/fulfillment.
Wg modelu:
Producent -> Magazyn zewnętrzny / 3PL / fulfillment -> Konsument
^ ^ ^
| | |
Trawers ERPOperator logistycznyKonsument
Producent nie buduje własnego dużego magazynu operacyjnego.
Towar trafia do operatora logistycznego, a ten obsługuje składowanie, kompletację,
pakowanie i wysyłkę.
WMS potrzebny jest przede wszystkim u operatora logistycznego.
Producent potrzebuje ERP do obsługi produkcji, zamówień, faktur, zapasów
i integracji z operatorem.
5.2 Podział ról
Taki model wynika z podziału ról (zadań):
Zamiast klasycznego:
Producent -> Hurtownik -> Detalista -> Konsument
proponowałbym myśleć tak:
Właściciel towaru -> Miejsce magazynowania -> Kanał sprzedaży -> Odbiorca
Czyli:
Właściciel towaru - kto ma zapas i dokumenty handlowe.
Miejsce magazynowania - gdzie fizycznie leży towar.
Kanał sprzedaży - sklep, B2B, marketplace, handlowiec, EDI.
Odbiorca - firma lub konsument.
WMS jest potrzebny głównie w punkcie nr 2.
6. Model danych i model funkcjonalny
Trawers jako ERP producenta + integracja z zewnętrznym magazynem/automatyką/fulfillmentem
Model dla wariantu:
Producent pracuje w Trawers ERPMagazyn fizyczny prowadzi zewnętrzny operator logistyczny / fulfillment / automatykaOperator ma własny WMSTrawers nie zarządza każdą lokalizacją fizyczną u operatora, ale zna zapas, statusy i dokumenty
To jest inny model niż klasyczne 'Trawers WMS/BinLoc steruje magazynem'.
Tutaj Trawers jest systemem właściciela towaru i dokumentów, a zewnętrzny WMS
jest systemem wykonawczym magazynu.
6.1 Główna zasada architektury
Najważniejsze rozdzielenie odpowiedzialności:
| Obszar | System nadrzędny |
| -------------------------------------------------- | ------------------------------------------ |
| Kartoteki towarów | Trawers |
| Zamówienia sprzedaży | Trawers |
| Zamówienia zakupu / produkcji | Trawers |
| Dokumenty handlowe i magazynowe właściciela towaru | Trawers |
| Stany właścicielskie: ile sztuk należy do firmy | Trawers |
| Lokalizacje fizyczne w magazynie operatora | WMS operatora |
| Kompletacja, pakowanie, etykiety, wysyłka | WMS operatora |
| Automatyka magazynowa | WMS operatora albo jego warstwa techniczna |
| Potwierdzenia wykonania operacji | WMS operatora Trawers |
Czyli:
Trawers mówi: co ma być przyjęte, wydane, zablokowane lub zwrócone.Operator WMS mówi: co faktycznie przyjął, wydał, spakował, wysłał albo uszkodził.
6.2 Model magazynu w Trawersie
W Trawersie warto założyć osobny magazyn logiczny, np.:
MAG_3PL - magazyn zewnętrzny operatora
Ten magazyn nie musi mieć pełnej struktury BinLoc po stronie Trawersa.
Trawers nie musi wiedzieć, że towar leży w regale A-03-02 albo w automacie shuttle.
To wie WMS operatora.
W Trawersie wystarczy utrzymywać:
| Dane | Poziom szczegółowości w Trawersie |
| ------------------------- | --------------------------------- |
| Towar | Tak |
| Ilość | Tak |
| Partia / seria | Tak, jeżeli istotne |
| Data ważności | Tak, jeżeli istotna |
| Status zapasu | Tak |
| Lokalizacja fizyczna | Opcjonalnie, zwykle nie |
| Nośnik / paleta / SSCC | Opcjonalnie |
| Rezerwacje pod zamówienia | Tak |
| Historia dokumentów | Tak |
Czyli Trawers przechowuje zapas właścicielski, a WMS operatora przechowuje
zapas fizyczno-operacyjny.
6.3 Kategorie wymienianych danych
Wymianę danych można podzielić na cztery grupy:
1. Dane słownikowe - co to jest za towar, klient, dostawca, jednostka, kod EAN.
2. Dyspozycje - co operator ma zrobić.
3. Potwierdzenia wykonania - co operator faktycznie zrobił.
4. Dane kontrolne - stany, różnice, korekty, inwentaryzacje, błędy.
To jest zdrowszy model niż ciągła dwustronna synchronizacja wszystkich tabel.
6.4 Model danych - komunikaty podstawowe
A. Kartoteka towarowaKierunek: Trawers -> WMS operatora
Komunikat: `ITEM_MASTER`
Minimalne pola:
| Pole | Znaczenie |
| -------------------- | ----------------------------------------- |
| `item_id_erp` | Kod towaru w Trawersie |
| `item_name` | Nazwa towaru |
| `ean` | Kod kreskowy |
| `unit_base` | Jednostka podstawowa, np. szt., kg, opak. |
| `unit_sales` | Jednostka sprzedaży |
| `conversion_factor` | Przelicznik jednostek |
| `weight` | Masa |
| `dimensions` | Wymiary |
| `lot_required` | Czy wymagana partia |
| `serial_required` | Czy wymagany numer seryjny |
| `expiry_required` | Czy wymagana data ważności |
| `storage_conditions` | Warunki składowania |
| `abc_class` | Klasa rotacji, opcjonalnie |
| `fifo_fefo_rule` | FIFO, FEFO, LIFO, ręcznie |
| `hazard_class` | Towar niebezpieczny, opcjonalnie |
| `is_active` | Czy kartoteka aktywna |
Trawers powinien być źródłem prawdy dla kartoteki. Operator nie powinien samodzielnie
zakładać nowych indeksów towarowych bez synchronizacji z Trawersem.
B. Kontrahenci i adresyKierunek: Trawers -> WMS operatora
Komunikaty:
`CUSTOMER_MASTER`
`SUPPLIER_MASTER`
`DELIVERY_ADDRESS`
Minimalne pola:
| Pole | Znaczenie |
| ----------------------- | ---------------------------- |
| `customer_id_erp` | Kod klienta w Trawersie |
| `name` | Nazwa |
| `tax_id` | NIP, opcjonalnie |
| `address` | Adres podstawowy |
| `delivery_address_id` | Identyfikator adresu dostawy |
| `contact_person` | Osoba kontaktowa |
| `phone` | Telefon |
| `email` | E-mail |
| `country_code` | Kraj |
| `delivery_instructions` | Instrukcje dostawy |
W praktyce operatorowi częściej potrzebny jest adres dostawy z konkretnego zlecenia,
a nie pełna baza kontrahentów. Dlatego baza klientów może być przekazywana minimalnie,
a pełne dane adresowe mogą przychodzić razem ze zleceniem wydania.
C. Awizo przyjęciaKierunek: Trawers -> WMS operatora
Komunikat: `INBOUND_ADVICE`
Źródłem może być:
* zamówienie zakupu,
* przesunięcie międzymagazynowe,
* przyjęcie z produkcji,
* zwrot od klienta,
* import,
* kompletacja zestawu.
Minimalne pola nagłówka:
| Pole | Znaczenie |
| ---------------------- | ------------------------------------------ |
| `inbound_id_erp` | Numer awiza w Trawersie |
| `source_document_type` | Typ dokumentu: zakup, produkcja, zwrot, MM |
| `source_document_no` | Numer dokumentu źródłowego |
| `supplier_id` | Dostawca lub źródło |
| `expected_date` | Planowana data przyjęcia |
| `warehouse_id` | Np. MAG_3PL |
| `priority` | Priorytet |
| `remarks` | Uwagi |
Pola pozycji:
| Pole | Znaczenie |
| ------------------------- | -------------------------- |
| `line_no` | Numer pozycji |
| `item_id_erp` | Kod towaru |
| `qty_expected` | Ilość oczekiwana |
| `unit` | Jednostka |
| `lot_no` | Partia, jeśli znana |
| `serial_no` | Numer seryjny, jeśli znany |
| `expiry_date` | Data ważności |
| `quality_status_expected` | Np. wolny, kwarantanna |
| `sscc_expected` | Paleta/nośnik, opcjonalnie |
D. Potwierdzenie przyjęciaKierunek: WMS operatora -> Trawers
Komunikat: `INBOUND_CONFIRMATION`
To jest jeden z najważniejszych komunikatów, bo na jego podstawie Trawers
powinien zaksięgować faktyczne przyjęcie do magazynu zewnętrznego.
Pola nagłówka:
| Pole | Znaczenie |
| ----------------------- | --------------------------------------- |
| `inbound_id_erp` | Numer awiza z Trawersa |
| `inbound_id_wms` | Numer operacji w WMS operatora |
| `confirmation_datetime` | Data i czas potwierdzenia |
| `status` | Przyjęte, częściowo przyjęte, odrzucone |
| `operator_reference` | Referencja operatora |
Pola pozycji:
| Pole | Znaczenie |
| ---------------- | -------------------------- |
| `item_id_erp` | Kod towaru |
| `qty_received` | Ilość przyjęta |
| `qty_damaged` | Ilość uszkodzona |
| `qty_quarantine` | Ilość do kwarantanny |
| `lot_no` | Partia |
| `serial_no` | Numer seryjny |
| `expiry_date` | Data ważności |
| `quality_status` | Status jakościowy |
| `sscc` | Paleta/nośnik, opcjonalnie |
Efekt w Trawersie:
utworzenie / zatwierdzenie dokumentu PZ, PW, MM+ albo przyjęcia zwrotu do MAG_3PL.E. Zlecenie wydaniaKierunek: Trawers -> WMS operatora
Komunikat: `OUTBOUND_ORDER`
Źródłem może być:
* zamówienie sprzedaży,
* dyspozycja wydania do klienta,
* przesunięcie do innego magazynu,
* wysyłka do marketplace,
* wysyłka B2B,
* wysyłka B2C.
Pola nagłówka:
| Pole | Znaczenie |
| -------------------------- | --------------------------- |
| `outbound_id_erp` | Numer dyspozycji z Trawersa |
| `sales_order_no` | Numer zamówienia sprzedaży |
| `customer_id` | Klient |
| `delivery_address` | Adres dostawy |
| `requested_ship_date` | Oczekiwana data wysyłki |
| `carrier_code` | Kurier / przewoźnik |
| `service_code` | Usługa transportowa |
| `cod_amount` | Pobranie, opcjonalnie |
| `insurance_amount` | Ubezpieczenie, opcjonalnie |
| `priority` | Priorytet |
| `partial_shipment_allowed` | Czy można wysłać częściowo |
| `remarks_for_warehouse` | Uwagi dla magazynu |
| `remarks_for_carrier` | Uwagi dla kuriera |
Pola pozycji:
| Pole | Znaczenie |
| ---------------------- | ------------------------------ |
| `line_no` | Numer pozycji |
| `item_id_erp` | Kod towaru |
| `qty_ordered` | Ilość do wydania |
| `unit` | Jednostka |
| `lot_no_required` | Wymagana partia, opcjonalnie |
| `expiry_rule` | FEFO / minimalna data ważności |
| `serial_required` | Czy zwrócić numery seryjne |
| `substitution_allowed` | Czy można zamiennik |
| `packing_instruction` | Instrukcja pakowania |
F. Potwierdzenie wydania / wysyłkiKierunek: WMS operatora -> Trawers
Komunikat: `OUTBOUND_CONFIRMATION`
To jest drugi krytyczny komunikat. Na jego podstawie Trawers powinien utworzyć
lub zatwierdzić dokument WZ, rozchód magazynowy, fakturę albo status wysyłki.
Pola nagłówka:
| Pole | Znaczenie |
| ------------------- | ------------------------------------- |
| `outbound_id_erp` | Numer dyspozycji z Trawersa |
| `outbound_id_wms` | Numer operacji w WMS |
| `shipment_datetime` | Data i czas wysyłki |
| `status` | Wysłane, częściowo wysłane, anulowane |
| `carrier_code` | Kurier |
| `tracking_no` | Numer przesyłki |
| `parcel_count` | Liczba paczek |
| `gross_weight` | Waga brutto |
| `shipping_cost` | Koszt, opcjonalnie |
Pola pozycji:
| Pole | Znaczenie |
| ----------------- | ------------------------------------- |
| `line_no` | Pozycja zlecenia |
| `item_id_erp` | Kod towaru |
| `qty_picked` | Ilość pobrana |
| `qty_shipped` | Ilość wysłana |
| `lot_no` | Partia faktycznie wydana |
| `serial_no` | Numer seryjny |
| `expiry_date` | Data ważności |
| `shortage_reason` | Powód braku, jeśli nie wydano całości |
Efekt w Trawersie:
zatwierdzenie WZ / rozchodu / statusu zamówienia / danych do faktury / numeru listu przewozowego.G. Stany magazynowe
Są dwa możliwe modele.
Model 1 - zdarzeniowy
WMS wysyła do Trawersa każde zdarzenie zmieniające stan:
`STOCK_MOVEMENT`
Przykłady:
* przyjęcie,
* wydanie,
* przesunięcie statusu,
* blokada,
* odblokowanie,
* uszkodzenie,
* korekta,
* inwentaryzacja.
To daje dużą szczegółowość, ale wymaga bardzo dobrej kontroli kolejności
i idempotencji komunikatów.
Model 2 - migawka stanu
WMS raz na określony czas wysyła stan:
`STOCK_SNAPSHOT`
Pola:
| Pole | Znaczenie |
| ------------------- | ---------------------------- |
| `snapshot_datetime` | Moment wykonania migawki |
| `warehouse_id` | MAG_3PL |
| `item_id_erp` | Kod towaru |
| `qty_available` | Dostępne |
| `qty_reserved` | Zarezerwowane |
| `qty_blocked` | Zablokowane |
| `qty_damaged` | Uszkodzone |
| `qty_quarantine` | Kwarantanna |
| `lot_no` | Partia |
| `expiry_date` | Data ważności |
| `serial_no` | Numer seryjny, jeśli dotyczy |
Najpraktyczniejszy wariant to połączenie obu:
potwierdzenia operacji online + dzienna migawka kontrolna.
Czyli Trawers aktualizuje stany na podstawie potwierdzeń, a raz dziennie
porównuje swoje saldo z saldem operatora.
H. Korekty i inwentaryzacjaKierunek: WMS operatora -> Trawers, ale z zatwierdzeniem po stronie Trawersa
Komunikaty:
`STOCK_ADJUSTMENT_PROPOSAL`
`INVENTORY_COUNT_RESULT`
WMS nie powinien samodzielnie 'zmieniać księgowo' zapasu właściciela.
Powinien zgłosić różnicę.
Pola:
| Pole | Znaczenie |
| ---------------- | ------------------------------- |
| `item_id_erp` | Kod towaru |
| `lot_no` | Partia |
| `serial_no` | Numer seryjny |
| `qty_system_wms` | Ilość według WMS |
| `qty_counted` | Ilość policzona |
| `difference_qty` | Różnica |
| `reason_code` | Powód |
| `description` | Opis |
| `evidence` | Zdjęcie / protokół, opcjonalnie |
Efekt w Trawersie:
operator zgłasza różnicę, a Trawers tworzy dokument korekty dopiero po akceptacji.I. ZwrotyKierunek podstawowy: Trawers -> WMS operatora
Potwierdzenie: WMS operatora -> Trawers
Komunikaty:
`RETURN_ADVICE`
`RETURN_CONFIRMATION`
Zwrot powinien być awizowany, bo operator musi wiedzieć, czy towar wraca do sprzedaży,
do kontroli, do naprawy, do utylizacji czy do reklamacji.
Statusy zwrotu:
| Status | Znaczenie |
| ------------ | ---------------------- |
| `AVAILABLE` | Towar pełnowartościowy |
| `QUARANTINE` | Do kontroli |
| `DAMAGED` | Uszkodzony |
| `REPAIR` | Do naprawy |
| `SCRAP` | Do utylizacji |
| `UNKNOWN` | Nierozpoznany |
6.5 Model funkcjonalny
Proces 1 - wdrożenie nowego towaru
1. Użytkownik zakłada towar w Trawersie.
2. Trawers wysyła kartotekę do WMS operatora.
3. Operator potwierdza przyjęcie kartoteki.
4. Jeżeli towar wymaga partii, dat ważności, numerów seryjnych
lub specjalnego składowania, te reguły trafiają do WMS.
5. WMS dopuszcza towar do obsługi.
Funkcjonalnie:
Trawers decyduje, że towar istnieje.WMS decyduje, jak technicznie go składować i kompletować.Proces 2 - dostawa do operatora
1. W Trawersie powstaje zamówienie zakupu, przyjęcie z produkcji albo przesunięcie do MAG_3PL.
2. Trawers wysyła do operatora awizo przyjęcia.
3. Towar fizycznie trafia do operatora.
4. WMS operatora przyjmuje towar, nadaje lokalizacje, ewentualnie palety/SSCC.
5. WMS wysyła potwierdzenie przyjęcia.
6. Trawers księguje przyjęcie do magazynu MAG_3PL.
7. Jeżeli są różnice, Trawers tworzy przyjęcie częściowe albo dokument rozbieżności.
Proces 3 - sprzedaż i wydanie
1. Zamówienie klienta powstaje w Trawersie albo trafia do Trawersa z e-commerce / EDI / marketplace.
2. Trawers sprawdza dostępność w MAG_3PL.
3. Trawers rezerwuje towar.
4. Trawers wysyła zlecenie wydania do WMS operatora.
5. WMS kompletuje, pakuje i przekazuje paczkę przewoźnikowi.
6. WMS odsyła potwierdzenie wydania wraz z faktycznymi ilościami, partiami,
numerami seryjnymi i trackingiem.
7. Trawers zatwierdza WZ, aktualizuje zamówienie i ewentualnie wystawia fakturę.
8. Numer trackingowy może wrócić do klienta, sklepu internetowego lub B2B.
Proces 4 - wysyłka częściowa
Ten proces trzeba przewidzieć od początku.
Możliwe scenariusze:
| Scenariusz | Obsługa |
| ------------------------------------ | ----------------------------------------------------- |
| Brak części towaru | WMS odsyła wydanie częściowe |
| Trawers pozwala na częściową wysyłkę | Trawers zamyka część pozycji, resztę zostawia otwartą |
| Trawers nie pozwala | WMS nie powinien wysłać bez akceptacji |
| Towar uszkodzony przy kompletacji | WMS zgłasza zmianę statusu i niedobór |
Decyzja, czy wolno wysłać częściowo, powinna pochodzić z Trawersa.
Proces 5 - zwroty
1. W Trawersie powstaje zgłoszenie zwrotu / reklamacji.
2. Trawers wysyła awizo zwrotu do operatora.
3. Klient odsyła towar.
4. WMS przyjmuje zwrot.
5. WMS ocenia stan fizyczny.
6. WMS wysyła potwierdzenie zwrotu do Trawersa.
7. Trawers decyduje o korekcie sprzedaży, przyjęciu na stan, reklamacji albo utylizacji.
Proces 6 - blokady jakościowe
Przykłady:
* reklamacja partii,
* wycofanie produktu,
* kontrola jakości,
* uszkodzenie,
* przeterminowanie,
* blokada handlowa.
Model:
1. Trawers wysyła do WMS dyspozycję blokady: `STOCK_BLOCK_REQUEST`.
2. WMS blokuje towar fizycznie albo statusowo.
3. WMS odsyła potwierdzenie blokady.
4. Trawers oznacza zapas jako niedostępny do sprzedaży.
Analogicznie działa odblokowanie.
Proces 7 - inwentaryzacja
1. Trawers zleca inwentaryzację całościową lub częściową.
2. WMS wykonuje liczenie.
3. WMS odsyła wyniki.
4. Trawers porównuje ilości.
5. Różnice trafiają do akceptacji.
6. Po akceptacji Trawers tworzy dokument korekty.
Ważne: **różnica magazynowa u operatora nie powinna automatycznie zmieniać
zapasu księgowego bez kontroli właściciela towaru.**
6.6 Statusy zapasu
Warto uzgodnić prosty wspólny słownik statusów.
Propozycja:
| Status | Znaczenie |
| -------------------- | ---------------------- |
| `AVAILABLE` | Dostępny do sprzedaży |
| `RESERVED` | Zarezerwowany |
| `PICKING` | W kompletacji |
| `SHIPPED` | Wysłany |
| `QUARANTINE` | Kwarantanna |
| `BLOCKED` | Zablokowany |
| `DAMAGED` | Uszkodzony |
| `RETURNED_UNCHECKED` | Zwrot niezweryfikowany |
| `SCRAP` | Do likwidacji |
| `LOST` | Utracony |
| `COUNTING` | W inwentaryzacji |
Nie trzeba odwzorowywać wszystkich szczegółowych statusów WMS operatora w Trawersie.
Wystarczy uzgodnić wspólny, biznesowy zestaw statusów.
6.7 Minimalny zestaw integracji - wersja MVP
Na początek nie integrowałbym wszystkiego. Minimalny sensowny zakres to:
1. Kartoteka towarowa
Trawers -> WMS
2. Awizo przyjęcia
Trawers -> WMS
3. Potwierdzenie przyjęcia
WMS -> Trawers
4. Zlecenie wydania
Trawers -> WMS
5. Potwierdzenie wydania z trackingiem
WMS -> Trawers
6. Stany magazynowe / dzienna migawka
WMS -> Trawers
7. Zwroty
Trawers -> WMS
8. Korekty / różnice inwentaryzacyjne
WMS -> Trawers, zatwierdzenie w Trawersie
To wystarczy, żeby obsłużyć podstawowy fulfillment.
Każdy komunikat powinien mieć:
| Pole | Znaczenie |
| ------------------- | ----------------------------------- |
| `message_id` | Unikalny identyfikator komunikatu |
| `message_type` | Typ komunikatu |
| `source_system` | Trawers albo WMS |
| `target_system` | WMS albo Trawers |
| `created_at` | Data utworzenia |
| `document_id_erp` | Numer dokumentu w Trawersie |
| `document_id_wms` | Numer dokumentu w WMS |
| `status` | Nowy, przyjęty, odrzucony, wykonany |
| `error_code` | Kod błędu |
| `error_description` | Opis błędu |
To jest bardzo ważne, bo w praktyce największym problemem nie jest samo przesłanie pliku/API,
tylko odpowiedź na pytania:
* czy komunikat dotarł,
* czy został przyjęty,
* czy został wykonany,
* czy został wykonany częściowo,
* czy można go wysłać ponownie,
* czy nie zaksięgowano go dwa razy.
6.10 Kto powinien być właścicielem dostępności towaru?
To jest decyzja projektowa.
Rekomendowałbym:
Trawers jest właścicielem dostępności handlowej.WMS operatora jest właścicielem dostępności fizycznej.
Czyli WMS mówi:
> Mam 100 sztuk, z czego 90 dostępne, 5 uszkodzone, 5 w kwarantannie.
A Trawers decyduje:
> Z tych 90 sztuk 70 można sprzedać, 20 jest zarezerwowane pod zamówienia.
W praktyce dostępność dla handlowców / sklepu / B2B powinna być liczona w Trawersie,
na podstawie potwierdzonego stanu z operatora.
6.11 Trzy możliwe warianty wdrożenia
Wariant A - prosty
Trawers wysyła pliki CSV/XML, operator odsyła pliki z potwierdzeniami.
Dobre dla małej liczby operacji.
Plusy:
* niski koszt,
* szybkie uruchomienie,
* łatwa diagnostyka.
Minusy:
* słabsza praca online,
* opóźnienia,
* większe ryzyko ręcznych korekt.
Wariant B - standardowy
Trawers komunikuje się z WMS przez API albo web service.
Dobre dla średniej i dużej skali.
Plusy:
* szybka wymiana danych,
* statusy prawie online,
* lepsza kontrola błędów.
Minusy:
* większe wymagania techniczne,
* konieczna dobra dokumentacja API.
Wariant C - zaawansowany
Komunikacja przez kolejkę zdarzeń / szynę integracyjną.
Dobre dla wielu kanałów sprzedaży, wielu magazynów i dużej liczby operacji.
Plusy:
* odporność na awarie,
* skalowalność,
* pełny audyt zdarzeń.
Minusy:
* większa złożoność,
* wyższy koszt wdrożenia.
Można to nazwać tak:
Trawers jako system zleceń i ewidencji właściciela towaru.WMS operatora jako system wykonawczy magazynu.Integracja jako dwustronna wymiana dyspozycji i potwierdzeń.
Albo jeszcze prościej:
Trawers mówi 'co'.WMS operatora mówi 'gdzie i jak'.Operator odsyła 'co faktycznie wykonano'.
To jest najbezpieczniejszy model, bo nie zmusza Trawersa do odwzorowywania
całej fizycznej organizacji magazynu operatora, a jednocześnie zachowuje
kontrolę nad towarem, dokumentami i sprzedażą po stronie ERP.