Jump to content

[SOLUCIONADO] Informe de ventas por cliente y producto


djmortis

Recommended Posts

Buenas, tengo Prestashop 1.6.0.6, necesito sacar un listado de ventas por cliente en donde indique que cantidad se ha comprado de cada producto entre unas fechas determinadas

 

Ejemplo...

 

Sacar resultados del 14/05/2014 al 15/05/2014

 

Cliente Prueba - Taza musical - 1 comprado

Cliente Prueba - Vaso de cristal - 2 comprados

Cliente Prueba 4 - Tenedor azul - 1 comprado

 

¿Es posible?, gracias.

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

Pero, una consulta como?, no se donde guarda cada dato, :S Porque en el ps_customers guarda el numero total de ventas, pero no de que producto es cada una, :S

 

Sorry por mi ignorancia, pero soy relativamente nuevo en prestashop y voy perdido aún con todas sus tablas.

Link to comment
Share on other sites

Mira a modo de ejemplo puedes utilizar algo asi y buscar por la referencia del producto, tendrías que ajustar las fechar al rango que quierás y buscar por referencia 

SELECT CONCAT_WS(  ' ', g.firstname, g.lastname ) AS Cliente, n.`product_name` AS Producto, n.`product_quantity` AS Cantidad
FROM  `ps_orders` o
LEFT JOIN  `ps_customer` g ON g.`id_customer` = o.`id_customer` 
LEFT JOIN  `ps_order_detail` n ON n.`id_order` = o.`id_order` 
WHERE o.date_upd
BETWEEN  '2014-01-01'
AND  '2014-12-31'
AND n.`product_reference` =  "demo_2"
LIMIT 0 , 30
  • Like 2
Link to comment
Share on other sites

Una cosita más, tengo tres campos en customers que son provincia, localidad, centro, bueno, tendré ya que no me salen los combos, lo que realmente me interesa es que me salgan esos campos en el informe de ventas, para saber cuantos productos ha comprado el centro X.

 

¿Sería así?

 

SELECT CONCAT_WS(  ' ', g.firstname, g.lastname, g.provincia, g.localidad, g.centro ) AS Cliente, n.`product_name` AS Producto, n.`product_quantity` AS Cantidad
FROM  `ps_orders` o
LEFT JOIN  `ps_customer` g ON g.`id_customer` = o.`id_customer` 
LEFT JOIN  `ps_order_detail` n ON n.`id_order` = o.`id_order` 
WHERE o.date_upd
BETWEEN  '2014-01-01'
AND  '2014-12-31'
AND n.`product_reference` =  "demo_2"
LIMIT 0 , 30

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

  • 2 weeks later...

bueno no exactamente....

 

cuando usamos CONCAT_WS( ' ', g.firstname, g.lastname ) AS Cliente, es para unir en un campo el nombre y el apellido. lo que tu quieres en realidad debes poner antes o despues:

 

g.provincia as provincia,  g.localidad as poblacion, g.centro as centro

 

Aunque lo que comenta djmortis es válido realmente la forma correcta es esta :) ya que si quieres ordenar por alguno de los tres, si esta dentro del nombre y el apellido no podrás

Link to comment
Share on other sites

  • 9 months later...

Creo que mi necesidad es un poco mas sencilla:

 

Necesito un reporte de las ventas por cliente entre dos fechas y que me entregue un archivo CSV con el customer_ID y la suma de las compras.

 

Como veo que aqui hay experiencia con el gestor SQL, les pido ayuda.

 

Gracias.

Link to comment
Share on other sites

Está muy bueno el módulo, pero este descarga todos los pedidos, yo busco descargar el monto de los productos comprados por cada cliente en un determinado rango de fechas.

 

Un archivo CSV con dos columnas, la primera es customer_ID y la segunda es el monto de los productos comprados por cada cliente en el rango de fechas solicitado. Al sumarse las ventas obviamente no podría haber mas de un renglón con el mismo customer_ID, y con el módulo si se repite porque lo que hace es descargar pedidos.

Link to comment
Share on other sites

Confieso que soy un novato con cero estudio y experiencia en SQL, pero con algo de persistencia y curiosidad he logrado el siguiente código:

 

SELECT id_customer,SUM(total_products)

FROM ps_orders

WHERE date_upd BETWEEN '2014-01-01' AND '2015-12-31'

OR current_state = 2 OR current_state = 4 OR current_state = 5

GROUP BY id_customer

 

Con esto obtengo una lista con el monto de la suma de los pedidos con estado 2, 4 o 5 en un determinado rango de fechas.

 

Lo único que me falta es eliminar los resultados cuyo valor es 0, existen un producto de prestashop que funciona como inscripción a una membresía y tiene precio = 0, es por eso que me arroja resultados igual a cero.

 

Mi pregunta sería, ¿qué modifico en el código para que solamente me arroje las sumas de pedidos de clientes mayores a cero?

Link to comment
Share on other sites

 

 

Lo único que me falta es eliminar los resultados cuyo valor es 0, existen un producto de prestashop que funciona como inscripción a una membresía y tiene precio = 0, es por eso que me arroja resultados igual a cero.

 

Mi pregunta sería, ¿qué modifico en el código para que solamente me arroje las sumas de pedidos de clientes mayores a cero?

 

 

Prueba asi

SELECT id_customer,SUM(total_products)
FROM ps_orders
WHERE date_upd BETWEEN '2014-01-01' AND '2015-12-31'
AND current_state IN (2,4,5)
GROUP BY id_customer
HAVING SUM(total_products) > 0
  • Like 1
Link to comment
Share on other sites

  • 2 years later...

Buenas chico.

 

Yo tengo un problema similar.

 

No tengo ni idea de sql, y necesitaria hacer una consulta que me diga las ventas que ha hecho cada cliente de mi tienda, con los siguientes datos:

 

Id_cliente, nombre-cliente, Apellidos_cliente, dni, Producto-comprado,precio_producto, cantidad_comprada, y forma_de_pago.

 

Podriais decirme como seria?

Link to comment
Share on other sites

  • 2 years later...

Hola @jota_09 para los usuarios que no saben o no pueden hacer consultas SQL ni desarrollos a medida, la mejor opción es utilizar un software externo, si un ERP que sea muy completo es una opción demasiado cara recuerda que puedes usar Nirvine KPI, tiene toda la información de ventas, clientes y producto junto a campañas y otras fuentes de datos.

un saludo!

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