Home>Guide>Personalizzare PrestaShop: la lista prodotti nel backend

Personalizzare PrestaShop: la lista prodotti nel backend


Personalizzare PrestaShop: la lista prodotti nel backend


PrestaShop è sicuramente una dei CMS più utilizzati per creare in maniera rapida e funzionale un e-commerce di successo, ma iniziando a lavorarci con frequenza ci si rende conto che spesso è necessario espanderne le funzionalità per renderne l’utilizzo più comodo ed agevole.
Ad esempio, ti è mai capitato di avere centinaia, se non migliaia di prodotti in catalogo e volerli filtrare per brand nel backend?

  • Leggi l'articolo, ti bastano solo 2 minuti, 12 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!
La guida fa riferimento alle versioni 1.6.x di PrestaShop, precedenti rispetto all'attuale v1.7.x.

Elenco prodotti predefinito

Chi ha utilizzato PrestaShop almeno una volta, sa che non possibile farlo nell’installazione di default. Sembra strano, eppure è proprio così!

Ma niente paura, la soluzione è a portata di mano!


L'override delle classi di PrestaShop

Il sistema di espansione utilizzato da PrestaShop è davvero molto molto semplice. Basta un minimo accenno ai concetti di ereditarietà delle classi, tra le prime nozioni di programmazione ad oggetti, che non approfondiremo però in questa sede per non perdere il focus della guida.

Nel caso ipotizzato, il Controller che si occupa di visualizzare l’elenco prodotti nella sezione admin è AdminProductsController, che si trova della cartella:

controllers/admin/

nella root nello spazio FTP del tuo sito.

Non ci resta che “estenderlo” aggiungendo il campo che ci occorre. Per farlo, crea un nuovo file:

override/controllers/admin/AdminProductsController.php

ed aggiungi il seguente codice:

<?php

class AdminProductsController extends AdminProductsControllerCore
{

	public function __construct()
	{
        parent::__construct();
		$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'manufacturer` m ON a.`id_manufacturer` = m.id_manufacturer ';
		$this->fields_list['manufacturer'] = array(
            'title' 		=> $this->l( 'Manufacturer' ),
            'filter_key' 	=> 'm!name'
        );
	}

}

In pratica, dopo aver richiamato la funzione costruttore della classe “padre” AdminProductsControllerCore, da cui deriva la nuova classe appena definita, abbiamo aggiunto una join alla query di default del Controller, così da avere accesso anche ai campi relativi ai produttori (manufacturer) ed estrapolarne il nome.

L’ultima istruzione, estende la lista di colonne da visualizzare nell’elenco, a cui aggiungiamo appunto la colonna “manufacturer” definendo il titolo e il corrispondente campo da cui estrapolare il valore, così come definito nella tabella appena collegata.

Ma un attimo! Ti starai chiedendo per quale motivo la colonna non è comparsa nell’elenco. Tranquillo, non hai fatto alcun errore (lo dico sulla fiducia, eh). Bisogna effettuare un ultimo piccolo passaggio per rendere effettive le modifiche.


Ricostruiamo la cache delle classi

Tieni sempre a mente che ogni qual volta crei manualmente l’override di una classe di PrestaShop, bisogna far ricostruire la cache delle classi utilizzate. Per farlo, è necessario rimuovere il file:

cache/class_index.php

Basta un refresh della pagina e noterai che il file viene immediatamente rigenerato. Da questo momento, PrestaShop si accorgerà delle modifiche da te effettuate ed il gioco è fatto!

In questo modo, potrai ordinare o filtrare per brand, magari combinando il nuovo filtro con gli altri per estrapolare i dati che preferisci.



Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Come resettare la password di WordPress con phpMyAdmin

Come resettare la password di WordPress con phpMyAdmin


Hai dimenticato la password per accedere al backend del tuo WordPress e non sai come fare? Questa guida fa al caso tuo! Scopri come modificare la password del tuo account direttamente dal database

Disabilitare le altre spese di spedizione se quella gratuita è disponibile in WooCommerce

Disabilitare le altre spese di spedizione se quella gratuita è disponibile in WooCommerce


Scopriamo come disabilitare gli altri metodi di spedizione quando è attiva l’opzione di spedizione gratuita in WooCommerce, evitando così dubbi e confusione ai tuoi clienti.

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Privacy Policy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Privacy Policy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Privacy Policy)