Jump to content

Cálculo de gastos de envío para visitantes


Prestafan33

Recommended Posts

Buenos días. Planteo un tema que me trae de cabeza desde hace un tiempo:

En una tienda con Prestashop 1.7.4 tengo instalado un único transportista, con 2 zonas de envío. Sólo se envía a esas 2 zonas, por lo que todas las demás las tengo desactivadas. Y el precio de los gastos de envío es el mismo para ambas zonas.

El problema viene cuando alguien llega a la tienda y añade un producto al carrito, sin estar logueado como cliente. El precio que le aparece entonces en el carrito para el envío es "Envío gratis". Cuando el usuario se loguea ya le aparece el precio correcto pero, dado que el precio siempre va a ser el mismo, necesito que aparezca desde el principio. Y por más vueltas que he dado, no he sido capaz de encontrar una solución hasta ahora.

Cosas que ya he probado:

1.- Comprobar que el transportista está habilitado para los grupos de clientes Visitantes e Invitados.
2.- En preferencias de envío, comprobar que el transportista predeterminado es el que quiero que se aplique.
3.- En preferencia de envío, colocar en la opción "envío gratuito a partir de..." un valor de 99999.
4.- Crear un transportista nuevo, configurarle para todas las zonas con el mismo precio fijo y asignarle sólo para Visitantes e Invitados.
 

Ninguna de estas cosas funciona. Al final he editado el archivo TPL del carrito y he modificado para que, cuando los gastos de envío sean 0, muestre "inicie sesión para ver importe", pero eso es un parche que no soluciona el problema.

¿Alguien sabe cómo solucionarlo?

Edited by Prestafan33 (see edit history)
Link to comment
Share on other sites

Gracias de nuevo por tu respuesta y por el enlace, Rodrigo.

Me he leído el hilo entero (y otro que se enlaza al final) y sí, lo que me ocurre es precisamente lo que se comenta en el primer mensaje y luego hay otros usuarios que corroboran, aunque @khouloudbelguith parece que no es capaz de reproducirlo, o cuando lo consigue reproducir el comportamiento que ella menciona es otro.

Lo que me ocurre en mi caso es precisamente el problema que inicia el hilo en el foro de bugs: Cuando un usuario no ha iniciado sesión en la tienda los gastos de envío que se muestran son 0 (envío gratis), aunque se haya establecido un transportista por defecto y éste no tenga envío gratuito. Y por más vueltas que le he dado y más opciones que he cambiado, no he encontrado forma de cambiar ese comportamiento.

Al final supongo que me tendré que meter en el código de la clase Cart y hardcodearlo de algún modo, pero me parece una chapuza, y o bien hay algún bug en algún lado o bien hay alguna opción que no estoy teniendo en cuenta. Pero lo que me extraña mucho es que, si se trata de un bug no resuelto, no haya una legión de gente quejándose por ese problema, porque la verdad es que resulta realmente molesto y puede ocasionar las quejas de muchos clientes en una tienda el ofrecerles envío gratuito y que luego al iniciar sesión o registrarse éste no lo sea.

Link to comment
Share on other sites

Estoy curioso. Yo he tenido un problema similar (un módulo de transportes), pero lo estraño es que tampoco he podido reproducir en la situación que describes.

He intentado en una instalación limpia, un único transportista. He definido 2 zonas y puesto un valor de 50 para las dos. 

He seleccionado el transportista como predeterminado. Abro una ventana incognito de Chrome, añado un producto al carrito, y me dá 50 de envío.

Tienes activado multitienda o algo?

  • Thanks 1
Link to comment
Share on other sites

Hola, @gusman126.

Eso que comentas ya lo he hecho. Te explico cómo lo tengo configurado:

Tengo creadas 3 zonas, que son España peninsular, España Baleares y España Canarias. Y en las provincias, tengo todas las provincias de España asignadas en una de estas 3 zonas. Sólo tengo activas las zonas "España península" y "España baleares", que son las que tienen precio en el transportista activo (el único que hay). El resto de zonas están desactivadas. Y, aún así, me sigue sacando envío gratuito cuando alguien añade un artículo al carrito y no ha iniciado sesión.

Edited by Prestafan33 (see edit history)
Link to comment
Share on other sites

26 minutes ago, gusman126 said:

y el pais? En que zona esta?

El país es España, tiene como zona "Europa"...

Vale, ya veo por dónde vas. Y lo que voy bicheando sobre cómo se calculan los transportistas lo corrobora: Cuando no hay una zona asignada, coge el país establecido por defecto en las preferencias de la tienda (en este caso España), que tiene como zona Europa, y como no hay ningún transportista asignado a esa zona, el precio que obtiene para el transporte es cero (lo cual interpreta como envío gratuito).

De modo que la cuestión entonces sería asignar España a una de las zonas donde sí opera el transportista (España península o España baleares). Pero hacerlo así no me resulta lógico, ya que entonces es como asignarlo dos veces a la misma zona, una vez el país entero y otra cada provincia, lo cual me resulta, cuando menos, confuso....

Edito para añadir. Efectivamente, asignando el país entero a la zona "España península", muestra el importe a los usuarios, incluso si no están logueados. Pero me sigue quedando la duda si esto no causará algún efecto colateral en los cálculos de los gastos cuando sí hay una dirección establecida, porque como digo muy lógica no me parece esta configuración.

Edited by Prestafan33 (see edit history)
Link to comment
Share on other sites

hace 1 hora, Prestafan33 dijo:

Edito para añadir. Efectivamente, asignando el país entero a la zona "España península", muestra el importe a los usuarios, incluso si no están logueados. Pero me sigue quedando la duda si esto no causará algún efecto colateral en los cálculos de los gastos cuando sí hay una dirección establecida, porque como digo muy lógica no me parece esta configuración.

no, siempre y cuando asignes bien las provincias y añadas una zona a las provincias que no quieres que tengan transporte

igualmente prueba usando todas las provincias en un carrito

Edited by gusman126 (see edit history)
Link to comment
Share on other sites

Efectivamente, @gusman126, todo funciona como dices. Se trataba simplemente de cambiar la forma de pensar a como lo gestionan las empresas de transporte, por ejemplo.

La confusión viene porque normalmente nosotros llamamos a las zonas de transporte con nombres relativos a su ubicación geográfica (Península, Baleares, Canarias, etc). Pero si en vez de llamarlas así las pusiéramos nombres como "zona 1", "zona 2" y "zona 3", como suelen hacer las agencias de transporte, eso nos ayuda a darnos cuenta que en realidad no son provincias o países, sino simplemente eso, zonas, y por tanto se pueden asignar a cualquier ubicación geográfica, esté donde esté.

Así, asignar Baleares, la Península y en países España a una zona llamada  "zona 1", no resulta tan chocante como asignar un país entero a una zona llamada "Península y Baleares" que, al menos en mi caso, es lo que me estaba provocando pensar en ellas de una forma diferente a lo que realmente son, y no dar con la configuración correcta.

Muchas gracias a todos los que han participado en el hilo y me han ayudado a dar con la solución.

Edited by Prestafan33 (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...