Jump to content

Restringir/ocultar método de pago cuando el carrito supera un valor especifico


eridamega

Recommended Posts

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

epayco.thumb.JPG.6658c87de1c7facb754f6eb9b6e2d237.JPG

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 by eridamega (see edit history)
Link to comment
Share on other sites

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

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

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

epayco.thumb.JPG.6658c87de1c7facb754f6eb9b6e2d237.JPG

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 by nadie
Corregir enlace (see edit history)
  • Thanks 1
Link to comment
Share on other sites

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

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 by nadie (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...