SELECT pxi.id_producto, pxi.nombre AS nombre_producto, pxi.nombre AS nombre_producto_alt, pxi.descripcion AS descripcion_producto,
pxim.nombre AS imagen_producto , IF(pxim.nombre IS NOT NULL, true, false) AS dspImagenProducto,
m.logo AS imagen_marca, IF(m.logo IS NOT NULL, true, false) AS dspImagenMarca, m.id AS id_marca,
m.nombre AS nombre_marca, m.nombre AS url_nombre_marca,pxi.id_producto AS url_categoria,
pxi.nombre AS url_nombre_producto, pxi.id_producto AS comparap,
IF(p.num_valoraciones>0, ROUND(p.total_valoraciones/p.num_valoraciones), 0) AS valoracion,
p.precio AS precio_producto_anterior, 1 AS galeria_producto_linea,
IF(of.id IS NOT NULL,
p.precio - (p.precio * of.descuento/100),
IF(o.id IS NOT NULL,
p.precio - (p.precio * o.descuento/100),
IF(p.outlet = 1,
p.precio - (p.precio * p.outlet_porcentaje/100),
p.precio
)
)
) AS precio_producto,
IF(of.id IS NOT NULL OR o.id IS NOT NULL OR p.outlet = 1,
true,
false
) AS precio_oferta,
IF(of.id IS NOT NULL,
of.descuento,
IF(o.id IS NOT NULL,
o.descuento,
p.outlet_porcentaje
)
) AS descuento_oferta,
IF(of.id IS NOT NULL,
true,
IF(o.id IS NOT NULL,
true,
false
)
) AS precio_oferta_flash,
IF(of.fecha_fin IS NOT NULL,
of.fecha_fin,
IF(o.fecha_fin IS NOT NULL,
UNIX_TIMESTAMP(o.fecha_fin),
99999999999
)
) AS finaliza_oferta,
IF(p.precio_min_garantizado>0,true,false) AS precio_minimo,
IF(p.reserva>0 AND DATE(p.reserva_fecha)>DATE(NOW()),true,false) AS pre_reserva,
IF(p.novedad = 1, true, false) AS nuevo_producto,
p.reserva, p.reserva_fecha FROM mc_producto p
INNER JOIN mc_productoxidioma pxi ON p.id = pxi.id_producto AND pxi.idioma = 'es'
LEFT OUTER JOIN mc_productoximagen pxim ON pxim.id_producto = p.id
LEFT OUTER JOIN mc_marca m ON p.id_marca = m.id LEFT OUTER JOIN mc_oferta_flashxproducto ofp ON ofp.id_producto = p.id
LEFT OUTER JOIN mc_oferta_flash of ON of.id = ofp.id_oferta_flash AND of.fecha_inicio <= DATE(NOW()) AND of.activa = 1 AND ((of.fecha_fin - UNIX_TIMESTAMP(NOW())) >= 0) LEFT OUTER JOIN mc_ofertaxproducto op ON op.id_producto = p.id
LEFT OUTER JOIN mc_oferta o ON o.id = op.id_oferta AND o.fecha_inicio <= DATE(NOW()) AND o.activa = 1 AND ((UNIX_TIMESTAMP(o.fecha_fin) - UNIX_TIMESTAMP(NOW())) >= 0) WHERE publicado = 1 AND p.id_categoria IN (54,55,56,84,85,105,57,58,95,86,87,88,96,205) GROUP BY p.id