Zapisy stanu spoza modułu
Stan produktu w Shopware może zmienić coś spoza modułu: integracja z systemem magazynowym, import, skrypt, wtyczka innego dostawcy. Taka zmiana nie uwzględnia stanu półek; nadpisuje liczbę.
Stockly potrafi to zauważyć, zareagować i zapisać do przejrzenia.
Dlaczego to jest problem
Dział zatytułowany „Dlaczego to jest problem”Liczba publikowana klientom powinna wynikać z tego, co leży na półkach. Kiedy zostaje wpisana z zewnątrz, istnieją dwie wartości: jedna na półce, druga na karcie produktu. Różnica nie jest widoczna od razu; ujawnia się przy kompletacji, gdy magazynier nie znajduje towaru, albo przy sprzedaży ponad stan.
Ustawienie reakcji
Dział zatytułowany „Ustawienie reakcji”Stockly → Settings → Stock → zakładka General → sekcja External stock writes → pole Reaction to external product stock writes:
- Off — bez wykrywania. Zapisy przez API są wchłaniane jako korekty stanu, a zapisy prosto do bazy po cichu nadpisuje najbliższe przeliczenie. Tak moduł zachowuje się do czasu włączenia wykrywania.
- Accept and correct shelves — wygrywa liczba zewnętrzna: różnica jest księgowana w magazynie (do puli bez lokalizacji albo zdejmowana z najpełniejszego miejsca), a incydent trafia do rejestru.
- Reject and restore from shelves — wygrywa magazyn: nic nie jest księgowane, pole zostaje przepisane z półek, a odrzucony zapis trafia do rejestru.
Kiedy zapis zostaje wykryty
Dział zatytułowany „Kiedy zapis zostaje wykryty”- Zapis przez API — natychmiast.
- Zapis prosto do bazy danych — przy najbliższym zdarzeniu stanu tego produktu, czyli dokładnie w chwili, w której moduł i tak by go nadpisał.
Mechanizm celuje w źle skonfigurowaną integrację, a nie w celowe manipulacje przy bazie.
Rejestr incydentów
Dział zatytułowany „Rejestr incydentów”Stockly → Warehouses → External writes (pozycja w szynie sekcji magazynowej).
Kolumny: Detected, Product, Expected, Found, Difference, Source, Reaction, User.
Expected to liczba wynikająca z półek, Found — ta, którą ktoś wpisał; Difference pokazuje różnicę.
Source rozróżnia:
| Wartość | Znaczenie |
|---|---|
| API write | zapis przez interfejs programistyczny lub panel |
| Direct database write | zapis prosto do bazy, z pominięciem sklepu |
Reaction mówi, co moduł z tym zrobił:
| Wartość | Znaczenie |
|---|---|
| Accepted, shelves corrected | przyjęto liczbę zewnętrzną, skorygowano półki |
| Rejected, value restored | odrzucono zapis, przywrócono wartość z półek |
Listę można filtrować po źródle, reakcji i dacie wykrycia.
Pusty rejestr znaczy, że przy włączonym wykrywaniu nikt nie pisał po stanie z zewnątrz.
Korekta zaksięgowana przy reakcji Accept zostaje też w historii ruchów, z powodem Stock corrected after an external change: rejestr zapisuje obcy zapis, a historia reakcję modułu. → Historia ruchów
Powiadomienie zbiorcze
Dział zatytułowany „Powiadomienie zbiorcze”Przełącznik Daily summary notification w tej samej sekcji podnosi raz dziennie jedno powiadomienie w panelu, jeśli od poprzedniego podsumowania pojawiły się nowe incydenty — nigdy po jednym na zdarzenie.
Wysyłką zajmuje się zadanie cykliczne. → Zadania cykliczne
Reakcja we własnym procesie
Dział zatytułowany „Reakcja we własnym procesie”Każdy wykryty zapis wystawia zdarzenie dostępne w Flow Builderze, z danymi: produkt, wartość oczekiwana, wartość znaleziona, różnica, źródło i zastosowana reakcja. Można na nim zbudować własne powiadomienie, wpis w zewnętrznym systemie albo alarm dla działu IT.
Jak to się ma do kontroli spójności
Dział zatytułowany „Jak to się ma do kontroli spójności”To dwa różne momenty tej samej sprawy:
- Zapisy spoza modułu działają na bieżąco: łapią zmianę w chwili, gdy się dzieje, i od razu rozstrzygają, co z nią zrobić.
- Kontrola spójności i kreator naprawy sprzątają po fakcie, kiedy niezgodność już powstała, na przykład przy wyłączonym wykrywaniu.
Jeżeli kreator naprawy raz po raz pokazuje tę samą grupę znalezisk o publikowanej liczbie wobec półki, należy włączyć wykrywanie i rozstrzygnąć problem u źródła, zamiast naprawiać go co tydzień.
Dla programistów: mechanizm wykrywania, ładunek zdarzenia i encję rejestru opisują obce zapisy.