Magento Custom Module Development

El desarrollo de módulos personalizados de Magento es una parte fundamental de cualquier proyecto de Magento o de desarrollo de Magento, ya que en cualquier etapa es posible que desee integrar su propia funcionalidad / módulo en su proyecto Magento existente. 

En esta serie, cubriré los detalles del desarrollo de módulos personalizados de Magento..

Si desea ir más lejos con su desarrollo de Magento, consulte la amplia gama de extensiones de Magento en Envato Market..

Extensiones de Magento en Envato Market

A lo largo de esta serie, me refiero a Magento Community Edition 1.7, aunque las estructuras de módulos personalizados son las mismas en todas las versiones de Magento. Antes de comenzar, vamos a iniciar el desarrollo real del módulo, entendamos rápidamente la estructura básica de Magento. 

Cada vez que instale un Magento nuevo, notará la siguiente estructura de directorios de Magento:

Introducción a la estructura de magento MVC

Como cualquier otro marco importante como Joomla, CakePHP, CodeIgniter, etc., Magento también sigue la arquitectura basada en MVC, aunque es un poco diferente a la arquitectura central de PHP MVC. Aquí, explicaré la diferencia en la arquitectura de Magento comparándola con la arquitectura simple de PHP MVC..

Arquitectura PHP MVC

En el patrón típico de MVC, el flujo de la aplicación es algo como esto:

  1. Hay un punto de entrada principal. - index.php - desde donde se determina todo el mecanismo de enrutamiento de la aplicación.
  2. Sobre la base de este mecanismo de enrutamiento y el patrón de URL solicitado, la aplicación llamará al controlador apropiado.
  3. El controlador luego llama a las vistas apropiadas.
  4. Finalmente, los archivos de vista recopilan los datos de los archivos modelo y muestran los datos.

Arquitectura magento MVC

La arquitectura MVC de Magento agrega algunas capas al patrón MVC, pero el flujo básico de control de una aplicación es así:

  1. Hay un punto de entrada principal. - index.php - desde donde se inicializará toda la aplicación.
  2. Base en la URL solicitada se llamará controlador apropiado. 
  3. El controlador define las páginas y carga los archivos de diseño para esas páginas.
  4. Los archivos de diseño le indican a los controladores qué archivos de bloques usar..
  5. Los archivos de bloque recopilan los datos de los modelos y los archivos de ayudantes y los pasan a los archivos de plantillas.
  6. Los archivos de plantillas reciben datos y renderizan html..

Inicialmente, esto puede ser difícil de entender ya que contiene algunas capas adicionales. Para familiarizarse con el flujo de control, desarrollemos un módulo personalizado "Hello World".

Antes de comenzar con los módulos

  • Supongo que ya tiene una copia de trabajo de Magento con la versión 1.7 o 1.7+ (o de lo contrario, la versión no importa en esta etapa)
  • Deshabilitar el caché. Para deshabilitar la memoria caché Vaya a Magento Admin Panel> Sistema> Administración de caché> Seleccionar todo el tipo de caché en las casillas de verificación del lado izquierdo> Seleccionar acción: deshabilitar desde la parte superior derecha hacia abajo> haga clic en Enviar.

La Estructura de un Módulo Magento

Conjuntos de códigos

Magento contiene tres tipos de grupos de códigos donde residen todos los módulos principales y personalizados de Magento. 

  1. Los grupos principales contienen todos los módulos principales que, de forma predeterminada, vienen con una instalación de Magento. Estos módulos están escritos por los desarrolladores de Magento. Se recomienda no modificar estos módulos porque cada vez que actualice su instalación de Magento, todos los módulos centrales se sobrescribirán y sus modificaciones se perderán.
  2. Los grupos comunitarios contienen todos los módulos, es decir, módulos personalizados, que son desarrollados por programadores de terceros para ser instalados a través de Magento Connect. Estos módulos generalmente extienden los módulos centrales y ofrecen su propia funcionalidad que a menudo se puede utilizar en cualquier lugar de Magento..
  3. Los grupos locales contienen todos los módulos personalizados que se van a utilizar para un proyecto en particular, pero no están leídos en Magento Connect

