¿Como actualizar precios en combinaciones de producto por categoría en Prestashop?

Por Tomasarias @atalantic_es

Si quieres actualizar de forma masiva los precios de las combinaciones en Prestashop debes de tener en cuenta que este se encuentra en dos tablas importantes que son:

  • ps_product_attribute_shop (en la que encontramos precio de venta del atributo en la tienda)
  • ps_product_attribute (encontramos precio del atributo)

Si solo modificaciones el precio en la tabla ps_product_attribute_shop, tendremos que el problema de que al editar la combinación, nos pondrá automáticamente el precio antiguo y no el de venta del producto que hemos modificado, lo que puede ocasionar un pequeño caos.

Para modificar de forma masiva una categoría de producto podemos utilizar la siguiente consulta SQL en nuestro PhpMyAdmin (lo siento no queda otra)

¿Como actualizo el precio de todas las combinaciones de una categoría?


UPDATE ps_product prd, ps_product_attribute pat, ps_category_product cat, ps_product_attribute_shop pshop
SET pat.price = pat.price - ((pat.price*37)/100), pshop.price = pshop.price - ((pshop.price*37)/100)
WHERE
prd.id_product = pat.id_product and cat.id_product = prd.id_product
AND pshop.id_product=cat.id_product
AND (cat.id_category = 24)

En este ejemplo esta modificado el precio de todos los productos de la categoría 24 y al precio de la combinacion le estamos realizando un descuento del 37% con la formula pshop.price = pshop.price – ((pshop.price*37)/100), si quisieramos sumarle 5€ solo tendriamos que modificarla por lo siguiente pshop.price = pshop.price + 5, facil y secillo.

Solo deseo modificar las combinaciones de un producto ¿como lo hago?

Para ello podrás utilizar la siguiente sentencia SQL donde prd.id_product es el ID de tu producto.


UPDATE ps_product prd, ps_product_attribute pat, ps_category_product cat, ps_product_attribute_shop pshop
SET pat.price = pat.price - ((pat.price*37)/100), pshop.price = pshop.price - ((pshop.price*37)/100)
WHERE
prd.id_product = pat.id_product and cat.id_product = prd.id_product
AND pshop.id_product=cat.id_product
AND (prd.id_product = 1)

Si tienes cualquier duda o si te ha parecido interesante no olvides dejar tu comentario.