Moduli gratuiti utili per PS: Webmaster tools verification, commenti sulla home e integrazione di Yotpo

Vi segnalo alcuni moduli GRATUITI per PrestaShop che ho trovato particolarmente utili :

  • Webmaster Site Verification Attraverso questo modulo potrete inserire il codice di verifica di tutti gli strumenti più utili e importanti disponibili su web:
    • Google Webmaster Tools
    • Bing Webmaster Tools
    • Alexa
    • Norton SafeWeb
    • MyWOT.com
    • Yandex Webmaster Tools
    • Pinterest.com
    • e Google Apps

    rimane fuori solo Baidu ma potrebbe anche non interessare 🙂

  • Se desiderate integrare le Review attraverso Yotpo vi consiglio il modulo gratuito Product Review che ricorda e suggerisce in automatico ai clienti, dopo aver effettuato un acquisto, di lasciare il proprio feedback e commento sul prodotto acquistato.
  • Se usate il modulo di commenti fornito di serie ed integrato nel vostro eShop potreste desiderare visualizzare le recensioni ricevute anche sulla home del vostro sito, in maniera da far vedere le ultime opinioni dei vostri soddisfatti consumatori a chi vede la vostra vetrina. Questa funzione viene messa a disposizione dal modulo gratuito Prestashop home page comments reviews and rating, con una semplice conoscienza di CSS e struttura dei file .tpl (template di PS) potrete personalizzare l’estetica dei vostri commenti sulla home in accordo con il layout del vostro tema.



Come Resettare gli Ordini e Clienti di Prova in PrestaShop

Una cosa di cui si sente spesso il bisogno, dopo aver terminato il proprio sito di eCommerce, è quella di passare per una fase di test dove creare clienti, effettuare ordini di prova, provare il customer service, etc.

Verificato che tutto funzioni correttamente però rimane il “problema” che il database rimane sporco di prove fatte che, se siete minimalisti come me, danno fastidio.

Per fare una pulizia completa degli ordini e clienti di prova possiamo tranquillamente utilizzare PhpMyAdmin e lanciare un semplice comando tramite SQL.

Prima di fare qualsiasi operazione sul database effettuate un Backup completo del vostro archivio, si tramite il backoffice del vostro PrestaShop ( Advanced Parameters -> DB Backup ) e magari una seconda copia anche attraverso il comando di esportazione fornito da PhpMyAdmin.

Il comando da lanciare è:
TRUNCATE TABLE `ps_customer`;TRUNCATE TABLE `ps_address`;TRUNCATE TABLE `ps_orders`;TRUNCATE TABLE `ps_order_detail`;TRUNCATE TABLE `ps_order_discount`;TRUNCATE TABLE `ps_order_history`;TRUNCATE TABLE `ps_message`;TRUNCATE TABLE `ps_cart`;TRUNCATE TABLE `ps_cart_product`;TRUNCATE TABLE `ps_cart_discount`;

Attenzione ps_ rappresenta il prefisso standard delle tabelle di PrestaShop, qualora fosse stato cambiato utilizzare il vostro prefisso personalizzato.

Se desiderate un approfondimento sul tema, che consiglio, vi invito a leggere il seguente topic in inglese sul forum ufficiale : https://www.prestashop.com/forums/topic/9045-solved-how-to-reset-or-delete-all-orders-and-customers/




Mail Template in Prestashop

Prestashop ha un’ottima gestione dei template mail da usare nelle varie situazioni di gestione della propria attività, ad esempio per l’invio della conferma d’ordine, la creazione di un account client nel negozio, l’invio di una spedizione etc.

Tutti i template mail si trovano nella cartella /mails ma, per motivi di amministrazione e backup, conviene copiare l’intera cartella all’interno di quella del tema del vostro sito.
Se state usando il tema originale la cartella mail andrà copiata all’interno di quella del tema di default : /themes/default, se usate un custom theme dovrà essere copiata nell’apposita directory del vostro tema.

In questa maniera se desiderate modificare i vari file di template delle mail, personalizzandoli secondo le vostre esigenze, lavorerete su quelli all’interno della cartella del vostro tema e non modificherete mai gli originali che saranno quindi sempre a disposizione per un ripristino o un confronto.

Tutti i file di template delle mail sono in duplice versione : .html e .txt per l’invio delle mail ai clienti nel formato che riterrete più opportuno selezionabile nel vostro back-office : advanced-parameters » E-mail :
[ ] Send email in HTML format.
[ ] Send email in text format
[x] Both

Quindi dovrete andare a modificare i file di template delle mail nel formato che avete scelto per l’invio, preferibilmente conviene tenere aggiornate di pari passo entrambe le versioni sia quella .html che quella .txt.

