doofinder / doofinder-magento2

Open Software License 3.0
10 stars 8 forks source link

[Magento2] Wrong sale_price in configurable product #322

Closed sofia-doofinder closed 1 month ago

sofia-doofinder commented 2 months ago

Parece que tenemos un bug a la hora de asignar el final_price de un producto configurable donde sus variantes tienen descuentos. Habría que hacer algunas pruebas porque en el endpoint custom parece que se está llamando a la función `getMinimumComplexProductPrice) que revisaba cual era el mínimo precio que asignar a un producto padre, pero es posible que tengamos un bug.

Email que hemos recibido


Buenos días,

Os abro esta solicitud para la cuenta TrangoWorld - TrangoWorld Store: (EU eb0015f3-6e19-4e0f-957d-50a39b1077fd)

Datos de ejemplo para mostraros el comportamiento que nos han solicitado: Para un producto configurable (padre) con precio de producto 100€ (PVP) por ejemplo, escenario 1: varios de sus productos simples (variantes) asociadas tienen descuento del 20% y 30%, teniendo precios especiales de 80€ y 70€ respectivamente. El resto de los productos simples no tienen precio especial y su precio es simplemente 100€ coincidiendo con el PVP. escenario 2: varios de sus productos simples (variantes) asociadas tienen descuento del 20% y 30%, teniendo precios especiales de 80€ y 70€ respectivamente. No hay ningún producto simple que no tenga precio especial, por lo que todos tienen al menos algún descuento. En el buscador actual se muestra como precio PVP el PVP del producto y como precio rebajado ninguno.

Propuesta: Mostrar en la PLP el PVP del producto y como precio rebajado: el máximo precio especial de sus variantes: escenario 1: Se mostraría PVP 100€ y no se mostraría precio rebajado porque hay variantes que no tienen descuento. El máximo de los precios de variante es 100€ y coincide con el PVP de 100€. escenario 2: Se mostraría PVP 100€ y se mostraría precio rebajado de 80€ con un 20% de descuento. El máximo de los precios de variante es 80€ y es un 20% sobre el precio de PVP de 100€.

¿Es posible realizarlo?

ogomezba commented 1 month ago

@sofia-doofinder @alexsomet Tras revisar bien la descripción de la issue y el funcionamiento de Magento, he comentado con Alex que el funcionamiento que pide el cliente va en "contra" de cómo estamos indexando los productos padre en otros plugins. En este caso, el cliente solicita que se muestre para el padre el precio máximo de las variantes y no el mínimo.

Por coherencia con el resto de plugins, deberíamos seguir indexando con el mínimo aunque, en caso de que sea una petición común, se podría plantear desarrollar alguna cosa que permita configurar esta parte de la indexación.

Adicionalmente, he observado alguna discrepancia entre cómo se determinan los precios para el padre entre Prestashop/Woocommerce y Magento. Pongo un ejemplo aquí que ilustra la diferencia.

En el caso de Woocommerce y Prestashop, se identifica la variante con el precio más barato y se usan los precios de dicha variante para el padre. En el caso de Magento, se usa como price el mínimo de entre las variantes y como el sale_price también el mínimo de entre las variantes (aunque las variantes no sean las misma). Por lo tanto, en un caso como el siguiente indexariamos el padre de formas diferentes:

Variante price sale_price
1 50
2 20
3 50 10

Magento -> El padre se indexa con price = 20, sale_price = 10 Prestashop/Woocommerce -> El padre se indexa con price = 50, sale_price = 10

sofia-doofinder commented 1 month ago

Bien visto @ogomezba! Yo también coincido en que el comportamiento debe ser coger el valor mínimo. igual si llegan muchas peticiones de este tipo se podría poner configurable, pero si ha sido solo un cliente…

Si puedes Oscar comenta el tema de la discrepancia que has encontrado con Cristóbal por si lo modificamos para que funcione igual que los otros dos.

ogomezba commented 1 month ago

@sofia-doofinder Hemos tenido una call hoy Alfonso, Cristóbal, Alex y yo sobre estos temas relacionados con la indexación del padre y las variantes. Las conclusiones han sido:

sofia-doofinder commented 1 month ago

Buenas @ogomezba, gracias por el update. Te contesto a cada uno de los puntos

Y una pregunta Oscar, el tema que mencionabas más arriba de que para magento el price & sale price no coincidía con una de las variantes si no con el valor mínimo entre todas las variantes para cada campo, en qué quedó la cosa?

CristobalDolz commented 1 month ago

Hola,

Sobre el punto 2, lo que comentó Alfonso es que el plugin de magento es open source y que igual le podiamos decir a la agencia que si quieren ellos saquen una versión del plugin especifica para este cliente cambiando esa parte del precio minimo.

Sobre el punto 3, sí, eso lo gestionaremos nosotros pero le dije a Oscar que si podeis, vendría bien que lo fueseis teniendo en mente.

ogomezba commented 1 month ago

@sofia-doofinder Hola Sofía! Respecto al puto de que para Magento el price y el sale price podían venir de variantes diferentes, comentamos que sí que habría que cambiarlo y hacerlo de la misma forma que para Presta y para Woo ya que la forma en la que lo hacemos ahora mismo no tiene mucho sentido @CristobalDolz . Creamos otra issue para gestionar esa parte o usamos esta misma?

agutierrezrodriguez commented 1 month ago
  • Creo que esto no podemos hacerlo, hasta donde tengo entendido no hacemos desarrollos a medida, si hacemos una release independiente que hacemos después? mantenemos los dos códigos? El cliente si quiere puede modificar el plugin en su instalación, pero tiene que tener en cuenta de que si se actualiza a una nueva versión perderá los cambios y tendrá que volver a ajustarlo. Por que por ejemplo, ahora que va a salir el script único, que haríamos? El cliente no podría actualizarse al script único? o habría que hacer el desarrollo en dos ramas? Menciono a @agutierrezrodriguez por si estoy equivocada pero creo que esto no es una opción.

Efectivamente @sofia-doofinder. No hacemos desarrollos a medida ni personalizados. Es lo mismo que ha dicho @kataklanka. El plugin es open-source, el que quiera que se lo descargue y lo modifique a sus necesidades.

ogomezba commented 1 month ago

Desplegado en producción la unificación del cálculo de precios para Magento para usar la misma lógica que en Prestashop y en Woocommerce.

En el caso de Woocommerce y Prestashop, se identifica la variante con el precio más barato y se usan los precios de dicha variante para el padre. En el caso de Magento, se usa como price el mínimo de entre las variantes y como el sale_price también el mínimo de entre las variantes (aunque las variantes no sean las misma). Por lo tanto, en un caso como el siguiente indexariamos el padre de formas diferentes:

Variante price sale_price 1 50
2 20
3 50 10 Magento -> El padre se indexa con price = 20, sale_price = 10 Prestashop/Woocommerce -> El padre se indexa con price = 50, sale_price = 10