PrestaShop e prodotti casuali in vetrina

{ Posted on gen 26 2012 by maury }

Usando PrestaShop una delle prime funzionalità che saltano agli occhi è quella della “Vetrina” cioè di una serie di prodotti che possono essere messi in evidenza nella Home Page. La funzionalità di base è gestita dal modulo “homefeatured” ma è, nella configurazione di partenza, abbastanza limitata, in particolare vincola la presenza in vetrina SE E SOLO SE il prodotto appartiene ad una categoria preimpostata (madre di tutte le categorie) chiamata “HOME”.

Cercando in giro si trovano alcune modifiche da fare al modulo per poter mostrare nella vetrina prodotti nuovi o con altri criteri, ma tutti questi con alcuni limiti per le mie esigenze.

In particolare si voleva mostrare in vetrina dei prodotti in modo “casuale” ma cambiando la vetrina stessa solo una volta al giorno, per non confondere i visitatori.

Nessuna delle funzioni della classe Products.php aveva le informazioni necessarie per recuperare un tot di prodotti casuali, con tutte le informazioni necessarie per essere mostrati nella vetrina, ma aggiornando questa lista solo una volta al giorno.

La soluzione è stata aggiungere nel modulo una funzione che recuperi i prodotti

public static function getHProducts($id_lang, $nb)


QUI il codice completo del modulo corretto, salvare come file .php

e poi nella funzione “hookHome” richiamare questa funzione

$products = HomeFeatured::getHProducts(
intval($params['cookie']->id_lang),
($nb ? $nb : 10)
);


