Come già accennato Magento mette a disposizione 4 scopes (ambiti): Global, Website, Store e Store View. Ma come configurarli? Facciamo un esempio:
Premessa: Abbiamo un negozio di musica che vende chitarre e violini e vogliamo venderli sia sul mercato Italiano che sul mercato Americano. Il nostro nome dominio è musicatua.com; come facciamo?
Creazione delle Categorie di Root in Magento 2
Le root category non sono designate per apparire frontend, ma sono dei contenitori per il menu principale nell’albero delle categorie. Questa tipologia di categorie può essere attribuita ad uno specifico store ( ma anche più di uno).
Nel nostro caso vogliamo creare due root category da attribuire a due store differenti:
- Una root category per le Chitarre
- Una root category per i Violini
Come creare root category in Magento 2?
Creare una root category è molto semplice, ci basterà navigare all’interno del pannello di amministrazione di magento ed andare su Catalog > Categories > Add root Category e settare i vari parametri come ad esempio il nome della categoria, in questo caso abbiamo creato due root cageory: Chitarre e Violini
Creazione di un Website in Magento 2
Come abbiamo detto nell’articolo sulle differenze tra website, store e storeview con i website possiamo creare sotto una sola istanza Magento più siti web.
Nel nostro esempio non è nostra intenzione creare più siti web, ma vediamo comunque come crearli.
Come creare un Website in Magento 2?
Creare un website è molto semplice, ci basterà navigare all’interno del pannello di amministrazione di magento ed andare su Store > All store > Create Website e settare i vari parametri come ad esempio il nome descrittivo del website, il code del website, l’ordinamento e lo store di default a cui fa riferimento.
Andrebbero poi aggiornati Base Url, Base Link Url, Secure Base Url e Secure Base Link Url con i rispettivi nome dominio o sottodominio (dipende da come vogliamo impostare i vari siti web) e per finire andrebbe configurato Apache o Nginx (salteremo questo passaggio poichè nel nostro esempio non abbiamo necessità di creare un multi website)
Creazione di un Multi Store in Magento 2
In Magento, uno store è contenuto in un website e a sua volta contiene uno storeview.
- Multipli store, possono condividere : il carrello, le sessioni degli utenti, i metodi di pagamento, account dei clienti ecc…
- Multipli store : Possono avere una struttura del catalogo differente e possono avere prezzi del catalogo differenti.
I negozi vengono solitamente utilizzati per visualizzare un layout e/o lingue differenti per ogni negozio.
Ogni sito web e ogni vista del negozio devono avere un identificatore univoco. Questo identificatore è necessario per utilizzare le variabili MAGE_RUN_TYPE e MAGE_RUN_CODE.
Come creare un Multistore in Magento 2?
Per creare multipli store ci basterà navigare all’interno del del pannello di amministrazione di Magento ed andare su Store > All store > Create Store, compilare i campi necessari e ripetere l’operazione per ogni store che vogliamo creare.
Nel nostro esempio, creeremo due store: uno per chitarre ed uno per violini
Creazione di Multiple Storeviews in Magento 2
In Magento, uno StoreViews ci da l’opportunità di creare viste negozio utili alla localizzazione, tradotte per lingua, con le correte valute, magari usando espressioni tipiche locali ecc, un esempio lampante potrebbe essere la vista di un negozio italiano e uno persiano in cui viene utilizzato l’RTL (right to left) in cui si mantengono gli stessi prodotti e categorie ma cambia ad esempio layout, valuta, lingua.
- Gli StoreViews mantengono la struttura delle categorie inalterata tra le visualizzazioni di negozio
- Gli StoreViews condividono lo stesso catalogo e gli stessi prodotti.
- Gli StoreViews consentono ai clienti di effettuare il check-out con la valuta di riferimento.
Come creare un Multi-StoreViews in Magento 2?
Per creare multipli storeviews ci basterà navigare all’interno del del pannello di amministrazione di Magento ed andare su Store > All store > Create StoreView, compilare i campi necessari e ripetere l’operazione per ogni store che vogliamo creare.
Nel nostro esempio, creeremo due storeviews: uno per l’italiano ed uno per l’inglese e ripeteremo l’operazione per ogni negozio: Chitarre e Violini
Configurare gli url per gli storeview in Magento2
Questo step può essere eseguito in diversi modi a seconda della configurazione che si vuole ottenere, facciamo qualche esempio di come è possibile configurare.
Esempio 1:
Vendiamo Caramelle e Dentifrici con due domini diversi, mercato di riferimento Italia.
- 2 website
- 1 store per ogni website
- 1 storeview per ogni store
- Domini : Caramelle.com e Dentifrici.com
In questo caso, potremmo voler puntare Carmalle.com al website che vende caramelle e Dentifrici.com al website che vende dentifrici. Avremo quindi:
- Dentifrici.com
- Caramelle.com
Esempio 2:
Vendiamo Caramelle e Cioccolate sotto un unico dominio, mercato di riferimento Italia e Australia.
- 1 website
- 2 store
- 2 storeview per ogni store
- Domini : leccornie.com
In questo caso, potremmo voler puntare leccornie.com agli store, creando un sottodominio per ogni store, ed una “sottocartella” per ogni storeview, ad esempio:
- it.leccornie.com/cioccolate/
- au.leccornie.com/cioccolate/
- it.leccornie.com/caramelle/
- au.leccornie.com/caramelle/
Esempio 4:
Vendiamo Caramelle e Dentifrici con due domini diversi, mercato di riferimento Italia e Australia.
- 2 Website
- 1 Store per ogni website
- 2 Storeviews per ogni store
- Domini : Caramelle.com e Dentifrici.com
Potremmo voler aggiungere semplicemente una “sottocartella” all’url principale di ogni sito, ad esempio:
- Caramelle.com/it_IT/
- Caramelle.com/en_AU/
Dentifrici.com/it_IT/
Dentifrici.com/en_AU/
Esempio 3:
Vendiamo Caramelle, Leccalecca, Dentifrici e Spazzolini con due domini diversi, mercato di riferimento Italia e Australia.
- 2 Website
- 2 Store per ogni website
- 2 StoreViews per ogni store
- Domini : leccornie.com e igieneorale.com
Potremmo voler creare sottodomini per i website e sottocartelle per la lingua, ad esempio
- caramelle.leccornie.com/it_IT/
- leccalecca.leccornie.com/it_IT/
- dentifrici.igieneorale.com/it_IT/
spazzolini.igieneorale.com/it_IT/
Ogni tipologia di configurazione appena descritta presenta i suoi vantaggi/svantaggi sia dal punto di vista SEO che dal punto di vista di configurazione poiché ci sono diversi metodi per configurare gli url come richiesti. Diciamo che in via generica una soluzione potrebbe essere:
- Impostare Base URL e Secure Base Url per ogni storeview
- Creare una cartella per ogni storeview sotto /pub/
- Creare symlink per app, index.php , lib, media, static, var
- Configurare correttamente nginx o apache riportando MAGE_RUN_CODE e MAGE_RUN_TYPE
- Utilizzare l’opzione Add Store Code to Urls disponibile in magento sotto Stores>Configuration > Web (dipende)
Come aggiungere lo store_code all’url in Magento 2?
Per aggiungere lo storecode all’url, ci basterà fare login all’interno della dashboard dell’amministratore, cliccare su stores » configuration » Selezionare lo scope (Default Config) » Cliccare su Web » selezionare YES su Add Store Code to Urls
Nel nostro esempio, siccome non abbiamo un dominio a disposizione, abbiamo pensato di aggiungere semplicemente lo store_code all’url, questo sicuramente non è una soluzione ottimale per la nostra tipologia di negozio che presenta 1 website 2 store (chitarre e violini) e 2 storeviews per ogni store (italiano e americano).