Durante uno dei miei lavori mi è capitato di dover configurare un e-commerce Magento multidomnio, multilingua e multivaluta, suddiviso però per sottodirectory con associato un language tunnel per la corretta indicizzazione ed instradamento del traffico.
Il language tunnel non è altro che una semplice pagina statica in cui vengono elencati gli indirizzi del negozio nelle varie lingue.
1 2 3 4 5 | Es. http://www.tuosito.com/en/ --> store di default, lingua inglese valuta GBP http://www.tuosito.com/it/ --> store in italiano, valuta EUR http://www.tuosito.com/de/ --> store in tedesco, valuate EUR http://www.tuosito.com/us/ --> store in inglese per Stati Uniti, valuta USD |
Questa modalità, suggeritami dal mio collega SEO Emanuele Ricci offre particolari vantaggi per l’indicizzazione, senza considerare il miglioramento dell’usabilità da parte dell’utente.
[info ]Se vuoi approfondire l’aspetto SEO di questa tecnica ti suggerisco di leggere l’articolo del mio collega: IP REDIRECT E SITO MULTILINGUA IN SOTTOCARTELLE[/info]
In invece non mi soffermerò sull’aspetto SEO di tale tecnica (adottata ad esempio da colossi come nike.com) bensì sulla configurazione in Magento.
[alert ]
Cose che dovresti già conoscere:
- Come creare una store view
- Come impostare la valuta di default e la lingua su una store view
C’è da sottolineare che se si configura la valuta per store_view, Magento effettuerà una conversione della valuta stessa al momento dello switch o del pagamento. Se intendi configurare la valuta per ottenere qualcosa del tipo 99.00€ = 99.00$ non puoi usare la store_view ma dovrai creare un nuovo website, come spiegato in questa domanda su StackOverflow Magento multi store multi currency e modificare il file index.php della relativa sottodirectory di conseguenza.
[/alert]
La configurazione più semplice per ottenere questo risultato è quella di creare, nella root di Magento, tante directory quante sono le lingue con lo scopo di ottenere diversi store configurati per lingua e per valuta, portando il sito principale alla lingua inglese e quindi avendo un redirect su www.tuosito.it/en/
da www.tuosito.it
Creiamo quindi le directory per le lingue IT, DE, EN, US:
1 2 3 4 5 | $ cd magento_root $ mkdir it $ mkdir en $ mkdir de $ mkdir us |
e copiamo (o per meglio rendere meglio l’idea, cloniamo) quindi in ognuna delle directory i files .htaccess
e index.php
presenti nella root di Magento.
1 2 3 4 | $ cp .htaccess it/ && cp index.php it/ $ cp .htaccess de/ && cp index.php de/ $ cp .htaccess en/ && cp index.php en/ $ cp .htaccess us/ && cp index.php us/ |
Ora bisognerà creare dei link simbolici all’interno di ognuna delle directory che dovranno puntare rispettivamente alle directory principali dell’installazione Magento
1 2 3 4 5 6 7 8 9 10 | $ cd it $ ln -s ../app ./app $ ln -s ../skin ./skin $ ln -s ../var ./var $ ln -s ../media ./media $ ln -s ../errors ./errors $ ln -s ../includes ./includes $ ln -s ../js ./js # ripetere l'operazione per le altre directory |
Imposteremo che lo store in lingua inglese sarà quello di default, agli altri si potrà accedere tramite il solito selettore lingua oppure direttamente da www.tuosito.it/it/
Per configurare in questo modo Magento, accediamo all’admin, e creiamo tante store views del sito quante sono le lingue da configurare.
Andiamo poi in Sistema->generale->web
, con il selettore di store impostato su default, e inseriamo l’indirizzo del sito in BASE URL, nelle tab unsercure
e secure
, con l’aggiunta di /en/
. Ottenendo rispettivamente http://www.tuosito.it/en/
e https://www.tuosito.it/en/
come indirizzo principale.
Cambiamo poi store dal menu a tendina del selettore stores, e selezioniamo di volta in volta la lingua da configurare. Impostiamo quindi /it/
nei campi secure e unsecure, (come fatto precedentemente) ottenendo quindi http://www.tuosito.it/it/
e https://www.tuosito.it/it/
Bisogna ripetere questa procedura per ogni lingua / sottodirectory che si vuole configurare.
Bisogna ora configurare i vari files index.php
delle relative sottodirectory, inserendo i giusti valori in $mageRunCode
e $mageRunType
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php ... /** * Bisogna inserire lo store_code delle store views create in amministrazione come valore di $mageRunCode. * Lo storecode inserito sulla mia installazione magento per la lingua italiana è it_it * @file magento_root/it/index.php */ //configurazione per la lingua italiana /it * Store or website code */ $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'it_it'; //storecode qui /* Run store or run website */ $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store'; //qui specifico se la configurazione è basata sullo store o sul website. in questo caso è sullo store |
Come ultimo passo, andrà creata la pagina CMS language_tunnel dall’amministrazione e inserire in questa pagina tutti i link, formattati e impaginati come si vuole, che riportino alle varie lingue.
Scrivi un commento