Los “scopes” en Magento 2

Magento 2.X  tiene por defecto muchas configuraciones en su panel de administración. Normalmente no indagamos mucho en este aspecto y en los muchos menús que nos encontramos. Se puede dar el caso de que cambiamos alguna funcionalidad por código cuando perfectamente se hubiera podido cambiar desde la administración. Por ejemplo, el orden de los productos, modo lista o grid en las vistas de catálogos, tiempos de sesión, cantidad de resultados, orden por defectoen el catálogo etc.

Un concepto que debemos tener claro antes de cambiar las distintas configuraciones de Magento 2 son los alcances. Por defecto Magento 2 trabaja 4 alcances:

  • Global: Configuración transversal a nivel del sistema que está disponible en la instalación del Magento 2
  • Website: Recursos y configuraciones están limitados al website en cuestión y a sus stores/storesviews
  • Store (Tienda): Recursos y configuraciones están limitados a la tienda (store) actual. Cada store tiene una categoría por defecto y una vista de tienda (store view) por defecto
  • Store view (Vista tienda): Es el nivel más específico de configuración. Cada recurso y configuración está limitado a la vista de la tienda en cuestión. Generalmente se usa estealcance para los distintos idiomas de nuestra tienda.

Un punto importante a recalcar es que el “catalogo”, que es el nombre que la da Magento 2 a todo nuestros productos, tiene un alcance global, eso explica por qué el campo de SKU tiene un scope global y no se puede cambiar y no se puede repetir entre websites.

¿Nunca te has preguntado por qué justo debajo de los campos de prácticamente toda la interfaz de administración de Magento 2, salen keywords como [global] [website] [store view] ? Es precisamente para indicar el alcance que tiene este atributo, no necesariamente un atributo de producto, también configuraciones.

Algunos ejemplos:

  • Atributo Enable/Habilitar del producto: Este atributo tiene un alcance [website] quiere decir entonces que no importa si cambiamos este valor estando en un store viewespecífico, al cambiarlo se actualiza a nivel de [website], con la finalidad de poder activar o desactivar el mismo producto por [website],. Como caso práctico, podemos desde el día uno de la tienda vender un producto del catálogo en dos websites diferentes (pueden ser dos dominios diferentes, subdominios etc) pero el día de mañana podemos cambiarlo para que solo se venda en uno de los dos websites.

 

  • Atributo Productname/Nombre producto: Tiene de alcance [store view] quiere decir entonces que entre los distintos store view de una [store] de un [website] podemos tener distintos nombres. Como caso práctico, la traducción del  nombre de producto en los varios idiomas

 

  • Atributo Price/Precio producto: Tiene un alcance [global] por defecto. Es decir el precio se cambia a nivel de catálogo, que está por encima del alcance [website]. Tenemos una configuración en Tienda > Configuración > Catalogo > Catalogo > Precio donde podemos cambiar el alcance de este atributo entre [global] y [website] con la finalidad de poder tener el mismo producto en diferentes websites con precios distintos.

Igualmente Magento 2 nos deja cambiar el alcance de ciertos atributos de productos (No todos, te estoy viendo atributo de stock) para darle más juegos a nuestra manera de trabajar.

Podemos cambiar el alcance del atributo url_key (URL Seo del producto) si eso lo que queremos, podemos cambiar el alcance del atributo weight si nos hace falta, entre muchos otros. Para los atributos definidos por el usuario también podemos cambiar el alcance, por ejemplo podemos definir que el atributo de Marca tiene un alcance [store view] para marcar que el mismo producto es vendido por dos marcas diferentes en dos [store view] distintos.

Está misma metodología se aplica para las distintas configuraciones del Magento 2 con la única diferencia que no nos deja cambiar el pero igualmente nos dan mucho juego a la hora de configurar nuestra tienda. Basta con sentarnos a ver bien todas las posibilidades que tenemos con respecto a configuraciones dentro de Magento 2, por [store view] por [webiste] etc; para configurar nuestro Magento 2 de la forma que queramos.

 

Gianni Di Falco