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.

L

LiveSales

11 min czytania

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.

Szpula 100m
Zamówienie 15m
Resztka 85m
Zamówienie 30m
Resztka 55m

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:

AVAILABLE
Dostępna
RESERVED
Zarezerwowana dla zamówienia
CONSUMED
Zużyta (po spakowaniu)

Dodawanie resztki

Pracownik po cięciu kabla rejestruje resztkę w systemie:

  1. Skanuje EAN produktu (kod kreskowy z szpuli) lub wpisuje SKU
  2. System automatycznie uzupełnia nazwę, strefę i miniaturę ze cache produktów
  3. Wpisuje długość w metrach (np. 8.5m)
  4. Opcjonalnie dodaje notatki (np. “lekko zgięty koniec”)
  5. 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ę:

  1. Widzi na ekranie informację: “Dostępna resztka 12m kabla YDYp 3x2.5”
  2. Klika “Użyj resztkę”
  3. System rezerwuje resztkę dla tego zamówienia
  4. 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:

Resztka 12m
RESERVED
Zamówienie: 8m
8m CONSUMED
4m AVAILABLE (nowa)

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

MetodaEndpointOpis
GET/api/leftoversLista resztek. Filtry: status (available/reserved/consumed), ean, show_used
POST/api/leftoversDodaj resztkę. Body: ean, sku, name, length, strefa, notes. Auto-reserve jeśli match.
GET/api/leftovers/search-productsSzukaj produktów po EAN/SKU/nazwie. Query: q, cable_only
GET/api/leftovers/matchSprawdź czy istnieje resztka pasująca do parametrów: sku, ean, needed_length
GET/api/leftovers/matchesZnajdź wszystkie pasujące resztki (nie tylko najlepszą)
POST/api/leftovers/{id}/reserveZarezerwuj resztkę dla zamówienia. Body: order_id, needed_length
POST/api/leftovers/{id}/releaseZwolnij rezerwację — resztka wraca do statusu AVAILABLE
POST/api/leftovers/{id}/consumeOznacz jako zużytą (wywoływane automatycznie po trigger)
POST/api/leftovers/{id}/useUż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 BaseLinkerKontekst użycia w module resztek
getInventoryProductsDataWyszukiwanie produktu po EAN/SKU przy dodawaniu resztki. Pobiera nazwę, strefę (extra_field_15043), miniaturę, warianty. Batch po 100 ID.
getInventoryProductsListCache katalogu produktów — moduł wyszukiwania (/api/leftovers/search-products) przeszukuje lokalny cache zamiast odpytywać BL przy każdym skanie.
getOrdersAuto-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

Oszczędność miesięczna
2100 PLN
Średnia resztka
8.5 m
Auto-matching
75%

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

75%
resztek dopasowanych
0 min
czas szukania resztki
8.5m
średnia uratowana resztka
~2100 PLN
oszczędność miesięczna

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 nami

Podobał Ci się ten artykuł?

Subskrybuj, aby dostawać powiadomienia o nowych artykułach.

Bez spamu. Możesz się wypisać w każdej chwili.