Giter Site home page Giter Site logo

gdemarsico / plugin-magento Goto Github PK

View Code? Open in Web Editor NEW

This project forked from barbazul/plugin-magento

0.0 1.0 0.0 369 KB

Plugin Magento para la integración con Todo Pago

Home Page: https://developers.todopago.com.ar/site/magento

PHP 85.50% HTML 8.08% JavaScript 5.86% CSS 0.56%

plugin-magento's Introduction

Fork "abierto" de TodoPago para Magento

Mantengo este fork dado que el repositorio oficial no acepta Pull Requests de la comunidad. En cuanto esa situación se remedie abandonaré el mantenimiento del mismo.

Disclaimer

Este módulo no es de mi autoría y, por lo tanto, no me responsabilizo en ninguna medida por su funcionamiento o por cualquier incidente que su uso pudiera ocasionar sobre los sistemas en los que fuera instalado. No soy empleado, asociado ni estoy en ninguna otra manera relacionado con TodoPago, Prisma, Visa o cualquier otra empresa o entidad financiera que pudiera relacionarse con las marcas y servicios que puedan asociarse al uso de este módulo tanto individualmente como en nombre de toda sociedad de la que yo forme parte.

Contribuciones incorporadas

Antes de considerar el uso de este fork por sobre el desarrollo oficial se recomienda un análisis profundo de las modificaciones existentes en el mismo.

A continuación un listado de todas las modificaciones que fueron incorporadas para su consideración. Esta lista podría no estar completamente sincronizada con todas las contribuciones que fueran aceptadas aunque prometo hacer mi mayor esfuerzo para intentar mantenerla lo más al día posible.

  • Incorporación de composer.json y modman para manejo de dependencias - barbazul
  • 6a6a972
  • Agregado el nombre del producto en la descripción que se envía al gateway - dsueiro
  • 9dd6b5f
  • Eliminado un rewrite sobre el bloque de agreements que rompía el funcionamiento de los agreements de magento - augustojbusso
  • 53f1992
  • PR-1
  • Fix del valor default faltante en la definicion de Todopago_Modulodepago2_Helper_Connector::getModo - barbazul
  • 33049f4
  • Corregido un error de sintaxis en el SDK - barbazul
  • 7d51680
  • Inicializada una variable en el controller Payment que interrumpia el checkout en modo desarrollador - barbazul
  • b095ed7
  • Fix para que el formulario hibrido funcione por ajax - barbazul
  • 29b1980
  • Removido completamente el soporte para pago por cupones por no estar terminado de implementar e incorporar una librería cuya licencia no se está respetando - barbazul
  • 9fdae21

Magento- módulo Todo Pago (v1.7.x a 1.9.x)

Plug in para la integración con gateway de pago Todo Pago

Consideraciones Generales

El plug in de pagos de Todo Pago, 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

Instalación

  1. Descomprimir el archivo magento-plugin-master.zip.
  2. Copiar carpeta 'app', 'js', 'skin' y 'lib' al root de magento con los mismos nombres.
  3. Ir a System->Cache Managment y refrescar el cache.
  4. Luego ir a 'System->Configuration , luego en el menu lateral sales->Payment Methods' y configurar desde la pestaña de Todo Pago.

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

##Configuración

####Configuración plug in 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 Todo Pago. El Plug-in esta separado en configuarción general y 3 sub-menues.
Menú principal
imagen de configuracion
Menú ambiente
imagen de configuracion
Meenú estados y menú servicios
imagen de configuracion
Volver a inicio

####Formulario Hibrido En la configuracion del plugin tambien estara la posibilidad de mostrarle al cliente el formulario de pago de TodoPago integrada en el sitio. Para esto , en la configuracion se debe seleccionar YES en el campo Utilizar formulario híbrido: imagen de configuracion
Del lado del cliente el formulario se vera asi:
imagen de configuracion
Volver a inicio

####Obtener datos de configuracion Se puede obtener los datos de configuracion del plugin con solo loguearte con tus credenciales de Todopago.
a. Ir a la opcion Obtener credenciales
imagen de configuracion b. En el popup loguearse con el mail y password de Todopago.
imagen de configuracion c. Los datos se cargaran automaticamente en los campos Merchant ID y Security code en el ambiente correspondiente (Desarrollo o produccion ) y solo hay que hacer click en el boton guardar datos y listo.
imagen de configuracion Volver a inicio


####Configuración de Maximo de Cuotas Se puede configurar la cantidad máxima de cuotas que ofrecerá el formulario de TodoPago con el campo cantidad máxima de cuotas. Para que se tenga en cuenta este valor se debe habilitar el campo Habilitar máximo de cuotas y tomará el valor fijado para máximo de cuotas. En caso que esté habilitado el campo y no haya un valor puesto para las cuotas se tomará el valor 12 por defecto. ![imagen de configuracion](https://raw.githubusercontent.com/TodoPago/imagenes/master/magento/maxcuotas.PNG) [Volver a inicio](#inicio)
#### Nuevas columnas y atributos El plug in para lograr las nuevas funcionalidades y su persistencia dentro del framework creará nuevas tablas, columnas y atributos:

#####Nuevas Columnas:

  1. en tabla sales_flat_order: todopagoclave.

#####Nuevos atributos:

  1. del tipo "catalog_product": todopagofechaevento, todopagocodigo, todopagoenvio, todopagoservicio, todopagodelivery.
  2. del tipo "customer": celular.

[Volver a inicio](#inicio)

Prevención de Fraude

####Consideraciones Generales (para todas los verticales, por defecto RETAIL) 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();
-- Moneda: $order->getBaseCurrencyCode();
-- Total:  $order->getGrandTotal();
-- IP de la pc del comprador: $order->getRemoteIp();

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. ####Consideraciones para vertical RETAIL 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()-.

####Muy Importante 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.
Celular: el plug in creará un nuevo atributo de customer del tipo EAV, con el nombre (Attribute Code) celular que se verá en la vista con la etiqueta (label) Celular, el cual en deberá ser implemantado para su utilización. Ejemplo:

$customer = Mage::getModel('customer/customer')->load($customer_id);
$customer->getCelular();

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(). ####Nuevos Atributos en los productos Para efectivizar la prevención de fraude se han creado nuevos atributos de producto dentro de la categoria "Prevención de Fraude".
imagen nuevos catalogo producto

imagen campos cybersource
Estos campos no son obligatorios aunque si requeridos para Control de Fraude

Volver a inicio

Características


#### Consulta de Transacciones El plug in crea un nuevo tab para poder consultar on line las características de la transacción en el sistema de Todo Pago.
![imagen consulta de trnasacciones](https://raw.githubusercontent.com/TodoPago/imagenes/master/README.img/getstatus.PNG)
[Volver a inicio](#inicio)

Devoluciones

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 Todo Pago.
imagen devoluciones
Volver a inicio

Tablas de Referencia

######Provincias ######Script SQL provincias

Provincias

ProvinciaCódigo
CABAC
Buenos AiresB
CatamarcaK
ChacoH
ChubutU
CórdobaX
CorrientesW
Entre RíosE
FormosaP
JujuyY
La PampaL
La RiojaF
MendozaM
MisionesN
NeuquénQ
Río NegroR
SaltaA
San JuanJ
San LuisD
Santa CruzZ
Santa FeS
Santiago del EsteroG
Tierra del FuegoV
TucumánT
[Volver a inicio](#inicio)

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');

Versiones Disponibles##

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

Click on the links above for instructions on installing and configuring the module.

Volver a inicio

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.