Custom Order Numbering — Dokumentacja

Zastąp losowe referencje zamówień PrestaShop, takie jak XKBHMQWNY, uporządkowanymi referencjami, które zespół odczyta od razu. Order Number pozwala budować referencje z tagów daty, tagów liczników, kontekstu sklepu/klienta, prefiksów i sufiksów, na przykład ORD-2026-000001.

Order Number

Natywne referencje zamówień PrestaShop są unikalne, ale nie są czytelne dla obsługi klienta, księgowości ani wewnętrznej obsługi zamówień. Order Number rozwiązuje ten problem, generując sformatowaną referencję podczas tworzenia nowego zamówienia.

Typowy format może pokazywać rok, miesiąc i pozycję zamówienia:

ORD-{YYYY}-{NNNNNN}

Przykład podglądu:

ORD-2026-000042

Moduł obsługuje PrestaShop 1.6 do 9.0 (latest), PHP 7.1+. Nadal wspieramy również nadchodzące wersje PrestaShop.

Custom Order Numbering — Reference format builder

Jak to działa

Definiujesz wzorzec referencji w Format Builder modułu. Gdy klient składa zamówienie, moduł generuje następną referencję na podstawie tego wzorca i zapisuje dla niej wpis audytowy.

W wersjach PrestaShop z natywnym hookiem referencji dokumentu moduł używa:

actionGenerateDocumentReference
actionValidateOrder

W starszych wersjach, w których ten hook nie jest dostępny, moduł używa dołączonego override Order::generateReference(), dzięki czemu nowe zamówienia nadal mogą otrzymywać Twoją własną referencję.

Istniejące zamówienia zachowują swoje obecne referencje. Moduł wpływa tylko na nowe referencje generowane po jego instalacji i konfiguracji.

Moduł rozszerza także kolumny referencji zamówień, aby umożliwić dłuższe, uporządkowane referencje:

orders.reference        VARCHAR(64)
order_payment.order_reference VARCHAR(64)
Custom Order Numbering — Reference live preview

Instalacja

  1. W Back Office przejdź do Modules → Module Manager
  2. Kliknij Upload a module i wybierz plik ZIP
  3. Po instalacji kliknij Configure
  4. Otwórz Improve → Order Numbering

Moduł dodaje te strony Back Office:

Order Numbering
- Dashboard
- Format Builder
- Generated References
- Settings
Custom Order Numbering — Counter reset settings

Konfiguracja

Wzorzec formatu

Główne ustawienie to wzorzec używany do budowania każdej referencji zamówienia.

Domyślny wzorzec:

{YYYY}/{MM}/{NNNNNN}

Przykładowy wynik:

2026/06/000042

Popularne przykłady wzorców:

ORD-{YYYY}-{NNNNNN}
{YYYY}/{MM}/{NNNNNN}
SHOP-{SHOP_ID}-{YYYY}-{NNNNN}
{COUNTRY}-{YYYY}-{MM}-{NNNNNN}

W przypadku numeracji per klient dodaj specyficzny dla klienta lub losowy wyróżnik, aby referencje pozostały globalnie unikalne:

CUST-{CUSTOMER_ID}-{CUSTOMER_NNNN}
{CUSTOMER_REF}-{CUSTOMER_NNNN}

Prefiks i sufiks

Możesz także dodać statyczny prefiks i sufiks wokół wzorca.

Rzeczywiste klucze konfiguracji używane przez moduł:

order_prefix=ORD-
order_format={YYYY}-{NNNNNN}
order_suffix=

Daje to:

ORD-2026-000042

Reset licznika

Wybierz, kiedy licznik ma się resetować:

never
yearly
monthly
daily

Jeśli wybierzesz yearly, wzorzec musi zawierać {YYYY} lub {YY}.

ORD-{YYYY}-{NNNNNN}

Jeśli wybierzesz monthly, wzorzec musi zawierać tag roku i {MM}.

ORD-{YYYY}-{MM}-{NNNNNN}

Jeśli wybierzesz daily, wzorzec musi zawierać tag roku, {MM} i {DD}.

ORD-{YYYY}-{MM}-{DD}-{NNNN}

Zakres licznika

Wybierz sposób zliczania:

global
customer

global używa jednej sekwencji na sklep.

ORD-{YYYY}-{NNNNNN}

customer pozwala każdemu klientowi mieć własną sekwencję, ale format nadal musi zawierać unikalny tag klienta lub tag losowy.

C-{CUSTOMER_ID}-{CUSTOMER_NNNN}

Ustawienie następnego numeru

Użyj Set Next Number, gdy chcesz, aby następne zamówienie zaczęło się od określonego numeru, na przykład po migracji z innego systemu zamówień.

order_start_number=5000

Następna wygenerowana referencja użyje tej wartości jeden raz, a potem ustawienie zostanie automatycznie wyczyszczone.

Custom Order Numbering — Reference log dashboard

Dostępne tagi

Format Builder pokazuje tagi dostępne dla referencji zamówień. Najbardziej przydatne to:

{YYYY}        Full year, e.g. 2026
{YY}          2-digit year, e.g. 26
{MM}          Month, e.g. 06
{DD}          Day, e.g. 16
{QUARTER}     Quarter, e.g. Q2
{WEEK}        ISO week, e.g. 25
{N}           Counter without padding
{NN}          Counter padded to 2 digits
{NNN}         Counter padded to 3 digits
{NNNN}        Counter padded to 4 digits
{NNNNN}       Counter padded to 5 digits
{NNNNNN}      Counter padded to 6 digits
{NNNNNNN}     Counter padded to 7 digits
{NNNNNNNN}    Counter padded to 8 digits
{GLOBAL_NNNNNN}    Global shop counter
{CUSTOMER_NNNN}    Per-customer counter
{CUSTOMER_ID}      Customer ID
{CUSTOMER_EMAIL}   Customer email prefix
{CUSTOMER_REF}     Stable secure customer reference
{COUNTRY}          Delivery country ISO code
{SHOP_ID}          Shop ID
{SHOP_NAME}        Shop name
{CART_ID}          Cart ID
{RAND6}            Random 6-letter code
{RAND9}            Random 9-letter code

