Jump to content

[SOLUCIONADO] Problema precio unitario diferente en carrito y en ficha (PS1.7.6.5)


Recommended Posts

Tengo un producto simple (sin combinaciones) con estos precios:

image.png.fd4daf7ef980593963e97ad94b5b3aee.png

En la pestaña Precios tengo estos precios configurados, ya que es un producto que se vende por gramos:

image.thumb.png.878de45b7725b8cfd0f237f60053414b.png

 

El problema está en que en la web, cuando estoy viendo la ficha del producto, no muestra el precio unitario indicado en la pestaña precios, sino que redondea este precio tanto que sale un precio erróneo:

image.png.308e073abf0b7d5549b6eaa472592ad2.png

Sin embargo, en el carrito sale correctamente este precio:

image.thumb.png.990a2b483fc234de9532a0fc7e857804.png

 

He revisado el código y en ambos archivos product-prices.tpl y cart-detailed-product-line.tpl están mostrando el dato $product.unit_price_full, sin embargo en algún sitio se está haciendo un redondeo cuando se va a mostrar en la ficha.

¿Esto es un bug o está así hecho aposta por algún motivo? ¿Dónde tendría que modificarlo?

Gracias!

 

 

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

  • 3 weeks later...

Pero vamos a ver... El redondeo es correcto, es el que quiero para el resto de productos de la web, y en el carrito se muestra correctamente con el redondeo que tengo marcado. Si lo cambio se me verá mal el resto de la web.

No obstante, el redondeo afecta al último dígito y yo tengo el problema con los dos últimos. Básicamente porque no es un problema de redondeo, es un problema de que en la ficha del producto (donde aparece el precio erróneamente) está redondeando y multiplicando a partir del precio por gramo, no del precio por 100gr, por eso sale redondeado a 2,00€ y no a 2,40€.

Gracias igualmente por tus comentarios.

Link to comment
Share on other sites

  • 2 months later...

Creo que PrestaShop calcula el precio unitario que se muestra en la web a partir del precio del producto, que ya está redondeado, aunque no lo tengo muy claro.

En mi caso, por si le sirve a alguien, la SOLUCIÓN que adopté fue modificar los .tpl necesarios para que cuando hay un producto con precio unitario (productos por peso o por metro), visualmente muestre al usuario el precio por la unidad indicada y no el precio del producto. De modo que se vería así:

 

image.png.a9c11640126db9df1c998f69ae3447e1.png

 

He contemplado también los descuentos, tanto por % como fijos. Los .tpl a modificar (estoy trabajando con la plantilla por defecto, si trabajas con otra puede que varíe) son estos:

> Añadir un mensaje encima de la cantidad que ponga "Seleccione los gramos": /themes/TU_TEMA/templates/catalog/_partials/producto-add-to-cart.tpl

> Listado de productos por categoría: /themes/TU_TEMA/templates/catalog/_partials/miniatures/product.tpl

> Vista previa:  /themes/TU_TEMA/templates/catalog/_partials/product-prices.tpl

> Ficha producto:  /themes/ TU_TEMA  /templates/catalog/_partials/product-prices.tpl

> Añadir al carrito:  /themes/ TU_TEMA  /modules/ps_shoppingcart/modal.tpl

> Carrito:  /themes/ TU_TEMA  /templates/checkout/_partials/cart-detailed-product-line.tpl

> Pedido confirmado:  /themes/ TU_TEMA  /templates/checkout/_partials/order-confirmation-table.tpl

> Mi cuenta -> mis pedidos (cuando no permite devoluciones):  /themes/ TU_TEMA  /templates/customer/_partials/order-detail-return.tpl

> Mi cuenta -> mis pedidos (cuando permite devoluciones):   /themes/ TU_TEMA  /templates/customer/_partials/order-detail-no-return.tpl

> Mi cuenta -> devoluciones de mercancía:   / themes/ TU_TEMA  /templates/customer/order-return.tpl

> Para las label que se muestran sobre las fotos (tema descuentos):   /themes/ TU_TEMA  /templates/catalog/_partials/product-flags.tpl

> En el proceso de pago: /themes/TU_TEMA/templates/checkout/_partials/cart-summary-product-line.tpl
 

Te dejo algunas variables que usé para calcular el precio unitario:

$product.reduction

$product.unit_price_ratio

$currency.sign

$product.unity

$product.specific_prices.reduction_type

$product.price_without_reduction

...

Creo que no me olvidé de ningún tpl. 

 

A mayores, modifiqué el número que aparece en el carrito, para que no muestre que has comprado 1000 artículos, cuando lo que has comprado es 1kg de arroz (1000gr), para esto, modifiqué los siguientes tpl para mostrar {$cart.products|count}, que es el número de artículos diferentes (o lo que es lo mismo, número de líneas):

> En el icono del carrito (arriba a la derecha siempre visible): /themes/TU_TEMA/modulos/ps_shoppingcart/ps_shoppingcart.tpl

> En el modal al añadir al carrito: /themes/TU_TEMA/modulos/ps_shoppingcart/modal.tpl  

> En el resumen del carrito (proceso de pago): /themes/TU_TEMA/templates/checkout/_partials/cart-detailed-totals.tpl

> En el resumen del carrito (proceso de pago): /themes/TU_TEMA/templates/checkout/_partials/cart-summary.tpl

 

Si a alguien le sirve, ahí queda eso.

 

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...