Posizioni Prodotti — Guida completa
Installare, configurare e utilizzare il modulo delle posizioni prodotti: drag & drop, ordinamento automatico multi-criterio, fissaggio delle posizioni e protezione dagli import ERP per PrestaShop 8 e 9.
Presentazione
Il modulo Posizioni Prodotti offre un’interfaccia moderna in drag & drop per riorganizzare i prodotti nelle tue categorie PrestaShop, accompagnata da potenti strumenti di ordinamento automatico e da un sistema di fissaggio che protegge le posizioni scelte dalle modifiche automatizzate (import ERP, CSV, script di terze parti).
Il modulo è compatibile con PrestaShop 8 e 9, sia in negozio singolo che in multinegozio, ed è completamente multilingua (FR, EN, ES, DE, IT). Scrive direttamente nella colonna position standard di PrestaShop: l’ordine definito nel back-office appare identico in front-office, senza configurazione aggiuntiva né integrazione nel tema.
Compatibilità e prerequisiti
- PrestaShop da 8.0 a 9.x — un unico pacchetto copre entrambe le branch, senza configurazione particolare.
- PHP da 8.0 a 8.4.
- Negozio singolo e multinegozio.
- Nessuna dipendenza Composer, nessun servizio esterno, nessun JavaScript di terze parti: jQuery e jQuery UI sono forniti nativamente da PrestaShop.
- PrestaShop 1.7 non è supportato: l’API admin e il sistema degli hook differiscono troppo per garantire un comportamento affidabile.
La compatibilità con PrestaShop 9 è disponibile a partire dalla versione 1.2.0 del modulo. Se migri un negozio PrestaShop 8 verso PrestaShop 9, installa l’ultima versione del modulo prima o dopo l’aggiornamento: le tue posizioni e i tuoi fissaggi vengono conservati, poiché la tabella dei fissaggi non viene modificata dall’aggiornamento.
Installazione
- Dal back-office, apri Moduli > Gestore dei moduli.
- Clicca su Carica un modulo e rilascia l’archivio ZIP.
- A installazione completata, la voce Catalogo > Posizioni prodotti compare nel menu.
All’installazione, il modulo crea una tabella dedicata al sistema di fissaggio e registra gli hook necessari al ripristino automatico delle posizioni bloccate.
Per aggiornare il modulo, carica semplicemente il nuovo archivio sopra il precedente: gli script di migrazione vengono eseguiti automaticamente e i tuoi fissaggi e le tue posizioni sono preservati.
Interfaccia
La schermata di gestione è composta da tre zone principali:
- Albero delle categorie a sinistra: navigazione completa nella gerarchia, ricerca istantanea, contatore prodotti e contatore fissaggi per ogni categoria.
- Barra degli strumenti in alto a destra: ricerca nella categoria corrente, menu Blocco (arancione) e menu Ordinamento automatico (viola).
- Elenco dei prodotti al centro: ogni prodotto dispone di una maniglia per il drag & drop, di un numero di posizione modificabile con un click e di quattro azioni rapide — fissare, portare in cima, portare in fondo, modificare la scheda.
I selettori di negozio e di lingua in alto permettono di cambiare contesto senza lasciare la pagina.
Riorganizzare i prodotti manualmente
Trascinamento
Afferra la maniglia a sinistra di un prodotto e trascinalo nella posizione desiderata. Le posizioni vengono salvate automaticamente al rilascio.
Modifica diretta del numero
Clicca sul numero di posizione di un prodotto per modificarlo da tastiera. Conferma con Invio; premi Esc per annullare. Il modulo sposta automaticamente gli altri prodotti per integrare la nuova posizione.
Pulsanti «In cima» e «In fondo»
Due pulsanti rapidi mandano un prodotto alla prima o all’ultima posizione della categoria con un solo click.
Ordinamento automatico
Il menu Ordinamento automatico applica una classifica a tutti i prodotti della categoria secondo il criterio scelto. I criteri disponibili sono:
- Per nome: dalla A alla Z o dalla Z alla A, in base al nome nella lingua corrente.
- Per prezzo: crescente o decrescente.
- Per stock: stock più alto prima o stock più basso prima, con ordine alfabetico come spareggio.
- Per vendite (ultimi 90 giorni): più venduti o meno venduti prima, calcolato sugli ordini validi del negozio corrente.
- Più recenti / più vecchi: in base alla data di aggiunta del prodotto.
- Riferimento dalla A alla Z: ordine alfabetico per riferimento interno.
- Invertire l’ordine attuale: capovolge l’intero elenco.
- Mescolamento casuale: un ordine casuale a ogni esecuzione.
L’opzione Applica anche alle sottocategorie propaga l’ordinamento a tutte le categorie discendenti in una sola operazione.
I prodotti fissati mantengono la loro posizione durante l’ordinamento: vengono riorganizzati solo i prodotti non fissati (vedi la sezione seguente).
Fissaggio delle posizioni
Il fissaggio consente di bloccare la posizione di un prodotto affinché non cambi né durante un ordinamento automatico, né in seguito a una modifica esterna (import ERP, aggiornamento della scheda dal back-office, script). È uno strato di protezione opzionale: senza fissaggio, il tuo ordine manuale resta valido finché non lanci un ordinamento automatico e finché nessun sistema esterno tocca le posizioni.
Fissare un singolo prodotto
Su ogni riga prodotto, l’icona di fissaggio commuta lo stato fissato / non fissato del prodotto nella categoria corrente. Un prodotto fissato riceve un bordo arancione e un piccolo badge di fissaggio sul suo numero di posizione. Il contatore dei fissati nella barra di stato e nell’albero si aggiorna automaticamente.
Puoi sempre spostare manualmente un prodotto fissato (drag & drop, modifica diretta, pulsanti rapidi): la posizione bloccata segue allora il movimento. Vengono bloccati solo l’ordinamento automatico e le modifiche esterne.
Bloccare l’intera categoria
Il menu Blocco > Bloccare l’intera categoria fissa in un colpo solo tutti i prodotti della categoria corrente alla loro posizione attuale. È l’opzione consigliata per i cataloghi alimentati da un ERP che risincronizza regolarmente le categorie: una volta bloccata la categoria, nessun import esterno può modificarne l’ordine.
Sbloccare tutto
L’opzione Sbloccare tutto rimuove tutti i fissaggi della categoria corrente in una sola azione. Le posizioni attuali vengono conservate; viene rimossa solo la protezione.
Ripristinare le posizioni fissate
L’opzione Ripristinare le posizioni fissate riesegue manualmente l’algoritmo di ripristino sulla categoria corrente. Utile dopo un import consistente per verificare visivamente che tutte le posizioni bloccate siano tornate al loro posto — anche se l’hook di ripristino automatico si attiva già a ogni aggiornamento prodotto.
Casi d’uso
Mettere i primi N prodotti a mano, il resto ordinato dalla A alla Z
Scenario frequente: posizionare manualmente i primi 5 o 10 prodotti di una categoria (prodotti in evidenza, best seller, novità) e poi ordinare alfabeticamente tutto il resto.
- Seleziona la categoria nell’albero.
- Disponi i tuoi primi N prodotti nell’ordine desiderato (drag & drop o modifica diretta).
- Clicca sull’icona di fissaggio di ciascuno di questi N prodotti.
- Apri Ordinamento automatico > Per nome > dalla A alla Z.
Gli N prodotti fissati restano alle loro posizioni; gli altri prodotti vengono ordinati alfabeticamente a partire dalla posizione N+1. Lo stesso meccanismo funziona con tutti i criteri di ordinamento.
Proteggere una categoria da un import ERP
Scenario frequente: il tuo ERP o uno script esterno risincronizza regolarmente i collegamenti prodotto / categoria, azzerando le posizioni.
- Organizza la categoria nell’ordine voluto.
- Apri Blocco > Bloccare l’intera categoria.
- Conferma: tutti i prodotti vengono fissati alla loro posizione attuale.
Da quel momento, ogni aggiornamento di un prodotto bloccato che passa da PrestaShop — scheda prodotto del back-office, webservice, import CSV nativo, modulo di terze parti che manipola l’oggetto Product — attiva automaticamente il ripristino della sua posizione originale.
Uno script che scrive direttamente nel database, senza passare dall’oggetto Product, non attiva alcun hook di PrestaShop: il ripristino automatico non può quindi avvenire. In questo caso lancia Blocco > Ripristinare le posizioni fissate dopo l’import, oppure richiama questo ripristino al termine del tuo script di sincronizzazione.
Multinegozio
Il modulo è pienamente compatibile con la funzionalità multinegozio di PrestaShop. Il selettore di negozio in cima all’interfaccia cambia il contesto. Le posizioni e i fissaggi sono indipendenti per coppia (categoria, negozio): fissare un prodotto nel negozio A non lo blocca nel negozio B.
Multilingua
L’interfaccia del back-office è tradotta in francese, inglese, spagnolo, tedesco e italiano. Il selettore di lingua in cima allo schermo cambia la lingua dell’albero e dei nomi prodotto visualizzati; le posizioni sono comuni a tutte le lingue di un negozio (comportamento nativo di PrestaShop).
Prestazioni
Il modulo utilizza query SQL ottimizzate con join sugli indici esistenti (category_product, product_shop, stock_available). Il salvataggio delle posizioni è temporizzato lato JavaScript per evitare richieste successive durante riorganizzazioni rapide. La tabella dei fissaggi dispone di una chiave primaria composita e di due indici secondari per ripristini molto rapidi, anche su categorie di diverse centinaia di prodotti. Il ripristino è inoltre protetto contro la rientranza, il che evita qualsiasi ciclo durante gli aggiornamenti di massa.
Disinstallazione
La disinstallazione del modulo elimina la tabella dei fissaggi e la voce di menu corrispondente. Le posizioni in category_product restano intatte: il tuo ordine attuale è preservato. Viene rimossa solo la protezione (fissaggio e ripristino automatico).
FAQ
Bisogna fissare ogni prodotto perché l’ordine manuale venga conservato?
No. L’ordine definito con drag & drop o tramite modifica diretta viene salvato nella colonna position standard di PrestaShop e vi resta finché nessun ordinamento automatico o import esterno lo modifica. Il fissaggio è uno strato di protezione opzionale, utile solo se vuoi combinare posizioni manuali e ordinamento automatico, o se il tuo ERP tocca i collegamenti prodotto / categoria durante gli import.
L’ordine definito nel back-office viene riprodotto in front-office?
Sì, senza configurazione aggiuntiva. Il modulo scrive nella colonna nativa category_product.position che PrestaShop usa già per ordinare gli elenchi di prodotti in front. Non è richiesta alcuna integrazione nel tema né alcun hook aggiuntivo.
Il mio ERP risincronizza le categorie a ogni import: cosa devo fare?
Apri il menu Blocco > Bloccare l’intera categoria. In questo modo tutti i prodotti vengono fissati in un colpo solo alla loro posizione attuale. L’hook di ripristino automatico rimette poi le posizioni al loro posto ogni volta che l’ERP modifica un prodotto bloccato tramite l’oggetto Product. Se il tuo ERP scrive direttamente in SQL, aggiungi una chiamata a Ripristinare le posizioni fissate al termine dell’import.
Si può spostare un prodotto fissato?
Sì. Il fissaggio protegge dalle modifiche automatiche (ordinamento automatico, import esterni). Quando sposti manualmente un prodotto fissato (drag & drop, modifica della posizione, pulsante in cima o in fondo), la posizione bloccata viene aggiornata per seguire il movimento.
L’ordinamento automatico funziona con le sottocategorie?
Sì. Spunta l’opzione Applica anche alle sottocategorie nel menu di ordinamento per propagare il criterio a tutte le sottocategorie della categoria corrente in una sola operazione.
Il modulo è compatibile con PrestaShop 9?
Sì, dalla versione 1.2.0. Lo stesso pacchetto copre PrestaShop da 8.0 a 9.x, sia in negozio singolo che in multinegozio, senza dipendenze Composer né JavaScript esterno (jQuery e jQuery UI sono forniti nativamente da PrestaShop).
Il modulo sostituisce la schermata nativa delle posizioni di categoria?
No, la completa. La schermata nativa di PrestaShop resta disponibile; il modulo fornisce un’interfaccia più moderna con il fissaggio e l’ordinamento multi-criterio in più.
L’elenco dei prodotti non si carica, oppure la ricerca si comporta in modo strano.
Svuota la cache di PrestaShop (Parametri avanzati > Prestazioni) e ricarica la pagina forzando l’aggiornamento del browser. Il modulo aggiunge un numero di versione ai suoi file CSS e JS, ma una cache del browser o un proxy aggressivo possono comunque conservare una copia vecchia dopo un aggiornamento.