Concepto del multistore de Magento 2

Magento tiene 4 ámbitos (scopes). Éstos son global, website, store y store view.

Imaginemos que una compañía multinacional "ABC" que vende calzados y complementos de calzados. Podría tomar el dominio abc.com para el scope global (valor del sistema). Tomar el dominio calzados.abc.com y complementos-calzados.abc.com para su scope de Website. Esta empresa vende calzado de distintas marcas (Adidas, Nike, ...) y complementos nuevos y usados. Podría crear entonces stores para cada marca y store según si los complementos son nuevos o usados. Esta empresa vende sus productos en muchos países. Entonces podemos crear store views tales como it, uk, es, us... para el idioma de cada país.

¡Ojo! No necesariamente hay que poner un dominio o algo diferente en la url para cada store view. El dominio puede ser el mismo para el website y el store view. Todo depende de las necesidades de la empresa. Y sobretodo que tenga sentido y claridad. Reflejando la realidad del modelo del negocio de la compañía. Por ejemplo: Podemos crear tantos websites como países donde vendemos los productos. Para cada país un dominio

  • calzados.it
  • calzados.es
  • calzados.uk
  • calzados.us...

Hay 3 tablas que definen los scopes website, store y store view. Son loas siguientes:

  • store_website: website
  • store_group: store
  • store: store view
El scope website puede tener muchos store views. Un mismo store view puede estar en muchos websites. Por ejemplo las marcas del calzado puede estar también en el website complementos-calzados.abc.com El scope store view puede estar en cualquiera de los websites. Por ello se se creó la tabla store_group para que haya esa relación.

Un ejemplo del scope global es el scope website que se crea automáticamente en la instalación del magento. Este website es el website 0 con un store con nombre default. Cuando configuramos Magento en el Backoffice, si seleccionamos el scope default, esta config uración se aplicará para todas las configuraciones de todos los demás scopes.

Los comandos de Magento para saber los websites y store views que tenemos, podemos ejecutar los siguientes comandos.

        #websites 
        bin/magento store:website:list 
        #store views
        bin/magento store:list