21 Responses to “PrestaShop e prodotti casuali in vetrina”

  1. Ciao, sono un neofita, ho anche io la necessita di avere una vetrina “casuale”
    ho copiato il codice completo in un file txt e trasformato in php.
    ora però mi fermo perchè la cosa si fa complicata!
    puoi aiutarmi?
    grazie anticipate.
    Mario

  2. adesso devi copiare quel file homefeatured.php che hai creato nella cartella del modulo che contiene la vetrina cioè in /modules/homefeatured sovrascrivendo l’esistente e tutto dovrebbe andare (fatti una copia del file che sovrascrivi per sicurezza)

  3. ciao, devo dire che era proprio la funzione che cercavo.
    una volta copiato il file php funziona tutto ma mi da il seguente errore quando vado alla tab moduli:

    Il modulo seguente (s) non è stato possibile caricare:
    homefeatured (errore di analisi in /modules/homefeatured/homefeatured.php)
    homefeatured (classe mancante in /modules/homefeatured/homefeatured.php)

    prestashop versione 1.4.5.1

  4. Funziona anche in PS 1.5.X ?

  5. Ottima guida

    Posso chiedere un consiglio? C’è un modo per modificare la query di ricerca in modo che venga mostrato un prodotto per categoria per (ad es.) tre categorie precise?

    Grazie in anticipo

  6. Non l’ho ancora provato nelle ultime versione di PS, mi ripropongo di farlo non appena possibile…

  7. In che senso? non ho capito bene la tua domanda, tu vorresti mostrare in vetrina non prodotti qualunque ma scegliendo quali categorie e quanti prodotti?

  8. Ciao, volevo chiederti se sarebbe possibile fare una cosa del genere ma con dei blocchi di testo, nel senso che la mia idea sarebbe quella di mostrare nella home una casella contenente un consiglio per i clienti che varia giorno per giorno…

    Hai idea di come si possa fare?

  9. certamente, la vedo anche più facile del mostrare i prodotti in vetrina, puoi usare lo stesso codice che ho indicato nell’articolo ma invece che recuperare dei prodotti dati dal database dovresti recuperare il testo del consiglio o da una tabella del database o ancora meglio da un file di testo ben strutturato… se vuoi qualche script già pronto prova a cercare “php quote of the day script”, comunque se hai bisogno chiedi pure…

  10. Ti ringrazio intanto per la risposta! :)

    Comunque sì, l’idea sarebbe proprio quella di “prelevare” il testo desiderato – preferibilmente un’anteprima dello stesso di max 2/3 righe – da una pagina CMS dedicata per l’appunto ai vari consigli per i clienti, per poi visualizzarlo in un blocco apposito nella home che vorrei riportasse una dicitura del tipo “Lo sapevi che…” o “La Frase del Giorno”…

    Come da te suggerito, ho anche provato a cercare qualcosa di preimpostato, ma la tua idea secondo me rimane la migliore! ;) Vorrei solo capire come adattare quel codice perché faccia al caso mio… puoi aiutarmi??

  11. Ciao, ho prestashop 1.5.2.0, la modifica funziona, ma i prodotti in vetrina perdono l’incasellamento.. cioè, sono sempre 8 (come da mio setup) ma invece di due righe x quattro si posizionano casualmente in 4/5 righe, nella prima tre prodotti, nella seconda uno solo, nella terza due e così via..
    Qualche suggerimento?

  12. Rieccomi, spero di non essere considerato spammer..
    ho risolto, modificando il file homefeatured.php all’interno della cartella del modulo omonimo..
    se ti interessa posso inviarti una copia del file modificato per la pubblicazione.. (PS 1.5.2.0, funziona benissimo)

  13. bisogna un po’ capire di cosa hai bisogno, se parliamo di PrestaShop si deve agire da codice, se invece usi altri strumenti tipo WordPress ci sono blocchi gà pronti, ma dovresti anche mandare l’indirizzo del sito per capire di cosa stiamo parlando…

  14. Ciao,
    sono alle prime armi con Prestashop, vers. 1.5.4
    volevo chiedervi come si possono mettere 5 prodotti sulla stessa riga nei prodotti in vetrina invece di 4. Ho già provato a cambiare la riga sul file homefeatured.tpl
    da {assign var=’nbItemsPerLine’ value=4} a {assign var=’nbItemsPerLine’ value=5}
    ma non ho avuto alcun risultato.

    qualche suggerimento?
    Vi ringrazio in anticipo.

    ciao

  15. Rieccomi qui! :)

    Allora, se per te è lo stesso posso anche mandarti il file .zip contenente il template da me utilizzato, di modo tale che tu possa avere un’idea chiara di che cosa ho bisogno esattamente, anche se una versione demo del medesimo template è disponibile al seguente indirizzo: http://addons.prestashop.com/demo/FO3170.html

    Considera comunque che il blocco contenente questa fantomatica “Frase del Giorno” intendevo collocarlo al lato destro, o al più in basso a destra, rispetto allo slideshow.

    Per il resto, sempre seguendo il tuo suggerimento, ho trovato un tutorial che in pochi passi ti spiega come andare ad inserire lo script PHP che farebbe proprio al caso mio, anche se ovviamente la guida fa riferimento all’inserimento del suddetto script in una pagina web “generica”, non di Prestashop! :( Il tutorial lo trovi qui: http://blazonry.com/php/quoteoftheday.php

    Direi che questo è quanto per il momento, ma se necessiti di qualche altra informazione o dell’archivio .zip del template fammelo pure sapere, a presto! ;)

  16. Bella domanda, direi che dovrebbe però essere possibile da Back Office->Moduli->In evidenza (opp. Featured)
    da qui nelle opzioni puoi cambiare il numero di prodotti…
    potrebbe essere necessario anche agire poi sul .css
    prova a fammi sapere

  17. Direi che siamo andati un po’ troppo nello specifico, la soluzione migliore è che chiedi assistenza nel forum italiano di PrestaShop dove sicuramente troverai l’aiuto che ti serve, lo trovi qui: http://www.prestashop.com/forums/forum/57-forum-italiano/

  18. Ciao,
    anch’io come tanti sono alle prime armi.. ho PS 1.5.4
    sono riuscito a salvare il file php. ma non rieco a apire dove devo inserire la stringa “hookHome”

    potete aiutarmi?

  19. La funzione “hookHome” è già presente nel file homefeatured.php e quindi non devi inserirla, ma al suo interno bisogna mettere il richiamo alla nuova funzione HomeFeatured::getHProducts al posto di $category->getProducts

  20. Ciao,
    ho lo stesso problema risolto da Lj potresti mandarmi il file aggiornato.
    Mi mette le immagini fuori dalla tabella a caso.
    Grazie

  21. anche io con la versione 1.5 ho il problema dell’allineamento.
    potresti pubblicare il file che hai corretto per la versione 1.5 ??

    ti ringraziamo

Post a Comment