eridamega Posted March 30, 2018 Share Posted March 30, 2018 (edited) Hola Amigos, saludos, estoy atascado en algo que deseo implementar y estoy solicitando cordialmente su ayuda. En mi tienda instale un modulo (epayco) de cobro online para pagos contarjetas de credito/debito útil para artículos de poco costo y no quiero que este habilitado para compras de alto valor, porque la comisión es alta, en su lugar que cuando el monto de la compra exceda p ej; los 1.500.000 COP ( 550 USD aprox) que los clientes opten por los otros métodos de pago. Buscando en Internet encontré esto: (el ejemplo estaba con 600, por eso la explicación hablan de 600) {1500000 assign='nochex_max_order_value'} {math equation='b-a' a=$total_price b={toolsConvertPrice price=$nochex_max_order_value} assign='max_order_val_minus_cart_value'} {if $max_order_val_minus_cart_value > 0} La primera línea establece cuál es la cantidad máxima de fondos que podemos aceptar a través de Nochex. En este caso, queríamos configurarlo en 600. A continuación, asigna este valor al nombre "nochex_max_order_value". La siguiente línea hace un poco de matemáticas. Primero convierte las £ 600 (ya que libras es nuestra moneda predeterminada) a la moneda utilizada por el cliente. A continuación, asigna esto a $ nochex_max_order_value: {toolsConvertPrice price=$nochex_max_order_value} A continuación, calcula $ nochex_max_order_value menos el precio total del carrito. A continuación, asigna este valor a "max_order_val_minus_cart_value". {math equation='b-a' a=$total_price b={toolsConvertPrice price=$nochex_max_order_value} assign='max_order_val_minus_cart_value'} Debido al código anterior, ahora podemos decir si el valor del carrito de compras es más de lo que podemos aceptar a través de Nochex. Entonces, si tuviéramos que usar libras como ejemplo, la ecuación sería £ 600 menos el valor del carrito de compras. Si esta cifra es negativa (por ejemplo, £ 600- £ 700 = menos £ 100), debemos evitar que se muestre Nochex. Para evitar que Nochex aparezca como una opción de pago, usamos la siguiente línea de código: {if $max_order_val_minus_cart_value > 0} Esta es una declaración "si". Una declaración "if" solo ejecutará el código incluido en sus etiquetas "if" cuando el valor cumpla con los criterios requeridos. Entonces, si tuviéramos el código: {if $max_order_val_minus_cart_value > 0} text to be displayed {/if} El ejemplo fue tomado de este link Ejmplo La pregunta es que estoy haciendo mal, este es el codigo editado de payco\views\templates\front\payment_execution.tpl {* * 2007-2012 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author ePayco SAS <[email protected]> * @copyright 2011-2017 ePayco SAS * @version Release: $Revision: 100 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {1500000 assign='nochex_max_order_value'} {math equation='b-a' a=$total_price b={toolsConvertPrice price=$nochex_max_order_value} assign='max_order_val_minus_cart_value'} {if $max_order_val_minus_cart_value > 0} {capture name=path}{l s='Payco payment.' mod='payco'}{/capture} <div class="col-xs-12 col-sm-12 col-md-12"> <div class="wrap"> <h1 class="page-heading">{l s='RESUMEN DEL PEDIDO' mod='payco'}</h1> {assign var='current_step' value='payment'} {include file="$tpl_dir./order-steps.tpl"} {if $nbProducts <= 0} <p class="warning" style="text-align: center; font-size: 16px;">{l s='Your shopping cart is empty.' mod='payco'}</p> {else} <form action="{$link->getModuleLink('payco', 'validation', [], true)|escape:'html'}" method="post"> <div class="box cheque-box"> <h3 class="page-subheading" style="text-align: center; font-size: 10px;"> <img src="boton.png" alt="{l s='ePayco' mod='payco'}"/> <div> {l s='Ha elegido pagar con ePayco.' mod='payco'} </div> </h3> <div> <table style="width: 100%;"> <tr> <td style="border: solid 1px; text-align: center;" colspan="2"> <b>{l s='Resumén de su pedido' mod='payco'}</b> <td> </tr> <tr> <td style="border: solid 1px; text-align: center;"> {l s='El importe total de su pedido es' mod='payco'} </td> <td style="border: solid 1px;text-align: center;"> <span id="amount" class="price">{displayPrice price=$total}</span> {if $use_taxes == 1} {l s='(IVA incluído)' mod='payco'} {/if} </td> </tr> <tr> <td style="border: solid 1px; text-align: center;" colspan="2"> <b>{l s='Por favor, confirme su pedido haciendo clic en CONFIRMO MI PEDIDO' mod='payco'}.</b> </td> </tr> </table> </div> </div> <div id="cart_navigation" class="cart_navigation clearfix"> <input type="submit" style="background: #F0943E; color: #FFFFFF; font-size: 16px;" value="{l s='CONFIRMO MI PEDIDO' mod='payco'}" class="button btn btn-default pull-right"/> </div> </form> </div> </div> {/if} {/if} los archivos están en ..modulos/ dejo el contenido de toda la carpeta del mudulo. Cita payco\.DS_Store payco\config.xml payco\controllers\.DS_Store payco\controllers\front\confirmation.php payco\controllers\front\index.php payco\controllers\front\payment.php payco\controllers\front\redirect.php payco\controllers\front\response.php payco\controllers\front\return.php payco\controllers\front\validation.php payco\controllers\index.php payco\index.php payco\lib\CreditCard_Order.php payco\lib\CreditCard_OrderState.php payco\lib\index.php payco\logo.gif payco\logo.png payco\payco.php payco\payment.php payco\Readme.md payco\sql\index.php payco\sql\install.php payco\sql\uninstall.php payco\translations\index.php payco\upgrade\index.php payco\upgrade\upgrade-1.1.0.php payco\views\.DS_Store payco\views\css\back.css payco\views\css\front.css payco\views\css\index.php payco\views\img\boton_epayco.png payco\views\img\index.php payco\views\img\preload.gif payco\views\index.php payco\views\js\back.js payco\views\js\front.js payco\views\js\index.php payco\views\templates\.DS_Store payco\views\templates\admin\configure.tpl payco\views\templates\admin\index.php payco\views\templates\front\error.tpl payco\views\templates\front\index.php payco\views\templates\front\payment_execution.tpl Aqui uso el codigo payco\views\templates\front\payment_onpage.tpl también lo probé aqui payco\views\templates\front\redirect.tpl payco\views\templates\front\response.tpl payco\views\templates\front\respuesta.tpl payco\views\templates\hook\confirmation.tpl payco\views\templates\hook\index.php payco\views\templates\hook\infos.tpl también aca payco\views\templates\hook\payment.tpl y aca payco\views\templates\hook\payment_onpage.tpl y aca payco\views\templates\hook\payment_return.tpl payco\views\templates\index.php payco\views\templates\admin payco\views\templates\front payco\views\templates\hook payco\controllers\front payco\views\css payco\views\img payco\views\js payco\views\templates payco\controllers payco\lib payco\sql payco\translations payco\upgrade payco\views Gracias por la atención prestada. y suplico su ayuda Datos Uso PS 1.7.3 php 7.1, tema el Classic Edited March 31, 2018 by eridamega (see edit history) Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted March 30, 2018 Share Posted March 30, 2018 No hace falta tanto papeleo. Evita que el módulo aparezca en el hook simplemente Dentro de la clase del módulo, tendrás definida la función: public function hookPaymentOptions($params) { Dentro puedes controlar el importe del carrito y cortar la visualización del módulo, Link to comment Share on other sites More sharing options...
eridamega Posted March 31, 2018 Author Share Posted March 31, 2018 hace 48 minutos, Sergio Ruiz dijo: No hace falta tanto papeleo. Evita que el módulo aparezca en el hook simplemente Dentro de la clase del módulo, tendrás definida la función: public function hookPaymentOptions($params) { Dentro puedes controlar el importe del carrito y cortar la visualización del módulo, Gracias por por responder Podrias instruirme como hacerlo la verdad no menajo mucho del tema, solo eso me evitar la apertura de la tienda, en la ruta /modules/payco/payco.php encuentro el código pero realmente no se como incluir la condicional public function hookPaymentOptions($params) { if (!$this->active) { return; } if (!$this->checkCurrency($params['cart'])) { return; } $this->context->smarty->assign(array("titulo"=>$this->p_titulo)); $modalOption = new PrestaShop\PrestaShop\Core\Payment\PaymentOption(); $modalOption->setCallToActionText($this->l('')) ->setAction($this->context->link->getModuleLink($this->name, 'validation', array(), true)) ->setAdditionalInformation($this->context->smarty->fetch('module:payco/views/templates/hook/payment_onpage.tpl')) ->setLogo("https://369969691f476073508a-60bf0867add971908d4f26a64519c2aa.ssl.cf5.rackcdn.com/btns/cms/btn_prestashop.png"); $payment_options = [ $modalOption, ]; return $payment_options; } Link to comment Share on other sites More sharing options...
eridamega Posted March 31, 2018 Author Share Posted March 31, 2018 Alguna alma generosa?? Link to comment Share on other sites More sharing options...
nadie Posted March 31, 2018 Share Posted March 31, 2018 (edited) hace 21 horas, eridamega dijo: Hola Amigos, saludos, estoy atascado en algo que deseo implementar y estoy solicitando cordialmente su ayuda. En mi tienda instale un modulo (epayco) de cobro online para pagos contarjetas de credito/debito útil para artículos de poco costo y no quiero que este habilitado para compras de alto valor, porque la comisión es alta, en su lugar que cuando el monto de la compra exceda p ej; los 1.500.000 COP ( 550 USD aprox) que los clientes opten por los otros métodos de pago. Buscando en Internet encontré esto: (el ejemplo estaba con 600, por eso la explicación hablan de 600) {1500000 assign='nochex_max_order_value'} {math equation='b-a' a=$total_price b={toolsConvertPrice price=$nochex_max_order_value} assign='max_order_val_minus_cart_value'} {if $max_order_val_minus_cart_value > 0} La primera línea establece cuál es la cantidad máxima de fondos que podemos aceptar a través de Nochex. En este caso, queríamos configurarlo en 600. A continuación, asigna este valor al nombre "nochex_max_order_value". La siguiente línea hace un poco de matemáticas. Primero convierte las £ 600 (ya que libras es nuestra moneda predeterminada) a la moneda utilizada por el cliente. A continuación, asigna esto a $ nochex_max_order_value: {toolsConvertPrice price=$nochex_max_order_value} A continuación, calcula $ nochex_max_order_value menos el precio total del carrito. A continuación, asigna este valor a "max_order_val_minus_cart_value". {math equation='b-a' a=$total_price b={toolsConvertPrice price=$nochex_max_order_value} assign='max_order_val_minus_cart_value'} Debido al código anterior, ahora podemos decir si el valor del carrito de compras es más de lo que podemos aceptar a través de Nochex. Entonces, si tuviéramos que usar libras como ejemplo, la ecuación sería £ 600 menos el valor del carrito de compras. Si esta cifra es negativa (por ejemplo, £ 600- £ 700 = menos £ 100), debemos evitar que se muestre Nochex. Para evitar que Nochex aparezca como una opción de pago, usamos la siguiente línea de código: {if $max_order_val_minus_cart_value > 0} Esta es una declaración "si". Una declaración "if" solo ejecutará el código incluido en sus etiquetas "if" cuando el valor cumpla con los criterios requeridos. Entonces, si tuviéramos el código: {if $max_order_val_minus_cart_value > 0} text to be displayed {/if} El ejemplo fue tomado de este link Ejmplo La pregunta es que estoy haciendo mal, este es el codigo editado de payco\views\templates\front\payment_execution.tpl {* * 2007-2012 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author ePayco SAS <[email protected]> * @copyright 2011-2017 ePayco SAS * @version Release: $Revision: 100 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {1500000 assign='nochex_max_order_value'} {math equation='b-a' a=$total_price b={toolsConvertPrice price=$nochex_max_order_value} assign='max_order_val_minus_cart_value'} {if $max_order_val_minus_cart_value > 0} {capture name=path}{l s='Payco payment.' mod='payco'}{/capture} <div class="col-xs-12 col-sm-12 col-md-12"> <div class="wrap"> <h1 class="page-heading">{l s='RESUMEN DEL PEDIDO' mod='payco'}</h1> {assign var='current_step' value='payment'} {include file="$tpl_dir./order-steps.tpl"} {if $nbProducts <= 0} <p class="warning" style="text-align: center; font-size: 16px;">{l s='Your shopping cart is empty.' mod='payco'}</p> {else} <form action="{$link->getModuleLink('payco', 'validation', [], true)|escape:'html'}" method="post"> <div class="box cheque-box"> <h3 class="page-subheading" style="text-align: center; font-size: 10px;"> <img src="boton.png" alt="{l s='ePayco' mod='payco'}"/> <div> {l s='Ha elegido pagar con ePayco.' mod='payco'} </div> </h3> <div> <table style="width: 100%;"> <tr> <td style="border: solid 1px; text-align: center;" colspan="2"> <b>{l s='Resumén de su pedido' mod='payco'}</b> <td> </tr> <tr> <td style="border: solid 1px; text-align: center;"> {l s='El importe total de su pedido es' mod='payco'} </td> <td style="border: solid 1px;text-align: center;"> <span id="amount" class="price">{displayPrice price=$total}</span> {if $use_taxes == 1} {l s='(IVA incluído)' mod='payco'} {/if} </td> </tr> <tr> <td style="border: solid 1px; text-align: center;" colspan="2"> <b>{l s='Por favor, confirme su pedido haciendo clic en CONFIRMO MI PEDIDO' mod='payco'}.</b> </td> </tr> </table> </div> </div> <div id="cart_navigation" class="cart_navigation clearfix"> <input type="submit" style="background: #F0943E; color: #FFFFFF; font-size: 16px;" value="{l s='CONFIRMO MI PEDIDO' mod='payco'}" class="button btn btn-default pull-right"/> </div> </form> </div> </div> {/if} {/if} los archivos están en ..modulos/ dejo el contenido de toda la carpeta del mudulo. Gracias por la atención prestada. y suplico su ayuda Datos Uso PS 1.7.3 php 7.1, tema el Classic Revisa esta guía: https://victor-rodenas.com/2017/03/31/restringir-metodo-de-pago-por-importe-en-prestashop-1-7/ Edited March 31, 2018 by nadie Corregir enlace (see edit history) 1 Link to comment Share on other sites More sharing options...
eridamega Posted March 31, 2018 Author Share Posted March 31, 2018 Bueno después de tanto buscar, encontré la solución. La solución en este link Blog muy Útil de Victor Rodenas Gracias a @nadie Justo estaba escribiendo este mensaje, antes que escribirás tu mensaje, y estaba buscando la forma porque había visto en tu blog antes un campo para hacer donativos pero no lo veo, no es mucho pero en agradecimiento Link to comment Share on other sites More sharing options...
nadie Posted March 31, 2018 Share Posted March 31, 2018 (edited) hace 3 horas, eridamega dijo: Bueno después de tanto buscar, encontré la solución. La solución en este link Blog muy Útil de Victor Rodenas Gracias a @nadie Justo estaba escribiendo este mensaje, antes que escribirás tu mensaje Hola, Vuelve a revisar el artículo que me di cuenta de una errata cuando lo estuve escribiendo en su momento. Saludos, Edited March 31, 2018 by nadie (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now