Documentazione Product Page Pro & SEO

Passaggi di installazione e un riferimento completo per ogni impostazione, con esempi concreti — lo stesso livello di dettaglio che il nostro supporto usa per aiutare i clienti.

Installazione

Requisiti

Magento 2.4.x. PHP 8.1–8.5. Funziona con Hyvä (qualsiasi tema figlio) e Luma (il tema Magento di default) — il tema attivo viene rilevato automaticamente, nessuna configurazione necessaria. Su qualsiasi altro tema il modulo non ha alcun effetto (nessuna azione, come se fosse disattivato).

Passaggi di installazione

  1. Aggiungi le credenziali che riceverai via email a auth.json nella root del tuo progetto Magento:
    { "http-basic": { "repo.codingrow.com": { "username": "...", "password": "..." } } }
  2. composer config repositories.codingrow composer https://repo.codingrow.com
  3. composer require codingrow/module-ppps
  4. bin/magento module:enable Codingrow_Ppps
  5. bin/magento setup:upgrade && bin/magento setup:di:compile
  6. Incolla la tua chiave di licenza in Admin → Stores → Configuration → Codingrow Extensions → Product Page Pro & SEO → License → License Key, salva, poi bin/magento cache:flush.
  7. bin/magento setup:static-content:deploy -f (se in modalità production).

Non è richiesto nessun passaggio di build Tailwind né configurazione del tema: ogni regola di layout critica (rapporti griglia, posizionamento sticky, breakpoint) è CSS puro incluso nei template del modulo stesso, non classi utility Tailwind.

Configurazione

