Jump to content
djmortis

[SOLUCIONADO] Informe de ventas por cliente y producto

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)

Share this post


Link to post
Share on other sites

Si no tienes ningún programa de gestíon o ERP lo mejor es que lo hagas mediante una consulta sql

  • Like 1

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
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.

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More