Come creare un Multi-Store in Magento 2

Come creare un Multi-Store in Magento 2

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 root category

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 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 Store

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

Creazione Storeviews

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).

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2022
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram