Validatori Codici Prodotto
Panoramica
I validatori codici prodotto coprono gli standard internazionali per l'identificazione di prodotti e pubblicazioni: ISBN per libri, UPC e EAN per prodotti al dettaglio, GTIN come standard GS1 unificato, e SKU per codici prodotto interni. Tutti i validatori includono la verifica del checksum quando prevista dallo standard.
Spazi e trattini vengono rimossi automaticamente prima della validazione.
Validatori
isbn
Sintassi: isbn
Descrizione: Verifica la validità di un codice ISBN (International Standard Book Number). Supporta sia ISBN-10 (10 caratteri, con carattere di controllo 0-9 o X) che ISBN-13 (13 cifre, prefisso 978 o 979) con verifica del checksum.
Trattini e spazi vengono rimossi automaticamente.
Esempi:
// ISBN-13 (con trattini)
ValidationService.validate('978-3-16-148410-0', 'isbn') // valido
ValidationService.validate('978-0-306-40615-7', 'isbn') // valido
// ISBN-10 (con trattini)
ValidationService.validate('0-306-40615-2', 'isbn') // valido
// ISBN-10 con X come checksum
ValidationService.validate('155860832X', 'isbn') // valido
ValidationService.validate('0-19-853453-1', 'isbn') // valido
// Non valido
ValidationService.validate('123456789', 'isbn') // 9 cifre: né ISBN-10 né ISBN-13
ValidationService.validate('978-3-16-148410-1', 'isbn') // checksum errato
// In schema DynamicFormLayouts
{ name: 'isbn', type: 'text', validation: 'required|isbn' }
upc
Sintassi: upc
Descrizione: Verifica la validità di un codice UPC (Universal Product Code). Supporta UPC-A (12 cifre, con checksum Luhn) e UPC-E (8 cifre, formato compresso; il primo carattere deve essere 0 o 1).
Spazi e trattini vengono rimossi automaticamente.
Esempi:
// UPC-A (12 cifre)
ValidationService.validate('012345678905', 'upc') // valido
ValidationService.validate('012 345 678905', 'upc') // valido (spazi rimossi)
// UPC-E (8 cifre, compresso)
ValidationService.validate('01234565', 'upc') // valido
ValidationService.validate('00123457', 'upc') // valido
// Non valido
ValidationService.validate('12345678905', 'upc') // 11 cifre: formato non riconosciuto
ValidationService.validate('012345678900', 'upc') // checksum errato
// In schema DynamicFormLayouts
{ name: 'codiceupc', type: 'text', validation: 'required|upc' }
ean
Sintassi: ean
Descrizione: Verifica la validità di un codice EAN (European Article Number). Supporta EAN-8 (8 cifre, prodotti piccoli) e EAN-13 (13 cifre, standard internazionale) con verifica del checksum.
Spazi e trattini vengono rimossi automaticamente.
Esempi:
// EAN-13
ValidationService.validate('4006381333931', 'ean') // valido
ValidationService.validate('5901234123457', 'ean') // valido
ValidationService.validate('400 6381 333931', 'ean') // valido (spazi rimossi)
// EAN-8
ValidationService.validate('96385074', 'ean') // valido
ValidationService.validate('40170725', 'ean') // valido
// Non valido
ValidationService.validate('4006381333930', 'ean') // checksum errato
ValidationService.validate('123456', 'ean') // lunghezza non valida
// In schema DynamicFormLayouts
{ name: 'codiceean', type: 'text', validation: 'required|ean' }
gtin
Sintassi: gtin
Descrizione: Verifica la validità di un codice GTIN (Global Trade Item Number), lo standard GS1 che include UPC, EAN e altri formati. Supporta GTIN-8, GTIN-12, GTIN-13 e GTIN-14 con verifica del checksum tramite algoritmo GS1.
Spazi e trattini vengono rimossi automaticamente.
| Formato | Cifre | Corrisponde a |
|---|---|---|
| GTIN-8 | 8 | EAN-8 |
| GTIN-12 | 12 | UPC-A |
| GTIN-13 | 13 | EAN-13 |
| GTIN-14 | 14 | Standard GS1 con indicatore packaging |
Esempi:
// GTIN-13 (equivalente EAN-13)
ValidationService.validate('4006381333931', 'gtin') // valido
// GTIN-12 (equivalente UPC-A)
ValidationService.validate('012345678905', 'gtin') // valido
// GTIN-14 (con indicatore packaging)
ValidationService.validate('14006381333931', 'gtin') // valido
// GTIN-8 (equivalente EAN-8)
ValidationService.validate('96385074', 'gtin') // valido
// Non valido
ValidationService.validate('123456789', 'gtin') // 9 cifre non supportate
ValidationService.validate('4006381333930', 'gtin') // checksum errato
// In schema DynamicFormLayouts
{ name: 'codicegtin', type: 'text', validation: 'required|gtin' }
sku
Sintassi: sku oppure sku:formato
Descrizione: Verifica la validità di un codice SKU (Stock Keeping Unit). Senza parametro usa il formato generico. Con parametro, applica regole specifiche per il formato indicato.
Parametro: (opzionale) alphanumeric, standard, simple
| Formato | Pattern | Esempio |
|---|---|---|
| generico (default) | 4-30 alfanumerici + trattini/underscore opzionali | PROD_12345, ABC-XYZ-001 |
alphanumeric | Solo alfanumerici, 4-20 caratteri | ABC12345, SKU001 |
standard | Tre gruppi separati da trattini | ABC-12345-XYZ |
simple | 2-4 lettere + 4-8 numeri | AB1234, PROD12345678 |
Esempi:
// Formato generico (default)
ValidationService.validate('PROD_12345', 'sku') // valido
ValidationService.validate('ABC-XYZ-001', 'sku') // valido
ValidationService.validate('P1', 'sku') // non valido: troppo corto
// Formato alphanumeric
ValidationService.validate('ABC123XYZ', 'sku:alphanumeric') // valido
ValidationService.validate('SKU-001', 'sku:alphanumeric') // non valido: trattino
// Formato standard
ValidationService.validate('ABC-12345-XYZ', 'sku:standard') // valido
ValidationService.validate('ABC12345XYZ', 'sku:standard') // non valido: mancano trattini
// Formato simple
ValidationService.validate('AB12345678', 'sku:simple') // valido (2 lettere + 8 numeri)
ValidationService.validate('PROD1234', 'sku:simple') // valido (4 lettere + 4 numeri)
ValidationService.validate('A12345', 'sku:simple') // non valido: solo 1 lettera
// In schema DynamicFormLayouts
{ name: 'sku', type: 'text', validation: 'required|sku:standard' }