Prestashop è un buon prodotto per creare semplici e-commerce, ma per renderlo davvero completo mancano ancora alcune funzionalità essenziali.
Una di queste è la possibilità di aumentare/diminuire i prezzi di tutti i prodotti in una volta sola e non passando manualmente dalla scheda di ognuno di essi (azione che porta via molto tempo già solo con un db di un migliaio di articoli)
Per ovviare a questa mancanza si possono seguire diverse strategie:
- acquistare uno dei moduli a pagamento che aggiungono questa funzione
- scrivere un piccolo script in php che legga i prezzi da un file CSV (o altri formati) e li inserisca direttametne nelle tabelle del database
- utilizzare una query agendo direttamente sul database del vostro ecommerce
In questo articolo voglio analizzare questa terza opzione.
Per prima cosa è necessario loggarsi all’interno di phpmyadmin (quasi tutti i gestori di hosting forniscono ormai questo pannello per la gestione dei database) e selezionare il vostro DB dedicato a Prestashop; dopodichè dovete sapere che i prezzi dei vostri articoli sono contenuti in due tabelle differenti (e non solo in una come sarebbe lecito aspettarsi),una per la visione frontend del negozio e una per quella backend e se volete che i nuovi prezzi siano mostrati ai vostri clienti dovrete agire su entrambe.
Le tabelle in questione sono ps_product_shop e ps_product in entrambe il campo da aggiornare è ovviamente quello nominato price.
Identificati i posti dove agire basterà eseguire una query di update per inserire i valori che vorrete, per far ciò dovrete scrivere la query nell’apposito editor incluso in phpmyadmin (per aprirlo basta cliccare sul bottone SQL posto nella parte superiore della schermata);di seguito riporto alcuni esempi nel caso vogliate aumentare o diminuire i prezzi di tutti i vostri articoli in una volta sola (per esempio nel caso il vostro fornitore abbia cambiato i prezzi a sua volta):
1) aumentare tutti i prezzi del 10%
UPDATE ps_product_shop SET price = price*1.10
UPDATE ps_product SET price = price*1.10
2) diminuire tutti i prezzi del 10%
UPDATE ps_product_shop SET price = price / 1.1
UPDATE ps_product SET price = price / 1.1
3) diminuire tutti i prezzi di 10
UPDATE ps_product_shop SET price = price+1.1
UPDATE ps_product SET price = price+1.1
Ovviamente vi basterà un pò di matematica per gestire le vostre variazioni personali.
Questo ovviamente solo se vogliate aumentare tutti i prezzi dello stesso valore, nel caso in cui invece abbiate variazioni diverse da prodotto a prodotto allora dovrete usare per forza l’import di un file CSV.
Presto scriverò una guida anche per quella esigenza
Ciao, io ho inserito la stringa come suggerito nella cartella price sia della tabella ps_product_shop che ps_product ed ho cliccato su esegui, ma i prezzi non vengono aggiornati.
P.s. ora in price della tabella ps_product_shop c’è scritta solo la seguente stringa:
UPDATE ps_product_shop SET price = price*1.20
ed in price della tabella ps_product ho soltanto la seguente stringa:
UPDATE ps_product SET price = price*1.20
Ho per caso fatto qualche errore? Grazie mille per l’aiuto
ciao Costantino, sei sicuro che la versione di Ps sia quella giusta?