Cinque interruttori indipendenti in Stores → Configuration → Codingrow Extensions → Product Page Pro & SEO → General:

  • Enable column gallery on desktop — griglia immagini a 2 colonne invece di una immagine alla volta.
  • Enable sticky buy-box on desktop — su Hyvä, sia le immagini che la colonna prezzo diventano sticky (quella naturalmente più corta resta fissa mentre l'altra scorre); la descrizione si sposta sotto la galleria, e questa impostazione sblocca le due sottostanti. Su Luma, solo la colonna prezzo/acquisto resta fissa durante lo scroll.
  • Enable repeated image strip below description — richiede l'impostazione sticky buy-box sopra. Mostra di nuovo tutte le immagini prodotto in una riga che va a capo.
  • Enable simplified section titles — elimina il nome prodotto ripetuto accanto a titoli come "Description" (solo Hyvä).
  • Enable product SEO structured data — aggiunge un blocco JSON-LD schema.org/Product (nome, immagine, brand, GTIN, prezzo, disponibilità) per i rich results di Google, e compila una meta description per i prodotti che ne sono sprovvisti. Non visivo; sia su Hyvä che su Luma, sia desktop che mobile; non sovrascrive mai una meta description esistente.

Tutte e cinque richiedono una licenza valida; senza, il modulo si comporta come se fosse completamente disattivato (layout predefinito del tema invariato, nessun errore mostrato ai visitatori del negozio).

Product Page Pro & SEO admin configuration: the License field and the six General options, with the Merchant listings group below
OpzioneCosa faDefaultNote
Chiave di licenzaLa chiave di licenza emessa per questo dominio.—Incollala dopo l’acquisto, poi svuota la cache.
Abilita galleria a colonna su desktopMostra tutte le immagini prodotto insieme in una griglia a 2 colonne invece di una alla volta.SìSolo desktop ≥ 1024px; il mobile resta con la galleria nativa.
Abilita colonna prezzo sticky su desktopMantiene la colonna prezzo / aggiungi al carrello in vista mentre si scorre.SìPrerequisito delle due opzioni sotto; sposta anche la descrizione sotto le immagini.
Abilita striscia di immagini ripetuta sotto la descrizioneMostra di nuovo tutte le immagini, a dimensione fissa, in una striscia sotto la descrizione.SìRichiede la colonna prezzo sticky.
Abilita titoli sezione semplificatiRimuove il nome prodotto ripetuto accanto a titoli come “Descrizione”.SìSolo Hyvä (nessun effetto su Luma).
Abilita dati strutturati SEO prodottoAggiunge un blocco JSON-LD schema.org/Product (nome, immagine, brand, GTIN, prezzo, disponibilità) così che Google possa mostrare rich results, e compila una meta description per i prodotti che ne sono sprovvisti.SìNon visivo; sia su Hyvä che su Luma, desktop e mobile. Non sovrascrive mai una meta description esistente.

Disinstallazione

composer remove codingrow/module-ppps poi bin/magento setup:upgrade && bin/magento setup:di:compile && bin/magento cache:flush.

Guida utente

Su desktop (1024px e oltre), tutte le immagini prodotto vengono mostrate insieme in una griglia a 2 colonne invece della singola immagine più striscia di miniature di Hyvä o dello slider Fotorama di Luma. Il mobile non viene mai toccato — mantiene sempre il comportamento nativo della galleria del tema (immagine singola, striscia di miniature scorrevole sotto).

Su Hyvä, questo è implementato come un blocco aggiuntivo dentro il componente galleria Alpine.js del tema stesso, riutilizzando gli stessi dati immagine già caricati per la galleria predefinita — nessuno stato JavaScript duplicato. Su Luma, la griglia viene aggiunta accanto al widget Fotorama nativo (mai modificato o reinizializzato); i due vengono alternati con CSS puro al breakpoint desktop.

Product page on desktop with the Product Page Pro & SEO 2-column image grid and the sticky buy-box

Colonna prezzo sticky

Su Hyvä: sia la colonna immagini che la colonna prezzo/acquisto diventano position: sticky — quella naturalmente più corta (di solito la colonna prezzo, dato che la colonna immagini+descrizione è normalmente più alta) resta fissa in vista mentre l'altra scorre oltre. La descrizione si sposta dalla sua posizione predefinita (sotto entrambe le colonne) direttamente sotto le immagini, dentro quella stessa colonna sinistra.

Su Luma: solo la colonna prezzo/acquisto resta visivamente fissa mentre scorri, tra l'header e la fine della sezione informazioni prodotto — la colonna immagini e descrizione scorre sempre normalmente. Questo è implementato in JavaScript (transform: translateY(), ricalcolato ad ogni scroll) invece che con CSS position: sticky, poiché il posizionamento sticky non si è rivelato affidabile combinato con il layout nativo a due colonne basato su float di Luma. Anche la descrizione viene riposizionata direttamente sotto le immagini (di default Luma la mette a piena larghezza sotto entrambe le colonne).

Richiede l'impostazione sticky buy-box. Sotto la descrizione, tutte le immagini prodotto vengono mostrate di nuovo a dimensione fissa (274×274px), che vanno a capo naturalmente restringendo lo schermo — 3 per riga su una tipica larghezza desktop, sempre meno per riga restringendo, fino a 1 per riga su mobile. Le immagini si rimpiccioliscono sotto la loro dimensione fissa solo quando anche una singola immagine non entra più nella larghezza disponibile.

Titoli sezione semplificati

Il tema predefinito Hyvä mostra "Description / Nome Prodotto" come intestazione sopra la scheda descrizione — ridondante ora che il nome prodotto è già in evidenza altrove nella pagina riorganizzata. Questa impostazione la sostituisce con una semplice intestazione "Description". Le schede native di Luma non hanno mai avuto questa ripetizione, quindi l'impostazione non ha effetto visibile lì.

Dati strutturati SEO prodotto

Indipendente da tutto quanto sopra, e non è un cambiamento visivo. Quando è abilitato, ogni pagina prodotto riceve un blocco JSON-LD schema.org/Product che descrive il prodotto — nome, immagine, brand, GTIN/EAN, e un Offer con prezzo, valuta, disponibilità e condizione dell'articolo — così i motori di ricerca possono mostrare rich results (prezzo e disponibilità nella SERP, idoneità alle schede prodotto gratuite di Google). Ogni campo è best-effort: tutto ciò che il prodotto non ha (nessun attributo brand, nessun EAN, nessun prezzo) viene semplicemente omesso, mai un errore, e il blocco viene emesso allo stesso modo su Hyvä e Luma, desktop e mobile.

La stessa impostazione compila anche una meta description per i prodotti che non ne hanno una propria — costruita a partire dalla descrizione breve/lunga del prodotto (o dal suo nome come ultima risorsa). Non tocca mai un prodotto che ha già una meta description (ad esempio impostata manualmente o popolata da un import di feed), quindi si limita sempre a colmare una lacuna.

Schede commerciante: resi e spedizione

Google legge dalla scheda prodotto le condizioni di reso e di spedizione per mostrarle nelle sue schede commerciante gratuite, e Search Console le segnala come mancanti quando non ci sono. Non si possono dedurre dal catalogo — sono condizioni commerciali — quindi si dichiarano in configurazione, sotto Merchant listings (returns and shipping). Entrambi i blocchi sono spenti di default e richiedono i dati strutturati del prodotto attivi.

Merchant listings group in the admin: return policy and shipping details
  • Condizioni di reso → hasMerchantReturnPolicy: paesi (scelti dall'elenco di Magento), finestra di reso, giorni, come torna la merce, chi paga e l'eventuale costo.
  • Condizioni di spedizione → shippingDetails: paesi serviti, costo (0 per la spedizione gratuita), tempi di preparazione e di consegna in giorni lavorativi.

Due regole sono volute. Un blocco con i campi obbligatori incompleti viene scartato intero invece che pubblicato a metà: Google confronta quanto dichiari con quello che il cliente trova sul tuo sito, quindi una dichiarazione sbagliata vale meno di una assente. E con "reso non accettato" non si pubblicano né il metodo né chi paga: non c'è reso da descrivere.

L'offerta porta anche validFrom, la data da cui vale il prezzo pubblicato: l'inizio del prezzo speciale quando c'è, altrimenti la data di creazione del prodotto. Quella non richiede alcuna configurazione.

Quasi mai queste condizioni sono uguali per tutto il catalogo: i tempi di preparazione e consegna cambiano fra magazzino proprio e dropshipping, la spedizione dipende dall'ingombro, la finestra di reso da cosa si vende. E il numero di solito esiste già sul prodotto, in un attributo che compila il tuo importatore o il tuo team. Ognuno di quei campi può quindi puntare a un attributo del prodotto — l'elenco comprende quelli personalizzati — con una casella per scrivere un codice che l'elenco non offre. Dove il prodotto ha un valore vince lui; dove non ce l'ha resta il valore fisso; e un valore che non è un numero ricade sul fisso invece di pubblicare un'assurdità.

The fields that take their value from a product attribute

Ogni numero può venire da un attributo del prodotto, scelto dall'elenco del catalogo: qui i tempi di preparazione e consegna arrivano dagli attributi che compila un importatore.

Supporto Hyvä e Luma

Il tema attivo viene rilevato automaticamente (nessuna configurazione necessaria) risalendo la catena dei temi padre del tema corrente cercando "Hyva" o "Luma" nel codice del tema. Su qualsiasi tema che non sia un discendente di Hyvä o Luma, ogni plugin di questo modulo è garantito non fare nulla — la pagina viene renderizzata esattamente come senza il modulo installato, mai un errore.

Licenza

Una chiave di licenza per dominio Magento, inserita in Stores → Configuration → Codingrow Extensions → Product Page Pro & SEO → License → License Key. La chiave è verificata dal modulo, e il negozio non dipende dai nostri server per funzionare: un disservizio da parte nostra non lo ferma. La licenza copre la versione attuale più 1 anno di update e supporto: le versioni uscite entro quell'anno restano tue per sempre, e per installare le successive rinnovi il supporto (−35%). Per cambiare dominio: il primo cambio è gratuito e immediato dalla tua area cliente, poi uno all'anno.