Ecco una breve guida che spiega come modificare a livello di database e codice PHP la lunghezza massima dei campi meta_title e name in ps_product_lang

Questa sera giocando con CSV di prodotti da importare su PrestaShop, mi sono imbattuto in un piccolo problema di “lunghezza campo” ed ho deciso di scrivere questa breve guida da inserire nella rubrica PrestaShop tips.

L’errore che si presenta nell’import del CSV è il seguente:

Property Product->name length (132) must be between 0 and 128

PrestaShop infatti di default ha i campi della tabella ps_product_lang impostati nel seguente modo: meta_title (128 chars) e name (128 chars)

Vediamo come procedere per aggirare facilmente questa limitazione.

Prima di tutto è necessario modificare la lunghezza dei campi nella tabella ps_product_lang direttamente con PHPMyAdmin, e portarla ad esempio a 140.

Prestashop tips: Risolvere "lunghezza campo nome must be between 0 and 128"
Prestashop tips: Risolvere “lunghezza campo nome must be between 0 and 128”

Ora è necessario aprire il file classes/Product.php e troveremo le seguenti righe rispettivamente a #318 e #330 (ovviamente possono variare con le versioni di PrestaShop)

....
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 128),
......
'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
....

Non ci resta che modificare il valore ‘size’ => 128 in ‘size’ => 140, salvare e ricaricare il file nella cartella classes.

Attenzione: Vi ricordo che dopo un update di PrestaShop, ad esempio dalla versione 1.6.1.1 ad una eventuale 1.6.1.2, il file Product.php locato in classes, viene rimpiazzato dalla nuova versione, quindi la modifica fatta viene persa.