Custom Order Numbering — Documentazione
Sostituisci i riferimenti ordine casuali di PrestaShop, come XKBHMQWNY, con riferimenti strutturati che il tuo team può leggere a colpo d’occhio. Order Number ti permette di creare riferimenti usando tag data, tag contatore, contesto negozio/cliente, prefissi e suffissi, ad esempio ORD-2026-000001.
Order Number
I riferimenti ordine nativi di PrestaShop sono univoci, ma non sono significativi per il servizio clienti, la contabilità o la gestione interna degli ordini. Order Number risolve il problema generando un riferimento formattato quando viene creato un nuovo ordine.
Un formato tipico può mostrare anno, mese e posizione dell’ordine:
ORD-{YYYY}-{NNNNNN}
Esempio di anteprima:
ORD-2026-000042
Il modulo supporta PrestaShop dalla 1.6 alla 9.0 (latest), PHP 7.1+. Continuiamo inoltre a supportare le prossime versioni di PrestaShop.
Come funziona
Definisci uno schema di riferimento nel Format Builder del modulo. Quando un cliente effettua un ordine, il modulo genera il riferimento successivo da quello schema e salva una voce di audit.
Nelle versioni di PrestaShop con hook nativo per il riferimento documento, il modulo usa:
actionGenerateDocumentReference
actionValidateOrder
Nelle versioni più vecchie in cui questo hook non è disponibile, il modulo usa l’override incluso Order::generateReference(), così i nuovi ordini possono comunque ricevere il tuo riferimento personalizzato.
Gli ordini esistenti mantengono i loro riferimenti attuali. Il modulo influisce solo sui nuovi riferimenti generati dopo l’installazione e la configurazione.
Il modulo amplia anche le colonne dei riferimenti ordine per consentire riferimenti strutturati più lunghi:
orders.reference VARCHAR(64)
order_payment.order_reference VARCHAR(64)
Installazione
- Nel Back Office, vai su Modules → Module Manager
- Fai clic su Upload a module e seleziona il file ZIP
- Una volta installato, fai clic su Configure
- Apri Improve → Order Numbering
Il modulo aggiunge queste pagine al Back Office:
Order Numbering
- Dashboard
- Format Builder
- Generated References
- Settings
Configurazione
Schema del formato
L’impostazione principale è lo schema usato per creare ogni riferimento ordine.
Schema predefinito:
{YYYY}/{MM}/{NNNNNN}
Output di esempio:
2026/06/000042
Esempi comuni di schema:
ORD-{YYYY}-{NNNNNN}
{YYYY}/{MM}/{NNNNNN}
SHOP-{SHOP_ID}-{YYYY}-{NNNNN}
{COUNTRY}-{YYYY}-{MM}-{NNNNNN}
Per la numerazione per cliente, includi un discriminatore specifico del cliente o casuale, così i riferimenti restano univoci a livello globale:
CUST-{CUSTOMER_ID}-{CUSTOMER_NNNN}
{CUSTOMER_REF}-{CUSTOMER_NNNN}
Prefisso e suffisso
Puoi anche aggiungere un prefisso e un suffisso statici intorno allo schema.
Chiavi di configurazione reali usate dal modulo:
order_prefix=ORD-
order_format={YYYY}-{NNNNNN}
order_suffix=
Questo produce:
ORD-2026-000042
Reset del contatore
Scegli quando il contatore viene reimpostato:
never
yearly
monthly
daily
Se scegli yearly, lo schema deve includere {YYYY} o {YY}.
ORD-{YYYY}-{NNNNNN}
Se scegli monthly, lo schema deve includere un tag anno e {MM}.
ORD-{YYYY}-{MM}-{NNNNNN}
Se scegli daily, lo schema deve includere un tag anno, {MM} e {DD}.
ORD-{YYYY}-{MM}-{DD}-{NNNN}
Ambito del contatore
Scegli come vengono conteggiati i contatori:
global
customer
global usa una sequenza per negozio.
ORD-{YYYY}-{NNNNNN}
customer permette a ogni cliente di avere la propria sequenza, ma il formato deve comunque includere un tag cliente univoco o casuale.
C-{CUSTOMER_ID}-{CUSTOMER_NNNN}
Impostare il prossimo numero
Usa Set Next Number quando vuoi che il prossimo ordine parta da un numero specifico, ad esempio dopo il passaggio da un altro sistema di gestione ordini.
order_start_number=5000
Il prossimo riferimento generato usa quel valore una sola volta, poi l’impostazione viene cancellata automaticamente.
Tag disponibili
Il Format Builder mostra i tag disponibili per i riferimenti ordine. I più utili sono:
{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
Alcuni tag documento non sono volutamente disponibili mentre PrestaShop sta creando il riferimento ordine, perché l’ordine o la fattura non esiste ancora:
{ORDER_ID}
{INVOICE_ID}
{DOC_TYPE}
{PAYMENT}
Impostazioni predefinite
Dopo l’installazione, il modulo parte con questi valori predefiniti:
enabled=1
order_format={YYYY}/{MM}/{NNNNNN}
order_reset_mode=yearly
order_counter_scope=global
order_start_number=
order_prefix=
order_suffix=
Registro dei riferimenti generati
Ogni riferimento generato viene salvato in un registro di audit in sola lettura. Il registro contiene:
id_order
id_cart
id_customer
id_shop
counter_value
format_pattern
formatted_reference
date_add
Questo ti aiuta a verificare quale schema è stato usato per un riferimento e a collegare un riferimento generato all’ordine quando PrestaShop ha terminato la sua creazione.
Multi-Shop
I contatori sono salvati per negozio. In un’installazione multi-shop, ogni negozio ha il proprio id_shop nella tabella dei contatori, quindi ogni negozio può mantenere la propria sequenza di numerazione.
Uno schema multi-shop utile è:
{SHOP_ID}-{YYYY}-{NNNNNN}
Oppure, se ogni negozio rappresenta un paese o un brand, usa un prefisso statico per negozio:
DE-{YYYY}-{NNNNNN}
FR-{YYYY}-{NNNNNN}
Suggerimenti
- Usa
{YYYY}nella maggior parte dei formati, così l’anno è visibile senza aprire l’ordine. - Usa
{MM}se reimposti i contatori ogni mese o vuoi raggruppare i riferimenti per mese. - Usa un padding sufficiente per il tuo volume di ordini.
{NNNNN}offre cinque cifre;{NNNNNN}ne offre sei. - Configura lo schema prima di andare online. Modificare il formato in seguito è consentito, ma gli ordini futuri avranno un aspetto diverso da quelli precedenti.
- Per i contatori per cliente, includi
{CUSTOMER_ID},{CUSTOMER_REF},{CART_ID},{RAND6},{RAND7},{RAND8}o{RAND9}in modo che i riferimenti restino univoci. - Mantieni i riferimenti sotto i 64 caratteri. Il modulo valida l’anteprima generata rispetto a questo limite.
Domande frequenti
Gli ordini esistenti riceveranno nuovi riferimenti?
No. Gli ordini esistenti mantengono i loro riferimenti PrestaShop originali. Solo i nuovi ordini usano il formato personalizzato.
I clienti possono vedere il nuovo riferimento ordine?
Sì. È il normale riferimento ordine di PrestaShop, quindi i clienti possono vederlo ovunque il negozio mostri il riferimento ordine, ad esempio nelle pagine dell’account cliente, nelle email d’ordine e nelle fatture.
Cosa succede se due ordini vengono effettuati nello stesso momento?
Il contatore viene incrementato all’interno di una transazione del database usando SELECT ... FOR UPDATE, quindi ogni ordine riceve il proprio valore di contatore.
Posso includere il mese nel riferimento?
Sì. Usa {MM}.
ORD-{YYYY}-{MM}-{NNNNNN}
Posso reimpostare il contatore ogni mese?
Sì. Imposta la modalità di reset su monthly e includi {YYYY} o {YY} più {MM} nello schema.
{YYYY}/{MM}/{NNNNNN}
Posso reimpostare il contatore ogni giorno?
Sì. Imposta la modalità di reset su daily e includi {YYYY} o {YY}, {MM} e {DD}.
{YYYY}/{MM}/{DD}/{NNNN}
Ogni cliente può avere il proprio contatore?
Sì. Imposta l’ambito del contatore su customer e includi nel formato un tag cliente univoco o casuale.
C-{CUSTOMER_ID}-{CUSTOMER_NNNN}
Cosa succede se la numerazione personalizzata è disabilitata?
PrestaShop torna alla normale generazione di riferimenti casuali.
Cosa succede se il formato non è valido?
Il modulo rifiuta di salvare formati non validi nel Format Builder. Se durante la creazione dell’ordine viene trovata una configurazione non valida, il modulo registra il problema e non restituisce un riferimento personalizzato per quell’ordine.
Cosa succede se un ordine viene annullato?
L’ordine mantiene il riferimento che gli è stato assegnato. Il modulo non riutilizza numeri già generati per gli ordini.