Zarządzanie partiami i datami ważności: dokumentacja
Partie z datą przydatności i minimalnej trwałości, kartony dostawcy, koszty, FEFO, progi rabatowe, import CSV i kontrola stanu.
Instalacja i aktualizacja
Moduł instaluje się jak każdy moduł PrestaShop, bez zależności i bez Composera.
- Otwórz Moduły → Menedżer modułów.
- Kliknij Wgraj moduł i upuść plik ZIP.
- Następnie kliknij Konfiguruj.
Moduł tworzy trzy tabele (partie, ruchy, opakowania dostawcy) i dwie zakładki w menu Katalog: Partie i daty ważności oraz Opakowania dostawcy.
Przy aktualizacji z wcześniejszej wersji wystarczy wgrać nowy plik ZIP. Partie i ich historia zostają zachowane. Jeśli korzystałeś z pojedynczego rabatu wersji 1.0.0, staje się on pierwszym progiem rabatowym.
Jeśli zakładki nie pojawią się od razu, wyczyść pamięć podręczną w Zaawansowane → Wydajność i zaloguj się ponownie.
Data przydatności i minimalnej trwałości: co robi moduł
Data przydatności (DLC, należy spożyć do) dotyczy żywności łatwo psującej się: po niej produktu nie wolno sprzedawać. Data minimalnej trwałości (DLUO / DDM, najlepiej spożyć przed) oznacza utratę jakości: produkt można sprzedawać, jeśli klient jest poinformowany.
- Przeterminowana partia z datą przydatności nigdy nie trafia do zamówienia, nawet jeśli cron jeszcze nie działał tego dnia.
- Automatyczne działania po terminie (zdjęcie ze stanu, wyłączenie produktu) dotyczą tylko daty przydatności.
- Partia po dacie minimalnej trwałości jest tylko dezaktywowana; dopóki jest aktywna, może trafiać do zamówień.
Starannie wybierz rodzaj daty przy tworzeniu partii: to on decyduje o automatycznych działaniach.
Konfiguracja modułu
Strona konfiguracji pokazuje adres crona, szybki stan partii i cztery bloki ustawień.
Wyświetlanie na karcie produktu
- Pokaż datę na karcie produktu: data najbliższej partii na stanie dla kombinacji wybranej przez klienta.
- Próg oznaczenia krótkiego terminu: poniżej tej liczby dni pojawia się oznaczenie „Krótki termin”. Domyślnie: 10 dni.
Automatyczne rabaty na krótki termin
- Włącz automatyczne rabaty: wyłączenie usuwa wszystkie rabaty utworzone przez moduł.
- Progi rabatowe: do 10 wierszy „gdy do terminu partii pozostało X dni” / „rabat Y %”. Zobacz sekcję Progi rabatowe.
Stan i koszty
- Gdy partia z datą przydatności traci ważność: tylko dezaktywuj partię, dezaktywuj ją i odejmij pozostałą ilość ze stanu (zalecane) albo odejmij stan i wyłącz produkt, jeśli nie zostanie żadna ważna partia.
- Domyślnie dodawaj przyjętą ilość do stanu PrestaShop: wartość proponowana przy tworzeniu partii. Zostaw Nie, dopóki wprowadzasz partie dla zapasu już policzonego w PrestaShop.
- Zapisuj koszt partii w każdej pozycji zamówienia: zobacz Koszt zakupu i marże.
- Zwracaj sztuki do partii po anulowaniu zamówienia: zobacz Anulowanie i przywrócenie.
- Drukuj numery partii na dokumentach dostawy (domyślnie włączone) i na fakturach (domyślnie wyłączone).
Powiadomienia e-mail
- Próg ostrzeżenia przed upływem terminu: okno obserwowane przez zbiorczy e-mail. Domyślnie: 30 dni.
- E-mail odbiorcy: pozostaw puste, aby użyć adresu sklepu.
Opakowania dostawcy
Jeśli kupujesz w kartonach, a sprzedajesz na sztuki, zdefiniuj opakowanie raz w Katalog → Opakowania dostawcy:
- produkt i w razie potrzeby kombinacja;
- nazwa (na przykład „Karton 12 szt.”);
- indeks dostawcy i EAN kartonu;
- liczba sztuk w kartonie i zwykły koszt kartonu (netto);
- indeks i EAN sprzedawanej sztuki. Puste pola przejmują wartości produktu lub kombinacji.
Wynikowy koszt jednostkowy jest pokazywany na bieżąco. Produkt może mieć kilka opakowań.
Tworzenie i przyjmowanie partii
W Katalog → Partie i daty ważności kliknij Dodaj partię lub użyj tego samego przycisku w panelu partii na karcie produktu.
Przyjęcie w sztukach
- Wyszukaj produkt (co najmniej 2 znaki) i wybierz kombinację lub pozostaw „Wszystkie kombinacje”.
- Pozostaw Przyjęto w sztukach.
- Podaj numer partii, rodzaj daty, datę ważności, przyjętą ilość i koszt zakupu za sztukę netto.
- Ustaw Dodaj tę ilość do stanu PrestaShop: Tak dla nowej dostawy, Nie dla zapasu już policzonego.
Przyjęcie w kartonach
- Po wyborze produktu wybierz Przyjęto w kartonach dostawcy.
- Wybierz opakowanie, podaj przyjęte kartony i koszt kartonu (netto), uzupełniony zwykłym kosztem.
- Ilość i koszt jednostkowy są obliczane i blokowane: 3 kartony po 12 szt. za 30 € dają 36 sztuk po 2,50 €.
Indeks dostawcy partii jest uzupełniany indeksem kartonu. Możesz go zastąpić numerem dokumentu dostawy od dostawcy.
Edycja, dezaktywacja, usuwanie
- Produktu partii nie można zmienić po jej utworzeniu.
- Zmiana ilości zapisuje ruch korygujący bez zmiany stanu PrestaShop.
- Numer partii może wystąpić tylko raz dla produktu.
- Partii już sprzedanej nie można usunąć: dezaktywuj ją.
Import partii z CSV
Przycisk Import partii (CSV) na liście partii. Na tej stronie można pobrać plik przykładowy.
- Separator średnik, przecinek lub tabulator; pierwszy wiersz = nazwy kolumn; maksymalnie 5000 wierszy i 5 MB.
- Produkt jest wyszukiwany przez
reference,ean13lubid_product. Indeks kombinacji również działa wreference. combination_referencelubcombination_ean13przypisuje partię do kombinacji.- Wymagane:
lot_numberiexpiry_date(RRRR-MM-DD lub DD/MM/RRRR). date_type: dlc lub dluo (domyślnie dlc).quantityiunit_costdla przyjęcia w sztukach.boxes,box_referenceibox_costdla przyjęcia w kartonach: ilość i koszt jednostkowy są liczone na podstawie opakowania.supplier_refinotesą opcjonalne.
reference;lot_number;date_type;expiry_date;quantity;unit_cost
CROQ-2KG;L2026-118;dluo;2027-03-31;24;6.40
PATE-12;L2026-204;dlc;15/01/2027;;
Numer partii, który już istnieje dla produktu, jest pomijany. Raport wymienia każdy błędny wiersz z przyczyną; pozostałe wiersze są importowane.
Pulpit i widoki filtrowane
Karty nad listą są klikalne i filtrują listę: przeterminowane partie wciąż aktywne, partie z bliskim terminem, partie z aktywnym rabatem, wartość zakupu zagrożona terminem i wartość zakupu zapasu w partiach. Filtr pozostaje aktywny przy przechodzeniu między stronami; Pokaż wszystkie partie go usuwa.
Wydawanie FEFO
Przy zatwierdzeniu zamówienia, dla każdego produktu:
- najpierw partie zamówionej kombinacji, potem partie produktu;
- partie są zużywane od najbliższej do najdalszej daty;
- przeterminowane partie z datą przydatności są wykluczone.
Zamówienie na 10 sztuk przy partii z 4 i partii z 8 sztukami pobiera pierwsze 4, a potem 6 z kolejnej partii. Każde pobranie jest zapisywane z zamówieniem.
Koszt zakupu i marże
Przy włączonej opcji Zapisuj koszt partii w każdej pozycji zamówienia moduł oblicza średni ważony koszt zużytych partii i zapisuje go jako cenę zakupu pozycji zamówienia. Statystyki marży PrestaShop korzystają wtedy z rzeczywistego kosztu. Partie bez kosztu nie są brane pod uwagę.
Progi rabatowe
Przykład: 10 % przy 90 dniach, 20 % przy 60 dniach, 30 % przy 30 dniach.
- Stosowany jest najwyższy procent spośród osiągniętych progów: rabat nigdy nie maleje w miarę zbliżania się terminu.
- Dotyczy tylko partii wydawanej jako następna, dla produktu lub kombinacji.
- To standardowa reguła cenowa katalogu PrestaShop, kończąca się w dniu ważności.
- Gdy partia się wyczerpie, rabat przechodzi na kolejną partię lub znika.
- Rabaty są przeliczane przy zapisie ustawień lub partii, a następnie codziennie przez cron.
Te reguły podlegają zwykłym priorytetom PrestaShop. Jeśli stosujesz już szerokie rabaty katalogowe, sprawdź priorytety przed włączeniem progów.
Kompletacja: zamówienie i dokument dostawy
W zamówieniu w panelu blok Wysłane partie (FEFO) pokazuje dla każdego produktu partię, datę, ilość i koszt. Te same partie są drukowane na dokumencie dostawy oraz na fakturze, jeśli opcja jest włączona.
Anulowanie i przywrócenie
Gdy zamówienie przechodzi w status Anulowane, jego sztuki wracają do pierwotnych partii. Jeśli później wróci do ważnego statusu, sztuki są ponownie pobierane według FEFO. Cykl może się powtarzać bez podwójnego liczenia.
Częściowe zwroty z przywróceniem na stan nie są automatycznie przypisywane do partii. Pojawiają się w Kontroli stanu, gdzie tworzysz odpowiednią partię.
Kontrola stanu
Przycisk Kontrola stanu porównuje sztuki w partiach ze stanem PrestaShop:
- dodatnia różnica oznacza sztuki bez partii: Utwórz partię dla brakujących sztuk otwiera uzupełniony formularz;
- ujemna różnica oznacza, że partie zawierają więcej niż stan: popraw partie lub stan.
Produkty z partiami na poziomie produktu są porównywane według całkowitego stanu; produkty, których wszystkie partie są przypisane do kombinacji, kombinacja po kombinacji.
Panel partii na karcie produktu
Karta produktu w panelu wyświetla partie produktu ze stanem, kosztem i rabatem oraz porównuje sumę ze stanem PrestaShop. Przycisk Dodaj partię wstępnie wybiera produkt. W PrestaShop 8.1 i 9 panel znajduje się w zakładce Moduły karty produktu.
Zadanie cron
Wydawanie, identyfikowalność i import działają bez crona. Progi rabatowe, przeterminowane partie i powiadomienie e-mail wymagają codziennego wywołania adresu z konfiguracji:
https://twoj-sklep.pl/index.php?fc=module&module=dfdlc&controller=cron&token=TWOJ_TOKEN
Odpowiedź JSON podaje dezaktywowane partie, zdjęte sztuki, wyłączone produkty, utworzone, zmienione lub usunięte rabaty oraz wysłane powiadomienia.
Powiadomienia e-mail
Przy każdym uruchomieniu crona zbiorczy e-mail wymienia partie, których data wchodzi w okno ostrzeżenia: numer, produkt, rodzaj, datę i ilość. Każda partia jest zgłaszana tylko raz. Szablony są dostępne w 8 językach w katalogu mails/.
Wyświetlanie na karcie produktu
Przez hook displayProductAdditionalInfo karta pokazuje „Należy spożyć do” lub „Najlepiej spożyć przed” z datą najbliższej partii dla wybranej kombinacji. Poniżej progu pojawia się oznaczenie „Krótki termin” z rabatem. Rabat progowy poza tym progiem jest oznaczony jako „oferta z powodu terminu”. Szablon views/templates/hook/product-expiry.tpl można nadpisać w motywie.
Identyfikowalność i wycofanie partii
Formularz partii pokazuje jej historię: przyjęcie, zamówienia, anulowania, korekty, zdjęcie po terminie, z linkiem do każdego zamówienia. Eksport CSV pobiera historię partii; Eksportuj ruchy na liście pobiera pełną historię. Te dane są podstawą procedury wycofania.
Najczęstsze pytania
Czy moduł zastępuje stan PrestaShop?
Nie. Stan PrestaShop pozostaje podstawą sprzedaży; moduł dzieli go na datowane partie i zgłasza różnice.
Co jeśli partie nie pokrywają całego stanu?
Zamówienie przebiega normalnie: moduł pobiera to, co jest dostępne w partiach. Kontrola stanu pokazuje sztuki bez partii.
Czy moduł obsługuje multisklep?
Tak. Każda partia należy do sklepu, w którym ją utworzono.
Co się dzieje przy odinstalowaniu?
Trzy tabele są usuwane wraz z zawartością. Zrób kopię bazy, jeśli planujesz ponowną instalację.