Jump to content

Exporter les quantités vendu par produit sur une période donnée


Recommended Posts

Type d’install (nouvelle/MàJ) : MàJ
Version de PS : 1.6.1.11
URL du site concerné https://www.croquementbon.fr/
Thème (défaut/perso) : perso, leo pethouse
Hébergement : OVH
 

Bonjour,

 

Je souhaiterais savoir si de base je peux exporter un fichier dans lequel il y aurait le nom du produit et la quantité vendu sur la période choisi ou si il faut un module ?

Dans le cas où il faudrait un module, je suis preneur de suggestion.

Merci,

 

Julien

 

Link to comment
Share on other sites

Eh bien vous allez dans ce gestionnaire et vous collez ceci:

select  od.product_id, od.product_attribute_id, pl.name as Nom, pagl.name as Déclinaison, pal.name as Valeur,
	sum(od.product_quantity) AS Quantités,
	COUNT(*) AS Ventes
from ps_order_detail od
inner join ps_orders o on (o.id_order = od.id_order and o.invoice_date between '2019-01-01 00:00:00' and '2019-12-31 23:59:59')
inner join ps_product_lang pl on(pl.id_product = od.product_id)
left join ps_product_attribute_combination pac on(pac.id_product_attribute = od.product_attribute_id)
left join ps_attribute pa on (pa.id_attribute = pac.id_attribute)
left join ps_attribute_group_lang pagl on(pagl.id_attribute_group = pa.id_attribute_group and pagl.id_lang = 1)
left join ps_attribute_lang pal on (pal.id_attribute = pac.id_attribute and pal.id_lang = 1)
GROUP BY od.product_id, od.product_attribute_id
ORDER BY Ventes DESC

En adaptant l'id_lang à celui de votre boutique, et vous aurez la synthèse des produits vendus depuis le début de l'année. Ensuite il vous suffit de modifier l'année à chaque nouvelle année^^

Link to comment
Share on other sites

Merci beaucoup,

J'ai juste un petit soucis dans le fichier exporté, comme par exemple pour le 1er qui à l'ID 1295, il devrait y avoir taille et poids, mais il n'apparaît que le poids, je ne peux donc pas savoir quel  sac à été vendu entre small et medium. Pour le 2ème de la liste, qui à le même id produit, c'est l'inverse, il y a la taille mais pas le poids.

Je vous joint le fichier généré et la prise écran des déclinaisons de ce produit.

En tout cas vous m'avez déjà grandement aidé

 

request_sql_5.csv

déclinaisons.png

Link to comment
Share on other sites

J'ai "bidouillé" en voyant des morceaux de code par ci par là, et j'ai réussi à afficher les déclinaison complètes.

Par contre j'ai aussi modifié pour que les quantités vendu affiché, prennent en compte les retours.

En fait je ne comprend pas très bien à quoi correspondent les colonnes ventes et quantité dans le code que vous m'avez donné car ça ne correspond pas aux ventes effectuées ni aux stocks.

Pour exemple, le fichier joint devrait correspondre aux ventes entre le 1 et le 7 mars, mais ce n'est pas le cas.

Pour le dernier de la liste, ID 1134, il y en a 1 en stock et 4 ont été vendu dans cette période.

Pour le premier, ID 1295, 2 ont été vendu et il y en a 18 en stock.

ventes 1 au 7 mars.csv

Link to comment
Share on other sites

J'ai oublié de joindre le code après modification, le voilà :

 

select  od.product_id as ID_produit, pl.name as Nom, GROUP_CONCAT(DISTINCT(pagl.name) SEPARATOR ", ") AS 'Déclinaison', GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR ", ") AS 'Valeur',
	(sum(od.product_quantity) - sum(od.product_quantity_return)) AS Quantités,
	COUNT(*) AS Ventes
from ps_order_detail od
inner join ps_orders o on (o.id_order = od.id_order and o.invoice_date between '2019-03-01 00:00:00' and '2019-03-07 23:59:59')
inner join ps_product_lang pl on(pl.id_product = od.product_id)
left join ps_product_attribute_combination pac on(pac.id_product_attribute = od.product_attribute_id)
left join ps_attribute pa on (pa.id_attribute = pac.id_attribute)
left join ps_attribute_group_lang pagl on(pagl.id_attribute_group = pa.id_attribute_group and pagl.id_lang = 1)
left join ps_attribute_lang pal on (pal.id_attribute = pac.id_attribute and pal.id_lang = 1)
GROUP BY od.product_id, od.product_attribute_id
ORDER BY Ventes DESC

 

Link to comment
Share on other sites

  • 1 year later...
On 3/8/2019 at 3:05 PM, Eolia said:

Eh bien vous allez dans ce gestionnaire et vous collez ceci:


select  od.product_id, od.product_attribute_id, pl.name as Nom, pagl.name as Déclinaison, pal.name as Valeur,
	sum(od.product_quantity) AS Quantités,
	COUNT(*) AS Ventes
from ps_order_detail od
inner join ps_orders o on (o.id_order = od.id_order and o.invoice_date between '2019-01-01 00:00:00' and '2019-12-31 23:59:59')
inner join ps_product_lang pl on(pl.id_product = od.product_id)
left join ps_product_attribute_combination pac on(pac.id_product_attribute = od.product_attribute_id)
left join ps_attribute pa on (pa.id_attribute = pac.id_attribute)
left join ps_attribute_group_lang pagl on(pagl.id_attribute_group = pa.id_attribute_group and pagl.id_lang = 1)
left join ps_attribute_lang pal on (pal.id_attribute = pac.id_attribute and pal.id_lang = 1)
GROUP BY od.product_id, od.product_attribute_id
ORDER BY Ventes DESC

En adaptant l'id_lang à celui de votre boutique, et vous aurez la synthèse des produits vendus depuis le début de l'année. Ensuite il vous suffit de modifier l'année à chaque nouvelle année^^

Bonjour Eolia,

Est il possible de faire la même requête et d'ajouter une colonne du nombre de produit restant en stock dans la déclinaison ?

 

merci à vous

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