Prestafan33 Posted April 13, 2019 Share Posted April 13, 2019 (edited) 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 April 13, 2019 by Prestafan33 (see edit history) Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 13, 2019 Share Posted April 13, 2019 Buenos días, @Prestafan33 En "Transporte > Preferencias", intenta seleccionar un transportista predeterminado. Link to comment Share on other sites More sharing options...
Prestafan33 Posted April 13, 2019 Author Share Posted April 13, 2019 Gracias por la respuesta Rodrigo. Eso que indicas sería la solución lógica, pero ya lo he probado, como indicaba en el punto 2 de mi primer mensaje, y no funciona, y no entiendo por qué. Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 13, 2019 Share Posted April 13, 2019 (edited) Lo siento, @Prestafan33, he pasado por alto el punto 2. He buscado en los relatos de bug, y parece que ya lo conocen los de PrestaShop. https://github.com/PrestaShop/PrestaShop/issues/10739 Es lo que te ocurre, verdad? Edited April 13, 2019 by Rodrigo B Laurindo (see edit history) 1 Link to comment Share on other sites More sharing options...
Prestafan33 Posted April 13, 2019 Author Share Posted April 13, 2019 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 More sharing options...
Rodrigo B Laurindo Posted April 13, 2019 Share Posted April 13, 2019 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? 1 Link to comment Share on other sites More sharing options...
Prestafan33 Posted April 13, 2019 Author Share Posted April 13, 2019 No, no tengo multitienda. He estado un rato haciendo debug de variables en la clase "Cart", pero aún no he podido localizar dónde está el problema. Si lo encuentro lo pondré aquí, por si le sirve a alguien más. Link to comment Share on other sites More sharing options...
gusman126 Posted April 14, 2019 Share Posted April 14, 2019 (edited) prueba añadir España o el/los paises que tengas activos a una de las zonas que tienen precio en configuración de transporte activo luego las provincias a esas zonas Edited April 14, 2019 by gusman126 (see edit history) 1 Link to comment Share on other sites More sharing options...
Prestafan33 Posted April 14, 2019 Author Share Posted April 14, 2019 (edited) 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 April 14, 2019 by Prestafan33 (see edit history) Link to comment Share on other sites More sharing options...
gusman126 Posted April 14, 2019 Share Posted April 14, 2019 y el pais? En que zona esta? 1 Link to comment Share on other sites More sharing options...
Prestafan33 Posted April 14, 2019 Author Share Posted April 14, 2019 (edited) 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 April 14, 2019 by Prestafan33 (see edit history) Link to comment Share on other sites More sharing options...
gusman126 Posted April 14, 2019 Share Posted April 14, 2019 (edited) 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 April 14, 2019 by gusman126 (see edit history) Link to comment Share on other sites More sharing options...
gusman126 Posted April 14, 2019 Share Posted April 14, 2019 Acabo de poner un tema donde se explica Link to comment Share on other sites More sharing options...
Prestafan33 Posted April 15, 2019 Author Share Posted April 15, 2019 (edited) 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 April 15, 2019 by Prestafan33 (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