Webhook product:update — stan magazynowy per magazyn (warehouse_id / warehouse_quantity)
Integrujemy Fakturownię z własnym systemem sprzedaży (wiele magazynów na jednego kontrahenta / partnera). Katalog synchronizujemy m.in. przez API GET /products.json?warehouse_id=… — wtedy w odpowiedzi mamy warehouse_quantity dla konkretnego magazynu i poprawnie aktualizujemy stany per magazyn.
Przy webhookach product:create / product:update / product:destroy w payloadzie produktu dostajemy m.in. pole stock_level, które wygląda na stan zbiorczy, bez informacji o magazynie (warehouse_id). Przy więcej niż jednym magazynie nie da się z tego pola przypisać ilości do właściwego magazynu w systemie zewnętrznym — jeden produkt w Fakturowni = jedna karta produktu, a u nas stany są osobno na każdy magazyn.
Obecny obejście: traktujemy webhook tylko jako sygnał do aktualizacji nazwy, ceny, VAT, disabled, a stany po webhooku dociągamy osobnymi requestami GET z warehouse_id dla każdego znanego magazynu. To działa, ale:
•
mnoży ruch API i opóźnia reakcję na zmianę stanu,
•
przy dużej liczbie magazynów / produktów obciąża obie strony,
•
webhook nie spełnia roli stanów per magazyn.
Sugestia:
1.
W webhooku product:update (i ewentualnie product:create) dodać warehouse_id oraz warehouse_quantity (lub równoważne pole stanu dla tego magazynu), gdy zmiana dotyczy stanu w kontekście magazynu — analogicznie do API listy produktów z parametrem warehouse_id.
Kontekst biznesowy: sprzedaż wielomagazynowa, WZ per magazyn, integracja bez ciągłego pełnego syncu cronem — webhooki mają uzupełniać API, a nie wymuszać N dodatkowych GETów po każdej zmianie.