TransbankDevelopers / transbank-plugin-prestashop-webpay

OBSOLETO: Código fuente de Plugin Prestashop para Transbank Webpay
BSD 3-Clause "New" or "Revised" License
3 stars 5 forks source link

Guardar en BD y mostrar los datos en el bank-end cuotas, tipo de tarjeta, autorización y transacción #55

Closed msaustral closed 7 months ago

msaustral commented 4 years ago

Hola dado el requerimiento de un cliente hemos realizado modificaciones al modulo que seria interesantes agregarlos para la próxima versión.

El cliente requería ver en cada pedido las cantidades de cuotas, tipo de tarjeta (Débito o Crédito), código de autorización de Transbank y número de transacción de Transbank para poder llevar su control al cruzarlo con los reportes de Transbank.

Modificaciones:

1- Creamos en la BD tabla ps_orders_payment 6 campos varchar-> byorder, authorizationcode, paymenttype, tipo_cuotas, sharesnumber, responsecode

2- En el módulo de Webpay->controllers->front->validate.php agregamos luego de la línea 222

            $payment[0]->byorder = $result->buyOrder;
            $payment[0]->authorizationcode = $result->detailOutput->authorizationCode;
            $payment[0]->paymenttype = $paymentType;
            $payment[0]->tipo_cuotas = $tipo_cuotas;
            $payment[0]->sharesnumber = $result->detailOutput->sharesNumber;
            $payment[0]->responsecode = $result->detailOutput->responseCode;

3- Instalación de PS->clasess->order->OrderPayment.php agregamos luego de la linea 38

public $byorder;
public $authorizationcode;
public $paymenttype;
public $tipo_cuotas;
public $sharesnumber;
public $responsecode;

4- Instalación de PS->clasess->order->OrderPayment.php agregamos luego de la linea 63

        'byorder' => array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'size' => 254),
        'authorizationcode' => array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'size' => 254),
        'paymenttype' => array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'size' => 254),
        'tipo_cuotas' => array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'size' => 254),
        'sharesnumber' => array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'size' => 254),
        'responsecode' => array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'size' => 254),

5- Instalación de PS->admin\themes\default\template\controllers\orders\helpers\view->view.tpl agregamos luego de la linea 489

                <p>
                  <b>{l s='Número de transacción' d='Admin.Orderscustomers.Feature'}</b>&nbsp;
                  {if $payment->byorder}
                    {$payment->byorder}
                  {else}
                    <i>{l s='Not defined' d='Admin.Orderscustomers.Feature'}</i>
                  {/if}
                </p>
                <p>
                  <b>{l s='Código de Autorización' d='Admin.Orderscustomers.Feature'}</b>&nbsp;
                  {if $payment->authorizationcode}
                    {$payment->authorizationcode}
                  {else}
                    <i>{l s='Not defined' d='Admin.Orderscustomers.Feature'}</i>
                  {/if}
                </p>
                <p>
                  <b>{l s='Tipo de Tarjeta' d='Admin.Orderscustomers.Feature'}</b>&nbsp;
                  {if $payment->paymenttype}
                    {$payment->paymenttype}
                  {else}
                    <i>{l s='Not defined' d='Admin.Orderscustomers.Feature'}</i>
                  {/if}
                </p>
                <p>
                  <b>{l s='Cantidad de Cuotas' d='Admin.Orderscustomers.Feature'}</b>&nbsp;
                  {if $payment->tipo_cuotas}
                    {$payment->tipo_cuotas}
                  {else}
                    <i>{l s='Not defined' d='Admin.Orderscustomers.Feature'}</i>
                  {/if}
                </p>

Todos estos cambios los realizamos manualmente, al estar modificando el CORE, es posible que en alguna actualización de la plataforma esto se re-escriba y deje de funcionar.

Por otro lado no sabemos como hacer para que todos estos cambios se realicen en automático al instalar el módulo.

Espero haber podido aportar una mejora al modulo, saludos.

gdespirito commented 4 years ago

Hola @msaustral . Muchas gracias por el apoyo con esta mejora. En este caso te recomendaría crear un Pull Request con estos cambios. Así podemos ver mejor los cambios y quedarían como contribuidores en el repositorio.

Sobre lo que manden podemos ver que modificaciones extra hay que hacer para que todo se instale automáticamente al actualizar. Justo está semana trabajamos en una solución similar en WooCommerce y en Magento.

Si no saben muy bien cómo hacerlo me avisas y los apoyamos :)

Gracias nuevamente 🎉

msaustral commented 4 years ago

Hola, please ayúdame en como hacer el Pull Request, saludos.

gdespirito commented 4 years ago

Perfecto, para crear un Pull Request debes seguir este procedimiento:

    • Hacer un fork de este repositorio. Esto creará una copia en tu propia cuenta de github. image
    • Descargar/clonar este nuevo repositorio en tu computador
    • Crear un nuevo branch (algo como feat/save_on_database)
    • Hacer los cambios necesarios en ese branch, hacer commit y subir el branch a tu repositorio (git push ...)
    • Si ya tienes un branch creado en tu fork, ya puedes hacer un Pull Request en este repositorio siguiendo estas instrucciones

Si tienes dudas, puedes hablarme por el slack de la comunidad de TransbankDevelopers. Puedes unirte acá: https://join-transbankdevelopers-slack.herokuapp.com/