WordPress è adatto per un sito di e-commerce? La risposta non può che essere una sola: dipende. WordPress è un CMS concepito per il blogging o comunque per una tipologia di siti che può in un certo senso essere ricondotta ad un blog (quotidiani, siti aziendali di tipo showcase eccetera). Come tale, le sue funzionalità per l'e-commerce vengono aggiunte dai temi o dai plugin, ma WordPress nativamente non è orientato all'e-commerce, come invece lo sono Magento o altri framework. Dipende sempre dal tipo di e-commerce che volete implementare. Quindi maggiore è la complessità del vostro e-commerce, maggiori sono le difficoltà che incontrerete in WordPress. In questo articolo cercherò di evidenziare i punti su cui prestare maggiore attenzione.
Scelta del tema
Per scegliere un tema per l'e-commerce dovete innanzitutto documentarvi sulla reputazione del tema che volete usare. Non fatevi ingannare dalla grafica o da altre funzionalità esteriori, perchè usando CSS e JavaScript potrete sempre aggiungerle in un secondo momento.
Guardate invece i commenti degli utenti al tema, la sua votazione, e fate una ricerca estesa su Google per verificare se il tema crea problemi, e se crea problemi verificate che l'autore del tema fornisca supporto o che vi siano soluzioni conosciute e semplici da applicare.
Poi dovete verificare la gestione da parte del tema di alcuni componenti basilari:
- prodotti
- carrello
- gestione pagamenti
- tipi di pagamento supportati
- validazione dei dati
- supporto multivaluta
- gestione utenti
- notifiche agli utenti
Un buon tema per l'e-commerce dovrebbe avere almeno queste cinque caratteristiche e implementarle in modo efficace. Ripeto: non importa se il tema non è un gioiello grafico, l'importante è che il suo core funzioni a dovere.
Nello specifico, dovete testare:
- URL permanenti
- paginazione
- divisione corretta in categorie e sottocategorie
Ho notato che in genere i punti 1 e 2 sono quelli che creano maggiori problemi. Infatti molti temi creano tassonomie e post custom per gestire i prodotti, e a volte gli URL permanenti che vengono generati non sono il massimo da un punto di vista SEO.
Inoltre lavorando molto sulle regole di riscrittura degli URL di WordPress, questi temi a volte possono generare pagine di errore 404 nella paginazione dei post, che in questo caso sono prodotti.
Vi consiglio di effettuare molti test preliminari in locale: è l'unico modo per essere sicuri di aver fatto la scelta giusta.
Scelta dei plugin
Molti dei consigli che ho già menzionato per i temi si applicano anche ai plugin. Non voglio annoiarvi con un inutile elenco di plugin da usare (inutile perchè il loro numero è in continuo aumento): è sufficiente digitare "wordpress ecommerce plugin" su Google per farsi un'idea della quantità di plugin esistenti.
Quello che invece ritengo più utile è rispondere alla vostra domanda di fondo: come faccio a modificare il comportamento del plugin X?
Risposta: andate al cuore del plugin, ossia alla sua gestione del carrello. Tutti i dati che l'utente ha selezionato durante la sua navigazione vengono infatti registrati sul carrello. Ma come?
Tramite le sessioni PHP: all'interno dell'array globale $_SESSION
i plugin vanno infatti a creare un array multidimensionale e associativo in cui conservano il prezzo, la quantità, lo sconto, il nome e la descrizione del prodotto.
Per esempio, il celebre plugin eShop, gestisce il carrello in questo modo:
$shopping_cart = $_SESSION['eShopcart'.$blog_id];
In questo array c'è tutto quello che ci serve di sapere sui prodotti selezionati ed è facile accedere alle singole voci:
foreach($shopping_cart as $product => $value) {
$id_prodotto = $value['postid'];
$prezzo = $value['price'];
$quantita = $value['qty'];
$nome_prodotto = $value['pname'];
$descrizione_prodotto = $value['item'];
}
Quindi se volete selezionare la thumbnail del prodotto potete scrivere:
$img = get_post_thumbnail($id_prodotto, array(150,150));
Per ulteriori approfondimenti vi suggerisco di consultare questo articolo.
Se avete accesso al carrello, avete accesso ai dati importanti del vostro sito. Per localizzare i file significativi del vostro plugin seguite la procedura descritta nell'articolo. Vi consiglio di annotarvi per ciascun file quali sono le routine svolte di volta in volta.
In questo modo sarà più semplice avere una visione di insieme del vostro plugin.
Infine, vorrei segnalarvi un problema che ho potuto riscontrare durante lo sviluppo: la gestione dei calcoli e la formattazione dei valori monetari. PHP è un linguaggio dalla debole tipizzazione, per cui anche se i valori numerici del carrello sono memorizzati come stringhe, la seguente operazione:
$totale = $prezzo * $quantita;
darà il risultato sperato. In genere i plugin gestiscono internamente la formattazione dei valori numerici, per esempio utilizzando la funzione PHP number_format():
$numero = 1234.56;
$numero_formattato = number_format($numero);
// 1,235
Leggete attentamente la documentazione della funzione se volete usarla senza problemi. Vi consiglio di effettuare prima tutti i calcoli e di usare questa funzione solo alla fine quando dovete visualizzare il risultato. eShop la usa in modo diffuso.
Altra funzione molto usata è money_format() per formattare le valute. Questa funzione va sempre usata impostando prima la valuta locale:
$numero = 1234.56;
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $numero) . "\n";
// Eu 1.234,56
Ovviamente dovete prima ottenere il numero con i decimali esatti e solo dopo formattarlo come valuta.