Por lo tanto, tenemos dos opciones de piscinas: Comunidad o Local. Ya que estamos trabajando en nuestro propio proyecto, usaremos un grupo local, aunque no hay ninguna restricción para usar el grupo comunitario, tampoco.

Estructura

Los módulos de Magento constan de los siguientes componentes:

  • Bloques Contienen funciones que se utilizan para mostrar datos en plantillas.
  • Modelos Contiene la lógica de negocio de los módulos..
  • Modelos de recursos Contiene funciones que se utilizan para la interacción de la base de datos..
  • Controladores define el diseño de la página y bloquea los archivos y se cargan cuando se solicita una URL.
  • etc contiene archivos de configuración en formatos XML que le indican a Magento cuántos módulos de archivos tienen y cómo interactúa el módulo.
  • Ayudantes contienen funciones que se utilizan para definir la lógica de negocios común (como cambio de tamaño de imagen, validación). Estas funciones pueden usarse en cualquier lugar de la aplicación Magento.
  • sql contiene scripts SQL para crear, modificar o eliminar tablas SQL.

Nombre del módulo

Necesitamos darle un nombre a nuestro módulo. En general, los nombres de los módulos de Magento se componen de dos partes: _La mejor práctica para darle un nombre a un módulo de Magento es elegir como autor o nombre de una empresa y como un nombre de módulo real.

Basado en esta convención de nombres, le doy a nuestro módulo la Chiragdodia_Mymodule nombre. Haremos referencia a este nombre a lo largo de esta serie..

Configuración de código y configuración

 Permite crear la base de directorios en la estructura anterior. Vaya a la dirección de instalación de Magento y luego navegue hasta aplicación / código / local y crea los directorios como se muestra abajo.

A continuación, configuraremos y activaremos nuestro módulo creando un archivo de configuración. Chiragdodia_Mymodule.xml en el app / etc / modulesdirectorioEste directorio contiene archivos de configuración para todos los módulos..

    cierto local   

Este archivo le informará a Magento sobre la ubicación de nuestro módulo. En el activo etiqueta, hemos especificado cierto Para habilitar nuestro módulo. Si todo está correcto hasta ahora, entonces encontrará su módulo en el Panel de administración de Magento> Sistema> Configuración> Avanzado> Avanzado> Desactivar salida de módulos lista. Desde aquí puedes habilitar y deshabilitar tu módulo..

Empezando: Desarrollo

A continuación vamos a crear nuestro archivo de configuración del módulo. Este archivo le dirá a Magento todo sobre nuestro módulo. Esto incluye cuántos archivos contiene nuestro módulo, qué tipo de archivos (modelos, ayudantes, clases de base de datos), etc..

Ir app / code / local / Chiragdodia / Mymodule / etcy crea un config.xmlarchivo que contendrá el siguiente contenido

    0.1.0       estándar  Chiragdodia_Mymodule mymodule      

Vayamos línea por línea para entender cada etiqueta. Aquí, la primera etiqueta es que contiene el nombre y la versión de nuestro módulo. El número de versión es muy importante a la hora de actualizar su módulo actualizar su módulo.

los La etiqueta le dirá a Magento sobre el controlador despachado. Dentro de  etiqueta, hemos definido Eso le dice a Magento cómo acceder a nuestros controladores a través del mecanismo de enrutamiento. 

En el  etiqueta, hemos definido el nombre del módulo en etiqueta y nombre de frontend en . Al usar un nombre de frontend, podemos acceder a nuestro módulo en frontend como yoursitename.com/index.php/mymodule/index.

Llamando yoursitename.com/index.php/mymoduleyoursitename.com/index.php/mymodule/index Magento buscará la acción de índice del archivo del controlador de su módulo. Como tal, necesitamos crear nuestro archivo controlador.

Ir  app / code / local / Chiragdodia / Mymodule / controllersy crear archivo IndexController.phpcon el siguiente contenido.

Tenga en cuenta que el nombre y la clase de cada archivo distinguen entre mayúsculas y minúsculas en Magento. Es muy importante que tenga cuidado al nombrar su trabajo al crear archivos y clases..

