ecommerce

Creando módulo de pago para Magento 2x, payU latam

módulo de pago para magento 2x

Este articulo hace referencia a Aportando mi granito de arena para la expansión de magento en latam donde hablo de los diferentes módulos a desarrollar entre ellos payU latam.

A la hora de desarrollar un modulo existe variedad de herramientas que nos puede facilitar el proceso entre ellos el que he venido usando desde Magento 1x y actualmente en Magento 2x es n98-magerun2

Pero para fines de aprendizaje, lo vamos a omitir, si bien te invito a que le des una buena revisada más adelante.

Iniciamos creando la estructura de los directorios en en la ruta app/code  como base sera vendorNamespace/ModuleName entonces aplicando seria la ruta Saulmoralespa/PayuLatam.

Ahora dentro de PayuLatam creamos el archivo registration.php donde lo único que cambia es vendorNamespace_ModuleName:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Saulmoralespa_PayuLatam',
    __DIR__
);

Ahora necesitamos terminar de registrar el modulo, indicando la versión que usaremos y la secuencia de módulos con la cuales esta ligado.

Creando en nuestro directorio principal de trabajo PayuLatam el archivo module.xml y su contenido:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Saulmoralespa_PayuLatam" setup_version="1.0.0"/>
    <sequence>
        <module name="Magento_Sales" />
        <module name="Magento_Quote"/>
        <module name="Magento_Checkout"/>
        <module name="Magento_Payment" />
        <module name="Magento_Directory" />
        <module name="Magento_Config" />
    </sequence>
</config>

Cargando el modulo en la aplicación de Magento

Hay que indicarle a Magento el nuevo modulo, para eso necesitamos tanto actualizar la aplicación de Magento, base de datos y el esquema.

Ejecutamos el comando:

 php bin/magento setup:upgrade

Y para comprobar que nuestro modulo Saulmoralespa_PayuLatam se ha cargado correctamente y su estado es activo, ejecutamos el comando:

php bin/magento module:status

Nos debe imprimir en la consola un resultado parecido:

Saulmoralespa_PagoFacilChile
Saulmoralespa_PayuLatam
Saulmoralespa_StudentsRegisters
Smp_Neogateway
Temando_Shipping
Vertex_Tax

List of disabled modules:
MercadoPago_Core
Vicomage_PickupPlace

Si has trabajado con cualquier framework de php, como sabes estos nos permiten registrar rutas del protocolo http.

Solo que en Magento necesitamos indicarle el id base de las rutas con relación al nombre del modulo en minusculas en mi caso usare payulatam.

Y rutas que se dividen en el frontend y adminhtml, estos nombres de directorios son creados en el directorio etc. Para nuestro caso crearemos para el frontend, el archivo routes.xml.

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="payulatam" frontName="payulatam">
            <module name="Saulmoralespa_PayuLatam" />
        </route>
    </router>
</config>

Como nuestro módulo es de tipo pago necesitamos especificarlo y para eso dentro el directorio etc, creamos el archivo payment.xml.

<?xml version="1.0" ?>
<payment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Payment:etc/payment.xsd">
    <methods>
        <method name="payulatam">
            <allow_multiple_address>1</allow_multiple_address>
        </method>
    </methods>
</payment>

Te invito a que sigas el repositorio en github github https://github.com/saulmoralespa/magento2-payulatam, voy a guiarte no sin antes le hayas dado una buen revisada al código.


Deprecated: file_exists(): Passing null to parameter #1 ($filename) of type string is deprecated in /var/www/blog.saulmoralespa.com/wp-includes/comment-template.php on line 1622

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.