La modifica dei template è possibile farla sia manualmente, per utenti esperti, lavorando sul codice tramite un normale editor che consente un controllo più professionale sia dell’estetica che della struttura della mail, sia tramite il back-office di PrestaShop su Localization » Translations
mail_template_customizationDovremmo quindi selezionare sia il tema di riferimento per il quale editare i file delle mail sia la lingua coinvolta ( nell’esempio la seconda freccia rossa ci indica che stiamo selezionando le mail del template di default ), ovviamente se il nostro sito è multilingua le modifiche dovranno essere effettuate per tutte le lingue installate ( il che certe volte può implicare una notevole mole di lavoro essendo i template numerosi ).

Di seguito un elenco dei file di template standard e la loro funzionalità ( fare riferimento alla documentazione ufficiale per una spiegazione più approfondita ) :

TEMPLATE (.html/.txt) DESCRIZIONE
account Mail di registrazione utente e benvenuto
backoffice-order Mail inviata quando l’ordine è generato dal back-office e viene inviato link al cliente, cliccando sul pulsante “Send an email to the customer with the link to process the payment.”, per accedere all’express checkout per conferma d’ordine e pagamento.
bankwire Mail per pagamento tramite bonifico bancario, il relativo modulo deve essere abilitato e configurato nel back office.
cheque Mail per pagamento tramite assegno, il relativo modulo deve essere abilitato e configurato nel back office.
contact Messaggi ricevuti da parte dai clienti che compilano il form di contatto standard.
I messaggi ricevuti sono visibili sia nel back-office nella sezione dedicata al servizio clienti Customers » Customer Service sia sulla mail alla quale sono destinati configurabile da Customers » Contacts.
contact-form Messaggio di conferma inoltro messaggio ricevuto dal cliente, sulla propria mail, una volta compilato il form di contatto.
credit-slip Messaggio relative all’emissione della nota di credito. La gestione delle note di credito, per il rientro merce, è piuttosto corposa e viene trattata molto bene nella documentazione ufficiale, nel back-office potete trovarla sotto Orders » Credit Slips.
download_product Mail inviata in automatico al cliente per lo scaricamento del prodotto virtuale ( per chi vende, as esempio, beni digitali come file, musica, documenti, etc. ).
Questo template è associato al file download-product.tpl anch’esso personalizzabile.
Anche in questo caso per la gestione dei prodotti virtuali rimando alla documentazione e forum ufficiale dove la gestione dei Virtual Product è ampiamente trattata.
employee_password Invia mail con i dati di accesso ai collaboratori una volta registrati nel back-office sotto Administration » Employees
forward_msg All’interno del customer service è possibile inoltrare le singole mail dei clienti, ricevute tramite la compilazione del form di contatto, a uno o più collaboratori registrati, questo template gestisce l’inoltro della mail ( e di tutta la comunicazione intercorsa ) nonché le note associate.
guest_to_customer Mail inviata quanto un account Guest viene convertito in Customer Account. Viene quindi inviata al cliente la notifica della modifica dell’account nonché le password di accesso alla propria area di login, i benefici di essere un utente registrato, etc.
in_transit Ordine in transito : mail inviata quando si inserisce, all’interno del singolo ordine, il numero di tracking della spedizione.
Interagisce con il sistema di gestione dei corrieri Shipping » Carriers, infatti nel singolo corriere è possibile specificare il link per la tracciatura della spedizione che viene associato al numero di tracking inviato al cliente.
In sostanza in base al corriere scelto dal cliente al momento dell’ordine, una volta inserito il numero di tracciatura, il cliente riceverà lo specifico link con l’appropriato numero di tracciatura in coda così da avere in un singolo click accesso alla pagina del corriere per il controllo dello stato di transito del pacco.
log_alert Invio mail il Log ai clienti in caso di Log Alert.
Newsletter Conferma registrazione alla Newsletter.
order_canceled Invio Mail di cancellazione dell’ordine, stato impostato manualmente all’interno dell’ordine.
Stato impostato manualmente nella gestione dell’ordine : Bank Office » Orders Status » Canceled
order_changed Invio Mail per modifica dell’ordine effettuata dal commerciante tramite il back-office : aggiunta prodotti, rimozione prodotti, cambio quantità prodotti, etc..
order_conf Mail di riepilogo inviata al cliente una volta generato l’ordine: elenco prodotti, prezzo, codici, quantità, forma id pagamento, totali, scelta del corriere ed eventuali note immesse dal cliente al momento del checkout.
order_customer_comment Messaggio ricevuto dal commerciante, all’interno dell’ordine cliente, riguardanti commenti del cliente relativi all’ordine in corso.
order_merchant_comment Messaggio inviato dal commerciante al cliente con commenti aggiunti all’ordine nel back-office.
order_return_state Invio mail per stato di rientro merce / codice RMA, gestita tramite Orders » Merchandise Return.
outofstock Mail inviata quando un prodotto è stato ordinato ma non disponibile.

