Plug in para la integración con gateway de pago Decidir
- Consideraciones Generales
- Instalación
- Configuración
- Prevencion de Fraude
- Características
- Tablas de referencia
- Versiones disponibles
El plug in de pagos de Decidir, provee a las tiendas Magento de un nuevo método de pago, integrando la tienda al gateway de pago. La versión de este plug in esta testeada en PHP 5.3 en adelante y MAGENTO 1.7 a 1.9. Es sumamente importante que se compare con las necesidades de negocio para evaluar la utilización del mismo o recurrir a una integración vía SDK.
- Descomprimir el archivo magento-plugin-master.zip.
- Copiar carpeta 'app', 'js', 'skin' y 'lib' al root de magento con los mismos nombres.
- Ir a System->Cache Managment y refrescar el cache.
- Luego ir a 'System->Configuration , luego en el menu lateral sales->Payment Methods' y configurar desde la pestaña de Decidir 2.
Observación:
Descomentar: extension=php_curl.dll, extension=php_soap.dll y extension=php_openssl.dll del php.ini, ya que para la conexión al gateway se utiliza la clase SoapClient del API de PHP.
Volver a inicio
Para llegar al menu de configuración ir a: System->Configuration y seleccionar Payment Methods en el menú izquierdo. Entre los medios de pago aparecerá una solapa con el nombre Decidir 2. El Plug-in esta separado en configuarción general y sub-menues.
- Habilitar/Deshabilitar el módulo.
- Ingresar public y private api key provistas Decidir.
- Seleccionar el ambiente en el cuál operar.
- Elegir los estados de la orden para el circuito de pago.
Para dar de alta modificar o eliminar planes, medios de pago o entidades financieras se dispone el menú Decidir, con los correspondientes ABMs
Los principales Medios de pagos vendrán precargados, así mismo las principales entidades financieras.
En el ABM de medios de pago encontramos los siguientes campos:
- Medio de Pago: El nombre con el que se mostrará dicho medio de pago.
- Decidir: El código del medio de pago en Decidir. (Ver Tabla en documentación del servicio)
- Tipo: Tarjeta u offline. Por el momento solo está disponible el primer tipo.
- Activo: Flag para activar/desactivar el medio de pago.
En el ABM de Entidades Financieras sólo nos encontramos con el nombre a mostrar y el flag de activación.
En el caso de los Planes de Pago:
- Tienda: La tienda en la que desea que se muestre la promoción, en caso de que aplique a todas seleccionar "Admin".
- Cupón o Tarjeta: A que tipo de Medio de pago aplica la promoción.
- Tarjeta: El Medio de Pago al que aplica el plan.
- Entidad Financiera: Con que Entidad está disponible el plan.
- Cuotas: Cantidad de cuotas del plan.
- Porcentaje: El interés a aplicar cuando el plan es elegido.
- Nro. de Comercio: Para filtrar los planes por entidad financiera debe solicitarse un filtro de bines a soporte (Vease documentación). Para eso se creará un nuevo ID Site implementando la configuración Consola unificada. Aquí se carga dicho ID Site.
- Nro. de Comercio Test: Idem anterior en el ambiente Sandbox.
- Activo: Flag activación.
Esta contiene la tabla de coeficientes directos para aplicar con el medio de pago si no hay una promoción que aplique al banco y cantidad de cuotas elegidas por el usuario. Es necesario que el medio se encuentre en esta tabla para que pueda ser mostrado al comprador.
El plug in para lograr las nuevas funcionalidades y su persistencia dentro del framework creará nuevas tablas, columnas y atributos:
- decidir_banco
- decidir_plan
- decidir_tarjeta
- decidir_interes
El plug in, toma valores estándar del framework para validar los datos del comprador. Principalmente se utiliza una instancia de la clase Mage_Sales_Model_Order. Para acceder a los datos del comprador se utiliza el metodo getBillingAddress() que devuelve un objeto ya instanciado del cual se usan los siguientes métodos:
$order = new Mage_Sales_Model_Order ();
$order->load($id);
-- Ciudad de Facturación: $order->getBillingAddress()->getCity();
-- País de facturación: $order->getBillingAddress()->getCountry();
-- Identificador de Usuario: $order->getBillingAddress()->getCustomerId();
-- Email del usuario al que se le emite la factura: $order->getBillingAddress()->getEmail();
-- Nombre de usuario el que se le emite la factura: $order->getBillingAddress()->getFirstname();
-- Apellido del usuario al que se le emite la factura: $order->getBillingAddress()->getLastname();
-- Teléfono del usuario al que se le emite la factura: $order->getBillingAddress()->getTelephone();
-- Provincia de la dirección de facturación: $order->getBillingAddress()->getRegion();
-- Domicilio de facturación: $order->getBillingAddress()->getStreet1();
-- Complemento del domicilio. (piso, departamento): $order->getBillingAddress()->getStreet2();
-- Código postal: $order->getBillingAddress()->getPostcode()
-- Moneda: $order->getBaseCurrencyCode();
-- Total: $order->getGrandTotal();
-- En caso de pagar con Cupon: $order->getCuponCode();
Otros de los modelos utlilizados es Customer del cual a través del método getPasswordHash(), se extrae el password del usuario (comprador) y la tabla sales_flat_invoice_grid, donde se consultan las transacciones facturadas al comprador.
Las consideración para el caso de empresas del rubro RETAIL son similares a las consideraciones generales con la diferencia de se utiliza el método getShippingAddress() que devuelve un objeto y del cual se utilizan los siguientes métodos;
-- Ciudad de envío de la orden: $order->getShippingAddress()->getCity();
-- País de envío de la orden: $order->getShippingAddress()->getCountry();
-- Mail del destinatario: $order->getShippingAddress()->getEmail();
-- Nombre del destinatario: $order->getShippingAddress()->getFirstname();
-- Apellido del destinatario: $order->getShippingAddress()->getLastname();
-- Número de teléfono del destinatario: $order->getShippingAddress()->getTelephone();
-- Código postal del domicio de envío: $order->getShippingAddress()->getPostcode();
-- Provincia de envío: $order->getShippingAddress()->getRegion();
-- Domicilio de envío: $order->getShippingAddress()->getStreet1();
-- Método de despacho: $order->getShippingDescription();
-- Código de cupón promocional: $order->getCuponCode();
-- Para todo lo referido productos: $order->getItemsCollection();
Nota: el valor resultante de $order->getItemsCollection(), se usan como referencias para conseguir información del modelo catalog/producto - a través de los métodos getDescription(), getName(), getSku(), getQtyOrdered(), getPrice()-.
Provincias: uno de los datos requeridos para prevención común a todos los verticales es el campo provinicia/state tanto del comprador como del lugar de envío, para tal fin el plug in utiliza el valor del campo región de las tablas de la orden (sales_flat_order_address) a través del getRegion() tanto del billingAddress como del shippingAddress. El formato de estos datos deben ser tal cual la tabla de referencia (tabla provincias). Para simplificar la implementación de la tabla en magento se deja para su implementación la clase Decidir\Decidirpago\Model\System\Config\Source\Csprovincias.php, con el formato requerido. Al final de este documento se muestra un script sql que pude ser tomado de refrencia.
En caso que la tienda decida no implementar este nuevo atributo o que el valor quede vacío el plug in mandara al sistema el mismo número que devuleve el método $order->getBillingAddress()->getTelephone().
Es posible realizar devoluciones o reembolsos mediante el procedimiento habitual de Magento. Para ello dirigirse a una orden, y mediante el menú seleccionar "Invoices" para poder generar una nota de crédito (credit memo) sobre la factura. Allí deberá hacerse click en el botón "Refund" para que la devolución sea online y procesada por Decidir.
Provincias
Provincia | Código |
---|---|
CABA | C |
Buenos Aires | B |
Catamarca | K |
Chaco | H |
Chubut | U |
Córdoba | X |
Corrientes | W |
Entre Ríos | E |
Formosa | P |
Jujuy | Y |
La Pampa | L |
La Rioja | F |
Mendoza | M |
Misiones | N |
Neuquén | Q |
Río Negro | R |
Salta | A |
San Juan | J |
San Luis | D |
Santa Cruz | Z |
Santa Fe | S |
Santiago del Estero | G |
Tierra del Fuego | V |
Tucumán | T |
INSERT INTO
directory_country_region (region_id, country_id , code, default_name)
VALUES
('4859', 'AR', 'C', 'CABA'),
('486' , 'AR', 'B', 'Buenos Aires'),
('487' , 'AR', 'A', 'Salta'),
('488' , 'AR', 'K', 'Catamarca'),
('489' , 'AR', 'H', 'Chaco'),
('490' , 'AR', 'U', 'Chubut'),
('491' , 'AR', 'X', 'Cordoba'),
('492' , 'AR', 'W', 'Corrientes'),
('493' , 'AR', 'E', 'Entre Rios'),
('494' , 'AR', 'P', 'Formosa'),
('495' , 'AR', 'Y', 'Jujuy'),
('496' , 'AR', 'L', 'La Pampa'),
('497' , 'AR', 'F', 'La Rioja'),
('498' , 'AR', 'M', 'Mendoza'),
('499' , 'AR', 'N', 'Misiones'),
('500' , 'AR', 'Q', 'Neuquen'),
('501' , 'AR', 'R', 'Rio Negro'),
('502' , 'AR', 'J', 'San Juan'),
('503' , 'AR', 'D', 'San Luis'),
('504' , 'AR', 'S', 'Santa Fe'),
('505' , 'AR', 'G', 'Santiago del Estero'),
('506' , 'AR', 'V', 'Tierra del Fuego'),
('507' , 'AR', 'T', 'Tucuman'),
('5071', 'AR', 'Z', 'Santa Cruz');
INSERT INTO
directory_country_region_name (locale, region_id , name)
VALUES
('en_US', '4859', 'CABA'),
('en_US', '486', 'Buenos Aires'),
('en_US', '487', 'Salta'),
('en_US', '488', 'Catamarca'),
('en_US', '489', 'Chaco'),
('en_US', '490', 'Chubut'),
('en_US', '491', 'Cordoba'),
('en_US', '492', 'Corrientes'),
('en_US', '493', 'Entre Rios'),
('en_US', '494', 'Formosa'),
('en_US', '495', 'Jujuy'),
('en_US', '496', 'La Pampa'),
('en_US', '497', 'La Rioja'),
('en_US', '498', 'Mendoza'),
('en_US', '499', 'Misiones'),
('en_US', '500', 'Neuquen'),
('en_US', '501', 'Rio Negro'),
('en_US', '502', 'San Juan'),
('en_US', '503', 'San Luis'),
('en_US', '504', 'Santa Fe'),
('en_US', '505', 'Santiago del Estero'),
('en_US', '506', 'Tierra del Fuego'),
('en_US', '507', 'Tucuman'),
('en_US','5071', 'Santa Cruz');
Version del Plugin | Estado | Versiones Compatibles |
---|---|---|
v1.7.x - v1.9.x | Stable (Current version) | Community Edition 1.6.x - 1.9.x Enterprise Edition 1.11.x - 1.14.x |