Jump to content

Obtener datos de los productos en una Consulta SQL


soyseke

Recommended Posts

Hola, tengo esta consulta:

SELECT pl.name, ps.price, pl.meta_description, pl.description_short
FROM ps_product_lang pl, ps_product ps
WHERE pl.id_product = ps.id_product
AND pl.id_lang =3
AND ps.active =1

Necesito además obtener la imagen del producto y el precio del producto con el iva incluido, que será el (ps.price*iva)+ps.price, pero no encuentro donde se guarda esa información, alguien me puede echar una mano con esta consulta. Gracias.

Link to comment
Share on other sites

Mejor saca  en la sql el id del producto y luego usa funciones auxiliares de Prestashop para calcular el precio y la url de la imagen

Tendrás que iterar por el resultado de la query

P.ej

Para el precio no tienes otra que usar la función
 

Product::getPriceStatic($resquery['id_product'],true);


para la imagen en los tpl fijate que se usa
 

<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'medium_default')|escape:'html'}"

por lo que necesitas el link_rewrite que estaría en pl.link_rewrite.

El id_image lo puedes calcular como
 

$image = Image::getCover($resquery['id_product']);

$id_image = $resquery['id_product'].'-'.image['id_image'];

 

Link to comment
Share on other sites

Sacar en el listado los precios de venta con una sola consulta sql es realmente difícil. Ten en cuenta que a parte de impuestos hay multitud de descuentos que pueden aplicarse, de hecho el precio incluso puede depender de a que grupo de clientes nos estamos refiriendo.

Gracias por tu respuesta Enrique, tienes razón en relación a obtener el precio, pero en mi caso es más sencillo que todo esto pues sólo necesito el precio base del producto y el iva que se le aplica, sin tener en cuenta descuentos, promociones, grupo, etc.

 

Link to comment
Share on other sites

Hola.

 

Para la 1.4, productos sin combinaciones:

select po.id_product AS id_pro, po.reference AS referencia, pol.name AS productname, po.price AS unitcost,po.on_sale AS rebajas, po.id_tax_rules_group AS id_tax, ptx.rate AS tax, po.price+po.price*ptx.rate/100 as PVP from ps_product po INNER JOIN ps_product_lang pol ON po.id_product = pol.id_product INNER JOIN ps_tax ptx ON ptx.id_tax = po.id_tax_rules_group where pol.id_lang =3;

Un saludo.

  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...