Il prodotto deve essere visibile nel front-office del sito e ordinabile, nel caso i prodotti non-disponibili fossero gestiti come non-ordinabili questo template non sarà utilizzato.

password Invio mail con i dati di accesso al back-office personale del cliente.
password_query Richiesta invio / reset Password perché scordata / smarrita.
payment Pagamento avvenuto con successo. Conferma ricezione del Pagamento.
Stato impostato manualmente nella gestione dell’ordine : Bank Office » Orders Status » Payment Accepted
payment_error Problemi con il Modulo di Pagamento o in fase di Pagamento durante il Checkout.
Stato impostato manualmente nella gestione dell’ordine : Bank Office » Orders Status » Payment Error
preparation Mail inviata quando si cambia lo stato dell’ordine dal back-office per indicare che l’articolo è in fase di preparazione / pre-spedizione o, ad esempio, nel caso di un manufatto può indicare che l’ordine è stato preso in carico e il prodotto è in fase di produzione / lavorazione.
Stato impostato manualmente nella gestione dell’ordine : Bank Office » Orders Status » Preparation in Progress
refund Mail di Rimborso Acquisto inviata dal Back-office.
Stato impostato manualmente nella gestione dell’ordine : Bank Office » Orders Status » Refund
reply_msg Mail con messaggio di risposta ai messaggi dei clienti gestiti all’interno della sezione Customer Service ( ad esempio i messaggi di risposta al form di contatto ).
shipped Mail inviata una volta che il pacco viene spedito.
Stato impostato manualmente nella gestione dell’ordine : Bank Office » Orders Status » Shipped
test Template mail per Test Mail : Advanced Parameters » E-mail » Test your email configuration
voucher Invio codice voucher unitamente alla creazione del Credit Slip quando nella sezione ordini del Back-office si crea un rimborso parziale o totale di un ordine.
voucher_new Invio nuovo voucher creato per un cliente specifico.

La maggior parte dei template mail coinvolgono anche una serie di variabili specifiche che inseriscono nella mail dei valori che variano secondo il cliente, l’ordine, etc.
Un file controller specifico imposta quali variabili sono inseribili in quale template, tali variabili, identificate tramite le parentesi graffe, assolvono a numerose funzioni, ad esempio {shop_name} inserirà nella mail il nome del nostro negozio mentre, {shop_url} il nostro indirizzo web.

Di seguito un elenco, a solo scopo riepilogativo e di riferimento, delle variabili più comuni, il nome stesso della variabile ne indica in molti casi la funzionalità : {attached_file}, {bankwire_address}, {bankwire_details}, {bankwire_owner}, {carrier}, {cheque_address_html}, {cheque_address_html}, {cheque_name}, {cheque_name}, {color}, {delivery_block_html}, {discount}, {email}, {firstname}, {guest_tracking_url}, {history_url}, {id_order_return}, {invoice_block_html}, {lastname}, {link}, {message}, {my_account_url}, {nbProducts}, {order_link}, {order_name}, {passwd}, {payment}, {product_name}, {products}, {reply}, {shop_name}, {shop_url}, {state_order_return}, {total_discount}, {total_paid}, {total_paid}, {total_products}, {total_shipping}, {total_wrapping}, {virtualProducts}, {voucher_amount}, {voucher_num}.

Aprendo con un editor di testo il singolo file di template troverete all’interno appunto le variabili ad esso associate e potrete formattarle come meglio credete inserendole in tabelle, liste, modificandone dimensioni, colori, etc.

Non è tema di questo post ma è possibile creare quanti template mail aggiuntivi si vogliono ed assegnare variabili diverse a differenti template mail andando a lavorare su appositi file ( ad esempio creando un file override per : AdminCustomersController.php nell cartella override/controllers/admin ) per un trattamento approfondito del tema suggerisco di fare una ricerca sul forum di PrestaShop o su web dove troverete articoli, prevalentemente in inglese, che trattano esaustivamente l’argomento.

Un ultimo accenno va fatto ai template mail dei moduli aggiuntivi, infatti sia tra quelli di default installabili che su molti acquistabili separatamente, si possono ritrovare ulteriori situazioni in cui messaggi specifici vengono inviati in concomitanza di situazioni specifiche, ad esempio quando si vuole far vedere un prodotto interessante ad un amico ( send to a friend ) o nel caso di un referral program.