Niektóre tagi dokumentu są celowo niedostępne w momencie, gdy PrestaShop tworzy referencję zamówienia, ponieważ zamówienie lub faktura jeszcze wtedy nie istnieje:

{ORDER_ID}
{INVOICE_ID}
{DOC_TYPE}
{PAYMENT}
Custom Order Numbering — Mprordernumber counter settings

Ustawienia domyślne

Po instalacji moduł startuje z tymi wartościami domyślnymi:

enabled=1
order_format={YYYY}/{MM}/{NNNNNN}
order_reset_mode=yearly
order_counter_scope=global
order_start_number=
order_prefix=
order_suffix=
Custom Order Numbering — Mprordernumber dashboard counters

Dziennik wygenerowanych referencji

Każda wygenerowana referencja jest zapisywana w dzienniku audytowym tylko do odczytu. Dziennik zapisuje:

id_order
id_cart
id_customer
id_shop
counter_value
format_pattern
formatted_reference
date_add

Pomaga to sprawdzić, jakiego wzorca użyto dla referencji, oraz powiązać wygenerowaną referencję z zamówieniem, gdy PrestaShop zakończy jego tworzenie.

Custom Order Numbering — Mprordernumber format builder

Multi-Shop

Liczniki są przechowywane per sklep. W instalacji multi-shop każdy sklep ma własne id_shop w tabeli liczników, dzięki czemu każdy sklep może utrzymywać własną sekwencję numeracji.

Przydatny wzorzec multi-shop to:

{SHOP_ID}-{YYYY}-{NNNNNN}

Albo, jeśli każdy sklep reprezentuje kraj lub markę, użyj statycznego prefiksu per sklep:

DE-{YYYY}-{NNNNNN}
FR-{YYYY}-{NNNNNN}
Custom Order Numbering — Mprordernumber generated log

Wskazówki

  • Używaj {YYYY} w większości formatów, aby rok był widoczny bez otwierania zamówienia.
  • Używaj {MM}, jeśli resetujesz liczniki co miesiąc albo chcesz grupować referencje według miesiąca.
  • Użyj wystarczającej liczby cyfr dla swojego wolumenu zamówień. {NNNNN} daje pięć cyfr; {NNNNNN} daje sześć.
  • Skonfiguruj wzorzec przed uruchomieniem produkcyjnym. Późniejsza zmiana formatu jest dozwolona, ale przyszłe zamówienia będą wyglądać inaczej niż starsze.
  • Dla liczników per klient dodaj {CUSTOMER_ID}, {CUSTOMER_REF}, {CART_ID}, {RAND6}, {RAND7}, {RAND8} lub {RAND9}, aby referencje pozostały unikalne.
  • Utrzymuj referencje poniżej 64 znaków. Moduł sprawdza wygenerowany podgląd względem tego limitu.
Custom Order Numbering — Mprordernumber integrity checks

Najczęściej zadawane pytania

Czy istniejące zamówienia otrzymają nowe referencje?

Nie. Istniejące zamówienia zachowują swoje oryginalne referencje PrestaShop. Tylko nowe zamówienia używają własnego formatu.

Czy klienci mogą zobaczyć nową referencję zamówienia?

Tak. To normalna referencja zamówienia PrestaShop, więc klienci widzą ją wszędzie tam, gdzie sklep wyświetla referencję zamówienia, na przykład na stronach konta klienta, w e-mailach zamówień i na fakturach.

Co się stanie, jeśli dwa zamówienia zostaną złożone w tym samym momencie?

Licznik jest zwiększany wewnątrz transakcji bazy danych z użyciem SELECT ... FOR UPDATE, więc każde zamówienie otrzymuje własną wartość licznika.

Czy mogę dodać miesiąc do referencji?

Tak. Użyj {MM}.

ORD-{YYYY}-{MM}-{NNNNNN}

Czy mogę resetować licznik co miesiąc?

Tak. Ustaw tryb resetowania na monthly i dodaj {YYYY} lub {YY} oraz {MM} do wzorca.

{YYYY}/{MM}/{NNNNNN}

Czy mogę resetować licznik codziennie?

Tak. Ustaw tryb resetowania na daily i dodaj {YYYY} lub {YY}, {MM} oraz {DD}.

{YYYY}/{MM}/{DD}/{NNNN}

Czy każdy klient może mieć własny licznik?

Tak. Ustaw zakres licznika na customer i dodaj do formatu unikalny tag klienta lub tag losowy.

C-{CUSTOMER_ID}-{CUSTOMER_NNNN}

Co się stanie, jeśli własna numeracja zostanie wyłączona?

PrestaShop wróci do standardowego generowania losowych referencji.

Co się stanie, jeśli format jest nieprawidłowy?

Moduł odmawia zapisania nieprawidłowych formatów w Format Builder. Jeśli podczas tworzenia zamówienia zostanie wykryta nieprawidłowa konfiguracja, moduł zapisze problem w logu i nie zwróci własnej referencji dla tego zamówienia.

Co się stanie, jeśli zamówienie zostanie anulowane?

Zamówienie zachowuje referencję, która została mu przypisana. Moduł nie używa ponownie numerów już wygenerowanych dla zamówień.

Ładowanie...
Do góry