Resztki kablowe: moduł automatycznego dopasowania do zamówień
Jak zarządzać resztkami kabli w magazynie e-commerce. Auto-matching do zamówień, rezerwacja, zużycie częściowe. Moduł resztek w systemie Pakowanie Kablowo.
LiveSales
Po cięciu 100m kabla zostaje 85m resztek. System sam je dopasowuje do kolejnych zamówień.
“Resztki kabli walały się po magazynie miesiącami. Nie wiedzieliśmy ile mamy, co to za kabel, ani czy ktoś tego potrzebuje. Teraz każda resztka jest w systemie i automatycznie trafia do zamówienia, które pasuje długością.”
— Magazynier, Kablowo
Firma kablowa sprzedaje kable na metry. Klient zamawia 15m, szpula ma 100m — zostaje 85m resztki. Albo zostaje 3m, którego nikt nie zamówi. Bez systemu: resztki się piętrzą, gubią, wyrzucają. Z modułem resztek: każdy kawałek kabla jest ewidencjonowany i automatycznie dopasowywany do zamówień czekających na pakowanie.
Auto-matching
Resztka dodana do systemu automatycznie szuka pasującego zamówienia po EAN/SKU i długości.
Rezerwacja i zużycie
Resztka rezerwowana dla zamówienia → zużyta po spakowaniu. Pełny lifecycle.
~2100 PLN/mies. oszczędności
Mniej wyrzuconego kabla = bezpośrednia oszczędność materiałowa.
Problem resztek kablowych w magazynie e-commerce
Skąd się biorą resztki
Kabel elektryczny (np. YDYp 3x2.5) dostarczany jest na szpulach po 100m. Klient zamawia 15m — maszyna ESP odmierza, tnie, nawija. Zostaje 85m resztki. Następny klient zamawia 30m z tej resztki — zostaje 55m. I tak dalej, aż zostanie kawałek za krótki na jakiekolwiek zamówienie.
Co się dzieje bez systemu
Resztki się piętrzą
Kawałki kabla leżą w koszu “resztki”. Nikt nie wie co tam jest, ile metrów, jaki kabel. Po kilku tygodniach — kosz pełny, wszystko do wyrzucenia.
Szukanie trwa wieki
Pracownik ma zamówienie na 8m YDYp. Wie, że gdzieś leżała resztka. Przeszukuje kosz 10 minut — i zazwyczaj nie znajduje (bo ktoś inny zabrał).
Podwójne cięcie
Zamiast użyć 8m resztki, pracownik tnie nową szpulę. Teraz ma 92m resztki ze szpuli + 8m resztki w koszu. Podwójna strata.
Realna strata: Przed wdrożeniem modułu, 80% resztek lądowało na śmietniku. Przy średniej cenie kabla ~3 PLN/m i ~450m zmarnowanego kabla miesięcznie to ~1350 PLN strat miesięcznie tylko na materiale.
Jak działa moduł resztek
Lifecycle resztki
Każda resztka przechodzi przez trzy stany:
Dodawanie resztki
Pracownik po cięciu kabla rejestruje resztkę w systemie:
- Skanuje EAN produktu (kod kreskowy z szpuli) lub wpisuje SKU
- System automatycznie uzupełnia nazwę, strefę i miniaturę ze cache produktów
- Wpisuje długość w metrach (np. 8.5m)
- Opcjonalnie dodaje notatki (np. “lekko zgięty koniec”)
- Klika “Dodaj resztkę”
Auto-matching: magia modułu
Moment, w którym moduł się zwraca. Przy dodawaniu resztki, system automatycznie szuka pasującego zamówienia:
create_leftover(data)
→ Normalize fields
→ Save to DB (status: AVAILABLE)
→ IF ean OR sku:
→ find_order_needing_product(ean, sku, length)
→ IF match found AND length >= needed_length:
→ reserve(leftover_id, order_id, needed_length)
→ status: AVAILABLE → RESERVED
→ WebSocket broadcast: leftover_updated
Algorytm szuka zamówienia ze statusem “do pakowania”, które zawiera produkt o tym samym EAN/SKU i potrzebuje długości mniejszej lub równej dostępnej resztce.
Przykład: Pracownik dodaje resztkę YDYp 3x2.5, długość 12m. System znajduje zamówienie #98765 które potrzebuje 10m tego kabla. Resztka zostaje automatycznie zarezerwowana dla tego zamówienia. Pracownik przy pakowaniu #98765 widzi informację: “Dostępna resztka 12m — użyj zamiast nowej szpuli.”
Wyszukiwanie produktów
Moduł oferuje inteligentne wyszukiwanie produktów do powiązania z resztką:
Metody wyszukiwania
- Suffix EAN — ostatnie 4-6 cyfr kodu kreskowego (szybkie skanowanie)
- Pełny EAN — 13-cyfrowy kod kreskowy
- SKU — wewnętrzny kod produktu
- Nazwa — pełnotekstowe wyszukiwanie (np. “YDYp 3x2.5”)
Filtr: tylko kable
Parametr cable_only=true filtruje wyniki do produktów z kablowych stref magazynu (SKRETKI, GLOSNIKOWE, itp.). Eliminuje pomyłki — nie dodasz peszla jako resztkę kablową.
Rezerwacja, zużycie i częściowe wykorzystanie
Ręczna rezerwacja
Pracownik przy pakowaniu zamówienia może ręcznie zarezerwować resztkę:
- Widzi na ekranie informację: “Dostępna resztka 12m kabla YDYp 3x2.5”
- Klika “Użyj resztkę”
- System rezerwuje resztkę dla tego zamówienia
- Resztka znika z listy dostępnych — inni pracownicy nie mogą jej zabrać
Zużycie przy pakowaniu
Gdy zamówienie zostanie spakowane (trigger “spis” + “etykieta” odpalony), system automatycznie konsumuje wszystkie resztki zarezerwowane dla tego zamówienia:
consume_reserved_leftovers(order_id)
→ Find all leftovers with status=RESERVED AND reserved_for_order_id=order_id
→ For each: status RESERVED → CONSUMED, consumed_at = now()
→ Return list of consumed leftover IDs
Częściowe wykorzystanie
Kluczowa funkcja: resztka ma 12m, zamówienie potrzebuje 8m. Po zużyciu zostaje 4m — system tworzy nową resztkę 4m z tego samego produktu:
Nowa resztka 4m natychmiast przechodzi przez auto-matching — jeśli ktoś potrzebuje 3m tego kabla, zostanie zarezerwowana automatycznie.
Release (anulowanie rezerwacji)
Jeśli zamówienie zostanie anulowane lub zmienione, pracownik może zwolnić rezerwację:
POST /api/leftovers/{id}/release
→ status: RESERVED → AVAILABLE
→ reserved_for_order_id: null
→ WebSocket broadcast: leftover_updated
Resztka wraca na listę dostępnych i znowu uczestniczy w auto-matchingu.
API endpointy modułu resztek
| Metoda | Endpoint | Opis |
|---|---|---|
| GET | /api/leftovers | Lista resztek. Filtry: status (available/reserved/consumed), ean, show_used |
| POST | /api/leftovers | Dodaj resztkę. Body: ean, sku, name, length, strefa, notes. Auto-reserve jeśli match. |
| GET | /api/leftovers/search-products | Szukaj produktów po EAN/SKU/nazwie. Query: q, cable_only |
| GET | /api/leftovers/match | Sprawdź czy istnieje resztka pasująca do parametrów: sku, ean, needed_length |
| GET | /api/leftovers/matches | Znajdź wszystkie pasujące resztki (nie tylko najlepszą) |
| POST | /api/leftovers/{id}/reserve | Zarezerwuj resztkę dla zamówienia. Body: order_id, needed_length |
| POST | /api/leftovers/{id}/release | Zwolnij rezerwację — resztka wraca do statusu AVAILABLE |
| POST | /api/leftovers/{id}/consume | Oznacz jako zużytą (wywoływane automatycznie po trigger) |
| POST | /api/leftovers/{id}/use | Użyj resztkę (częściowe/pełne). Tworzy nową resztkę z nadmiaru. |
| DELETE | /api/leftovers/{id} | Usuń resztkę (tylko AVAILABLE — zarezerwowanych nie można usunąć) |
Zapytania BaseLinker API używane przez moduł resztek
Moduł resztek korzysta z kilku metod BaseLinker API:
| Metoda BaseLinker | Kontekst użycia w module resztek |
|---|---|
| getInventoryProductsData | Wyszukiwanie produktu po EAN/SKU przy dodawaniu resztki. Pobiera nazwę, strefę (extra_field_15043), miniaturę, warianty. Batch po 100 ID. |
| getInventoryProductsList | Cache katalogu produktów — moduł wyszukiwania (/api/leftovers/search-products) przeszukuje lokalny cache zamiast odpytywać BL przy każdym skanie. |
| getOrders | Auto-matching: system szuka zamówień ze statusem “do pakowania” zawierających produkt o tym samym EAN/SKU, z potrzebną długością ≤ długość resztki. |
Szczegółowa tabela wszystkich metod BaseLinker (priorytety, częstotliwość, rate limiting) jest w głównym artykule.
WebSocket: real-time updates
Każda zmiana stanu resztki (dodanie, rezerwacja, zużycie, zwolnienie) generuje broadcast WebSocket:
{"type": "leftover_updated"}
Wszystkie otwarte ekrany automatycznie odświeżają listę resztek. Pracownik A dodaje resztkę — pracownik B natychmiast widzi ją na swoim ekranie.
Oszczędności po wdrożeniu modułu
Wykorzystanie resztek kablowych: przed i po wdrożeniu modułu
Porównanie strat materiałowych i efektywności dopasowania
Skąd te liczby
Przed modułem: 80% resztek lądowało na śmietniku. Pracownicy nie wiedzieli co leży w koszu resztek, nie mieli czasu szukać, więc cieniili nowe szpule. Średnio 450m kabla zmarnowanego miesięcznie.
Po wdrożeniu: 75% resztek jest automatycznie dopasowywanych do zamówień. Pozostałe 25% to kawałki za krótkie na jakiekolwiek zamówienie (poniżej 1m) — te trafiają do utylizacji.
Średnia długość resztki: 8.5m — to 8.5m kabla, który wcześniej lądowałby na śmietniku, a teraz idzie do klienta.
Czas szukania resztki: Z 12 minut (ręczne przeszukiwanie kosza) do 0 minut (auto-matching). Pracownik nie szuka — system informuje go, że resztka jest dostępna.
Podsumowanie
Moduł resztek to jeden z elementów systemu Pakowanie Kablowo — pełnego systemu magazynowego zbudowanego z Claude Code dla firmy kablowej. Sprawdź też inne moduły: konfiguracja magazynu i checklisty kontroli jakości.
Kluczowe w całym module: auto-matching. Pracownik nie szuka resztek — system robi to za niego. Jeśli sprzedajesz produkty na metry (kable, tkaniny, profile, rury), ten sam mechanizm zadziała u ciebie.
Zainteresowany automatyzacją danych?
LiveSales pomoże Ci zaoszczędzić czas i podejmować lepsze decyzje biznesowe dzięki automatycznym raportom i dashboardom.
Skontaktuj się z namiPodobał Ci się ten artykuł?
Subskrybuj, aby dostawać powiadomienia o nowych artykułach.
Bez spamu. Możesz się wypisać w każdej chwili.
Przeczytaj również
Pakowanie Kablowo: system magazynowy zbudowany z Claude Code
Case study budowy systemu pakowania dla firmy kablowej. FastAPI + Next.js, integracja BaseLinker, maszyna ESP8266 do kabli, drukarka Zebra. 30% oszczędności czasu.
Checklisty: kontrola jakości i protokoły wydania przesyłek
Moduł checklist w systemie Pakowanie Kablowo. Szablony kontroli jakości, protokoły wydania przewoźnikom, upload zdjęć i video, historia wykonania.
Ekosystem narzędzi: gdy sprzedaż, magazyn i Allegro Ads rozmawiają
Jak połączyliśmy narzędzie Allegro Ads z magazynem i działem sprzedaży. Magazyn wie co się sprzedaje, sprzedaż wie co na stanie — lepsze decyzje.