In un prossimo articolo, analogamente a questo, pubblicherò una tabella con i template mail dei moduli di default più frequentemente utilizzati.




Protocollo SSL : Logo negozio e {$base_dir} su PS v1.5.x ed aggiungere logo SSL

Nel caso si acquisti un certificato SSL e lo si attivi tramite il back-office di prestashop forzando l’utilizzo dell’SSL sull’intero negozio :

Prestashop v1.5.x force ssl

Prestashop v1.5.x force ssl

quindi andando su Preference -> General e mettendo la spunta su Force the SSL on all the pages si verificheranno dei problemi di sicurezza in quanto alcuni link potranno ancora essere in formato http.

In particolar modo se avete modificato dei file di template o utilizzando in qualche modo la variabile {$base_dir} vi verrà restituito il link in versione http e non https, per ovviare a questo problema andrà sostituito {$base_dir} con {$base_dir_ssl} in tutti i file di template ove fosse necessario.

Il problema permane per il logo che continuerà ad essere visualizzato in modalità non sicura, per risolvere questo problema va modificato un file del codice classes/Link.php nella seguente maniera (riga 410 circa) :

public function getMediaLink($filepath)
{
– return Tools::getShopProtocol().Tools::getMediaServer($filepath).$filepath;
+ return $this->protocol_content.Tools::getMediaServer($filepath).$filepath;
}

Possono esserci delle leggere differenze sulla riga a seconda della release di PrestaShop che state utilizzando, nel caso della versione 1.5.6.2 ad esempio la funzione getMediaLink corretta sarà (riga 408 circa) :

public function getMediaLink($filepath)
{
return $this->protocol_content.Tools::getMediaServer($filepath).$filepath;
return Tools::getShopProtocol().Tools::getMediaServer($filepath).$filepath;
}

Trovate la soluzione originale postata su GitHub e la header-logo-breaks-ssl discussione sul forum inglese di PS.


Infine segnalo il seguente link sul sito mypresta.eu con un utile tutorial per aggiungere un loghetto SSL sul footer del proprio online shop : Secured SSL logo for prestashop




Installare Prestashop in Locale

ver. 1.0 (AX1), Aggiornato a PS 1.5.5.x
First Issue 05.09.2013

Di seguito passo-passo cercheremo di creare una mini-guida per l’installazione di Prestashop in locale

Per prima cosa dobbiamo disporre di un ambiente che ricrei le funzionalità di un Server remoto in locale, quindi che emuli Apache, MySql e le altre funzionalità di cui necessitiamo.
Per far questo disponiamo di varie soluzioni tra cui EasyPHP oppure XAMPP che prediligeremo per i nostri scopi.
In particolar modo scarichiamo XAMPP v1.7.7 da Sourceforge.net disponibile per Windows, Linux o Mac.
Prenderemo in considerazione l’installer Windows, gli altri non sono molto differenti ma potrebbero esserci alcune varianti ad esempio nella gestione dei permessi delle cartelle nella versione MAC.
XAMPP v1.7.7 Windows Download

xampp_v177_note_di_release

Ora Scarichiamo la piattaforma di eCommerce Prestashop in versione Italiana o Multilingua dal sito ufficiale.
Prestashop

A questo punto classico doppio click su XAMPP appena scaricato e facciamo partire l’installazione, la cartella di default è la [root] C: si può variare il percorso ma XAMPP non può essere installato in una sotto cartella.

Terminata l’installazione di XAMPP scompattiamo il file di Prestashop scaricato (che attualmente e compresso).
Se non disponete di un programma di unzip potete scaricare ed installare un ottimo open source quale 7zip che oltre a supportare i file .zip e .rar gestisce innumerevoli altri formati oltre il suo nativo .7z.

Ora ci spostiamo sulla cartella htdocs contenuta all’interno di XAMPP che (salvo variazioni in fase di installazione) sarà C:\XAMPP\htdocs all’interno di questa cartella ne creiamo una nuova che rappresenterà il nome a dominio del nostro sito locale.
Ad esempio potremmo chiamarla myecommerce avremo a questo punto all’interno di htdocs anche myecommerce e l’intero percorso sarà quindi : C:\XAMPP\htdocs\myecommerce attenzione a distinguere bene tra maiuscole e minuscole, per i nostri scopi sarà tutto in carattere minuscolo.

Ora copiamo il contenuto della cartella scompattata di Prestashop all’interno di myecommerce in modo da avere una serie abbastanza corposa di file e cartelle.

