Jump to content
Julien.G

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

 

Share this post


Link to post
Share on other sites

Il suffit de rentrer votre requete sql dans le gestionnaire sql du BO et vous pourrez exporter le résultat dans un fichier csv.

Share this post


Link to post
Share on other sites

Bonjour et merci pour la rapidité de réponse.

Je ne m'y connaît pas trop, je vois bien le gestionnaire SQL, pouvez-vous me préciser un peu s'il-vous-plaît ?

Merci

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites

je vous ai fourni une requête exemple, je vous laisse l'adapter à vos besoins.

Share this post


Link to post
Share on other sites

Très bien merci, je ne peux pas modifier car je ne connaît pas ce langage.

Je vous remercie beaucoup pour votre aide, et je vais attendre si quelqu'un peut m'aider à modifier.

Merci

Share this post


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

Share this post


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

 

Share this post


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

Important Information

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