Cómo crear opciones de Menú en Magento2

Menú en Magento2

Sigue el plan de recorrer, paso a paso, distintos aspectos (técnicos y funcionales) de trabajar con Magento 2.

Hasta ahora, a través del módulo Barbanet_SampleModule (también disponible vía Packagist), hemos visto cuestiones generales y de frontend. A partir de hoy toca moverse un poco hacia el backend.

Siguiendo lo que sería la navegación de un usuario que administra la tienda, vamos a crear una nueva opción de menú, familiarizándonos con el xml en cuestión (uno de los tantos con los que de ahora en más deberemos lidiar).

El primer paso será crear, siempre de nuestro módulo, en el directorio etc, el directorio adminhtml (hasta ahora no lo tenía creado en el módulo).

Dentro del mismo, creamos el archivo menu.xml y generamos este contenido.

< ?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
    <menu>
        <add id="Barbanet_SampleModule::samplemodule" title="Sample Module" module="Barbanet_SampleModule" sortOrder="50" resource="Barbanet_SampleModule::samplemodule"></add>
        <add id="Barbanet_SampleModule::samplemodule_group" title="Sample Module Group" module="Barbanet_SampleModule" sortOrder="10" parent="Barbanet_SampleModule::samplemodule" resource="Barbanet_SampleModule::samplemodule_group"></add>
        <add id="Barbanet_SampleModule::samplemodule_first" title="Sample Module First" module="Barbanet_SampleModule" sortOrder="10" parent="Barbanet_SampleModule::samplemodule_group" action="samplemodule/first" resource="Barbanet_SampleModule::samplemodule_first"></add>
    </menu>
</config>

Sigue leyendo

Modo Mantenimiento sin usar la Consola en Magento2

Modo Mantenimiento en Magento2

Hace unos días probaba cómo usar la consola de Magento2 para gestionar el modo Mantenimiento (uno de los 4 modos en los cuales puede funcionar la plataforma).

En ese post comentaba que…

…ya no tendremos la necesidad ni de crear un archivo ni de modificar código para controlar el acceso.

Bueno, si bien esto es cierto, no está del todo completo.

Básicamente, cuando usamos la consola, lo que sucede realmente es que se genera un archivo (o dos si habilitamos la lista blanca de IPs).

¿Por qué esto nos puede interesar si tenemos la consola?.

Sigue leyendo

El Checkout en Magento2 (lo mismo pero distinto)

Checkout en Magento2

El checkout… esa pieza tan clave y tan cuestionada. Para algunos el secreto del éxito y para otros, la gran culpable del resultado de las ventas.

Hace un tiempo Antonela nos dio su punto de vista sobre el nuevo checkout de Magento. Hoy ese checkout ya es el nuevo estándar de facto de la plataforma.

Por un lado, usando Luma (el nuevo theme estrella), vamos a notar que el carrito ha tenido algunas pequeñas mejoras de estilo en el cotizador de costos de envío.

Checkout en Magento2

Sigue leyendo

Cómo crear y usar Widgets en Magento2

Widgets en Magento2

Los widgets en Magento fueron una mejora cualitativa en cuanto a la gestión de contenido por parte de los administradores (y también nos permitió a los desarrolladores armar módulos más amistosos en ese sentido).

En Magento 2, luego de haber pasado por una etapa de pérdida de identidad (en algún momento el nombre cambió de widget a apps, para luego volver a widgets), siguen estando presente, y traen algunas mejoras funcionales que valen la pena mencionar.

Este post es una mezcla entre lo técnico y funcional, ya que vamos a ver cómo crear nuestro propio widget y luego vamos a ver cómo configurar y usar el widget desde la plataforma.

Para no perder la costumbre, volvemos a la carga con el módulo Barbanet_SampleModule, y ahora vamos a sumar nuestro widget. El primero paso es definirlo en etc/widget.xml

< ?xml version="1.0" encoding="UTF-8"?>
<widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Widget:etc/widget.xsd">
    <widget id="barbanet_widget_simple" class="Barbanet\SampleModule\Block\Widget\Simple"
            placeholder_image="Barbanet_SampleModule::images/widget.png">
        <label translate="true">SampleModule Widget</label>
        <description translate="true">Just a example of widget</description>
        <parameters>
            <parameter name="title" xsi:type="text" required="false" visible="true">
                <label translate="true">Title</label>
            </parameter>
            <parameter name="message" xsi:type="text" required="true" visible="true">
                <label translate="true">Message</label>
            </parameter>
        </parameters>
    </widget>
</widgets>

Sigue leyendo

Sobreescribir un bloque y un template en Magento2 (di.xml)

di.xml en Magento2

Otra de las novedades (o de las nuevas formas de hacer las cosas) en Magento2 es la inyección de dependencias. Para quienes no estén familiarizados con el patrón, algo de lectura introductoria, explicación de cómo opera en Magento y documentación oficial.

Ahora bien, vayamos a un ejemplo de la vida real, uno de esos con los cuales en más de una oportunidad nos vamos a chocar en el día a día: Sobreescribir un bloque.

Nuevamente voy a hacer uso del módulo Barbanet_SampleModule, y sólo a fines didácticos voy a modificar el footer de Magento2.

Entonces, dado que ayer creé mi theme Barbanet/SampleTheme, mi home hoy se ve así.

Homepage Magento2

Y el footer, en particular:

Footer en Magento2

Voy a aplicar dos modificaciones al mismo tiempo, pero una mediante el bloque que devuelve el string de copyright y la otra mediante el reemplazo del archivo phtml.

Sigue leyendo