Ora possiamo lanciare XAMPP facendo doppio click sull’icona arancione che troveremo sul desktop e/o tra i programmi installati (in alternativa il file eseguibile si trova su C:\XAMPP\xampp-control.exe o C:\XAMPP\xampp-control.exexampp-control-3-beta.exe (due interfacce leggermente differenti per il medesimo scopo) e pigiamo sui primi due pulsanti Apache [START] e MySql [START].
Potremmo anche le due prime voci Services sempre relative ad Apache e MySql, in questo caso XAMPP verrebbe installato some servizio senza la necessità di essere avviato di volta in volta ma occuperebbe risorse e per i nostri scopi didattici non è necessario.
XAMPP control panel

Apriamo il nostro Browser preferito e digitiamo sulla barra degli indirizzi localhost oppure il suo equivalente numerico 127.0.0.1, ci apparirà l’interfaccia di XAMPP 1.7.7 sotto la voce Tools, in basso a sinistra, selezionate phpMyAdmin.
Attraverso phpMyAdmin andremo a creare il Database basato su MySQL indispensabile per l’utilizzo di un CMS e l’utente relativo che avrà le autorizzazioni per gestirlo.
Dal menù in alto selezioniamo la voce Privilegi quindi Aggiungi un nuovo utente e ci apparirà la seguente schermata :
phpmyadmin_nuovo_utente
Scriviamo il nome dell’utente che dovrà gestire il database, ad esempio : myecommerce
Dove chiede Host : scriviamo localhost (indica che useremo il percorso locale per il DB)
Indichiamo la password ad esso associata, ad esempio per semplicità : password

Spuntiamo la voce : Crea un database con lo stesso nome e concedi tutti i privilegi
quindi su Privilegi globali -> seleziona tutti
prestashop_phpmyadmin_configurazione_db_e_utente
A questo punto è stato creato sia il DATABASE che l’utente che lo gestirà, se avete seguito l’esempio avranno entrambi nome mycommerce, altrimenti avranno il nome che avete deciso di dargli in fase di creazione.
Note : Nome utente e password vanno scritti e ricordati per essere utilizzati in un secondo tempo e per future esigenze, quelli usati per scopi didattici non andranno utilizzati in un’eventuale versione su web in quanto “poco sicuri”.
E’ ovviamente possibile creare nome Database e nome utente differenti e poi associarli ma per i nostri scopi risulta superfluo.

Ora possiamo lanciare l’installazione di Prestashop digitando sul nostro browser il percorso locale e cioè :

http://localhost/myecommerce/

Scegliamo la lingua di installazione, clicchiamo su avanti quindi accettiamo termini e condizioni d’utilizzo.

Nella successiva schermata indichiamo i dati principali di configurazione del negozio quali : nome del negozio, nome e cognome dell’utente principale (super-administrator).
Quindi indirizzo mail che rappresenta anche il nome utente per l’accesso al back-office e la relativa password, da memorizzare e conservare con cura per l’accesso all’area di amministrazione.
prestashop_dati_installazione_utente

Nella schermata successiva troviamo i campi per inserire il nome e password dell’utente autorizzato a gestire il database, nome del database che sono state antecedentemente create tramite phpMyAdmin, nonché il percorso del database che sarà localhost come proposto dalla schermata, quindi :

Indirizzo server del database:  localhost
nome del database : myecommerce
nome di accesso database : myecommerce
Password del database : password
Note: E’ buona norma cambiare anche il prefisso delle tabelle per motivi di sicurezza da ps_ a qualcosa di differente ad esempio : myec_.

prestashop_parametri_database_final_step

A questo punto partirà l’installazione che si concluderà a breve ma, dopo essersi conclusa, per poter visualizzare ed accedere al negozio dobbiamo ancora seguire un paio di passi :
Torniamo nella cartella locale del nostro negozio quindi c:\xampp\htdocs\myecommerce cancelliamo la cartella di installazione di prestashop c:\xampp\htdocs\myecommerce\install
Infine, sempre nel medesimo percorso, rinominiamo la cartella di accesso all’area di amministrazione, quindi c:\xampp\htdocs\myecommerce\admin dovrà diventare qualcosa di diverso come, ad esempio, c:\xampp\htdocs\myecommerce\ecommerce-admin
Note: Questa procedura è stata implementata per motivi di sicurezza in quanto risulterà più difficile ad eventuali malintenzionati accedere all’area di back office senza conoscerne l’indirizzo preciso.

Se tutto è stato seguito correttamente avremo :
Back-Office : http://localhost/myecommerce/ecommerce-admin
Front-Office : http://localhost/myecommerce/

Ora si passa all’azione… !!!

INDEX