Ahora abre la URL yoursite.com/index.php/mymodule/indexse imprimirá "Hola tuts + mundo". Impresionante: por fin hemos terminado con nuestro primer módulo hola mundo..

Despacho del controlador

Aquí hemos extendido la clase.Mage_Core_Controller_Front_Actionque contiene todos los métodos que se utilizan en el enrutamiento de url. El nombre de la clase Magento refleja la ubicación del archivo de clase. Entonces la clase Mage_Core_Controller_Front_Actionreside en el lugar Mago> Núcleo> Controlador> Frente> Action.php

Ver el nombre de la clase de nuestro controlador que es Chiragdodia_Mymodule_IndexController. El controlador Magento debe ser nombrado de tal manera que refleje (etiqueta) _ (nombre de usuario de la acción) (controlador de palabra clave).

  • etiqueta = Chiragdodia_Mymodule (Hemos definido esta etiqueta en config.xml)
  • Acción Nombre de usuario = Índice
  • Controlador de acción seguido de la Controlador palabra clave 

Basado en este patrón, el nombre de nuestro controlador es Chiragdodia_Mymodule_IndexController

Ahora vea el patrón de URL que es el siguiente patrón de ruta
yoursite.com/index.php/frontendname/actionControllername/actionmethod

  • frontendname = mymodule
  • actionControllername = Index
  • actionmethodname = Index

Basado en este patrón de URL, la URL de nuestro módulo es yoursite.com/index.php/mymodule/index/index. También puedes acceder a ella usando yoursite.com/index.php/mymodule porque siempre que no hayas especificado un actionController o método de acción nombre, Magento carga el controlador de índice y la acción de índice de forma predeterminada.

Ahora vamos a crear una acción más: testAction .

Podemos acceder a la testAction utilizando la URL. yoursite.com/index.php/mymodule/index/test.Como se explicó anteriormente aquí

  • frontendname = mymodule
  • actionControllername = Index
  • actionmethodname = prueba

Así es como funciona el controlador en Magento..

Al principio, puede ser difícil entender todo a la vez, por lo que he incluido todo el código fuente de este módulo para que pueda revisarlo e implementar su propio trabajo mientras lo usa como guía..

Que sigue?

En la siguiente parte, vamos a completar algunos diseños en nuestro módulo creando archivos de diseño y bloque. Entenderemos cómo funcionan los archivos de diseño en Magento y qué roles juegan en el contexto de Magento..

Hasta entonces, crea tu propio módulo y hazme saber cualquier cosa que te cause problemas..

Necesita ayuda adicional?

Si aún no está seguro de cómo proceder después de leer este tutorial, intente ponerse en contacto con uno de los desarrolladores de Magento en Envato Studio. Te pueden ayudar con todo tipo de problemas de Magento, grandes y pequeños. Aquí están algunos ejemplos:

1. Magento All-in-One (Desarrollo completo del sitio / Personalización)

Obtenga una configuración del sitio web de Magento o solicite una personalización avanzada como:

  • modificación del diseño 
  • modificación de deslizadores 
  • menú personalizado 
  • solucionar problemas de respuesta 
  • y más

2. Desarrollo del módulo de Magento y desarrollo del sitio

Este proveedor hará cualquiera de los siguientes:

  • desarrollar un modulo personalizado
  • instalar un tema magento
  • Personalice con su diseño de identidad (logotipo, color, fuente, fondo) 
  • crea tus primeras 20 categorías / subcategorías 
  • Configurar pagos y monedas locales. 
  • y más

3. Personalización del tema magento

Obtenga su tema Magento personalizado a un precio razonable dentro de un plazo de un día.

4. Desarrollo de tema de Magento, instalación, extensiones y trabajo personalizado

Este proveedor ofrece una variedad de servicios de Magento, que incluyen:

  • desarrollo web magento personalizado 
  • sitios Magento responsivos 
  • desarrollo del tema Magento personalizado 
  • desarrollo de módulos 
  • desarrollo de carrito de compras 
  • integración de pasarela de pago seguro

Si estas soluciones no son adecuadas para usted, pruebe una de las docenas de otras disponibles en Envato Studio..