Tanto si tienes envío gratis en tu Prestashop como si no, tu cliente verá en el carrito «Envío gratis!» hasta que se registre. Aquí te explicamos cómo solucionarlo

Es muy habitual, y sobre todo si tienes varios transportistas definidos, que en el carrito aparezca la frase de Envío gratis porque sí, es decir, tanto si tienes envío gratis, como si no, como si lo tienes a partir de una cantidad mínima de pedido, etc. El cliente verá la flamante y seductora frase desde el primer clic en la web.

Y no es del todo bueno, porque si el cliente realiza una compra, va a querer que la promesa de portes gratis sea una realidad, y puede llevarse una mala imagen de nuestra tienda si le aplica portes (aunque realmente deba aplicárselos). Y es que en el momento en que el cliente se registre o haga login, la tienda le aplicará los gastos de envío correctos, y la frase «Envío gratis!» desaparecerá como por arte de magia.

En Prestashop podemos indicar qué gastos de envío se muestren por defecto, de entre todos los transportistas que tengamos definidos, aún así, esto no es garantía de que se aplique correctamente en el bloque de carrito. Para solucionarlo, modificaremos el código de manera que tenga en cuenta si el cliente está logueado o no, y de la manera más elegante que podamos.

SOLUCIÓN

Modificaremos el fichero themes/tu-tema/modules/blockcart/blockcart.tpl, así que, antes de nada, hazte una copia de seguridad del mismo y empecemos a trabajar.

Buscaremos el código siguiente:

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">
 {if $shipping_cost_float == 0}
  {l s='Free shipping!' mod='blockcart'}
  {else}
 {$shipping_cost}
 {/if}
 </span>

 

Y lo sustituiremos por:

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">
	{if $shipping_cost_float == 0}
                {if $logged}
		    {l s='Free shipping!' mod='blockcart'}
                {else}   
                    {l s='Envío gratis a partir de X' mod='blockcart'}
                {/if} 
	{else}
		{$shipping_cost}
	{/if}
</span>

 

En este código, antes de mostrar la información de envío se comprueba si el cliente está logueado, ya que en ese momento tenemos información de su zona geográfica y de los portes que le pertenecen, que son los que le aparecerán en el carrito.

Si el cliente no se ha registrado, no podemos asignarle unos gastos de envío porque no sabemos a dónde irá el pedido, con lo cual, podemos mostrarle un mensaje genérico e informativo del tipo «Envío gratis a partir de X», si es nuestro caso, o cualquier otro mensaje que sea adecuado para nuestro comercio.

Espero haberos ayudado, si tenéis alguna duda, preguntad y así aprendemos todos 🙂

 

Rating: 4.3/5. From 6 votes.
Please wait...

Centro de preferencias de privacidad

Necesarias

Se usan para saber si ya aceptaste nuestras políticas, si ya estás suscrito a nuestra newsletter, para reconocer el estado de tu sesión si la tuvieses y para servir más rápidos los contenidos.

No se captura IPs ni siquiera para el servicio de Analytics así que tu visita es privada.

JSESSIONID, _cfuid, wpSGCachePypass, mailerlite, gdpr, gawp

Translate »