Con PrestaShop 9.2 arrivano le proprietà aggiuntive (in inglese extra properties): campi nuovi su prodotti, clienti, ordini e altre entità, senza tabelle personalizzate e senza override. Per mostrarle abbiamo registrato tre schermate su uno shop di prova: la creazione di una proprietà dal back office, il valore inserito su un prodotto e la pagina prodotto vista dal cliente. Nel video qui sotto Amelia, l’avatar di bwlab, le commenta mentre scorrono. Il video parte solo quando premi play. Lo trovi anche su YouTube. Sotto trovi gli stessi passaggi scritti.

Cosa sono

Una proprietà aggiuntiva è un campo con un tipo, delle regole di convalida e un ambito. L’ambito decide quanti valori ci sono: uno solo, uno per lingua oppure uno per negozio. PrestaShop salva il valore, lo mostra nei form del back office e lo mette a disposizione del negozio e dell’Admin API. Il quadro completo, con i tipi di campo e le tabelle che usa, è nell’articolo sulle novità di PrestaShop 9.2.

Come si crea una proprietà

Si parte da Parametri avanzati, Proprietà aggiuntive. La pagina elenca le proprietà già create: nel nostro shop di prova ce n’è una, video_link, sul prodotto, di tipo testo e con un valore per lingua.

Il pulsante “Aggiungi una nuova proprietà aggiuntiva” apre il modulo. Nella definizione si indicano l’entità, per esempio product, e il nome della proprietà, che diventa il nome della colonna nel database. Poi si scelgono il tipo di campo e l’ambito: comune, per lingua o per negozio.

La spunta “Visualizza in front-office” porta il valore nei template del negozio. Senza quella spunta il negozio non lo riceve. Etichetta e descrizione sono i testi che compaiono nel back office. In Convalida si aggiungono i vincoli, per esempio NotBlank per un campo che non può restare vuoto. In Posizionamento si sceglie in quali form e in quali griglie del back office compare il campo.

Nel video a questo punto annulliamo, perché la proprietà che usiamo, video_link, era già pronta.

Come si compila sul prodotto

Aprendo video_link si vedono le sue impostazioni: tipo testo, un valore per lingua, visibile nel front office, etichetta “Link video”. Il valore si inserisce dal prodotto, in Catalogo, Prodotti. Nella pagina del prodotto compare una nuova scheda, Extra fields, con il campo Link video, dove abbiamo incollato l’indirizzo di un video YouTube. Visto che la proprietà è per lingua, si può mettere un valore diverso per ogni lingua.

Cosa vede il cliente

Sul negozio, la pagina del prodotto mostra la sezione Video con il filmato già incorporato. Per la prova abbiamo usato il nostro video sul checkout rapido.

Il tema deve mostrarla

La proprietà però non compare da sola, perché è il tema che deve stamparla. Nello shop di prova abbiamo aggiunto poche righe al template della pagina prodotto del tema Hummingbird, templates/catalog/product.tpl. Il valore si legge dalla variabile extra_properties del prodotto:

{$product.extra_properties._core.video_link}

Le proprietà create dal back office stanno sotto la chiave _core, quelle registrate da un modulo sotto il nome del modulo, cioè {$product.extra_properties.nome_modulo.nome_proprieta}. Per le proprietà per lingua il template riceve già il valore della lingua corrente. Anche categorie, produttori, fornitori, negozi, carrello e ordini hanno la loro variabile extra_properties.

Dal link ricaviamo il codice del video e lo incorporiamo in un iframe. Se invece stampi il valore così com’è, aggiungi |escape:'htmlall':'UTF-8', come negli esempi della documentazione.

Per chi sviluppa moduli

PrestaShop ha pubblicato un modulo di esempio, demoextraproperty. Registra proprietà su più entità, con tutti gli ambiti e molti tipi di campo, e mostra dove leggere i valori nei template del negozio. La documentazione completa è su devdocs, alla pagina Extra properties.

Da sapere prima di usarle

Sono una novità di PrestaShop 9.2 e il codice è ancora segnato come sperimentale (@experimental): PrestaShop si tiene la possibilità di un cambio non retrocompatibile, ma solo se non c’è altra strada. Il tema poi non le mostra da solo, e senza le righe nel template il cliente non vede nulla.

La documentazione indica anche qualche limite. Carrello e ordini accettano solo proprietà comuni, senza valori per lingua o per negozio. I valori del carrello non passano da soli all’ordine: se ti servono dopo l’acquisto, un modulo deve copiarli. Form e griglie del back office si estendono solo nelle pagine già migrate a Symfony.


Se il video ti è piaciuto, iscriviti al canale YouTube di bwlab. Se vuoi usare le proprietà aggiuntive sul tuo shop, per esempio per mostrare un video, un riferimento interno o un dato tecnico sui prodotti, scrivici: guardiamo insieme il tuo caso.