11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Messages
  • #5862
    ATRIUS
    Participant
    Points: 23 pts
    Membre 2 étoiles

    Bonjour,

    Je cherche à obtenir la liste de toutes les personnes ayant acheté un produit spécifique.

    Impossible de faire une requête de ce type directement dans woocomerce par les moyens de tri que le plugin propose… 🙁

    Est-il possible d’obtenir ce listing depuis une requête SQL directement dans la BD ? Si oui à quoi ressemblerait cette requête ?

    Merci de votre aide.

    depanagewp
    #5863

    Bonjour,

    pour la requête je ne sais pas, mais je penses que ce plugin répond à tes besoins :

    Product Customer List for WooCommerce

    depanagewp
    #5864

    Bonsoir,

    regardez ce plugin, il permet d’obtenir la liste de client par produit, en plus il est gratuit :

    Product Customer List for WooCommerce

    depanagewp
    #5866
    Fred – WooFrance
    Maître des clés
    Points: 7,413 pts
    Certifié
    Membre 2 étoiles

    Bonjour

    Oui clairement c’est possible avec une simple requette sql.

    Un développeur ne devrait pas avoir de mal a le faire. (Pas moi, désolé je ne suis pas développeur)

    depanagewp
    1 user thanked author for this post.
    #5867
    ATRIUS
    Participant
    Points: 23 pts
    Membre 2 étoiles

    Je ne suis pas développeur mais je touche au SQL régulièrement dans mon taf, donc je vois comment faire. Le seul « hic » est l’organisation des tables que je n’arrive pas à « saisir »…

    Merci de ta réponse !

    depanagewp
    #5873
    Guy
    Participant
    Points: 5,497 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    Des plugins savent le faire et exporter en csv donc oui c’est possible. La difficulté c’est de trouver les bons paramètres parce que Woocommerce disperse les données dans plusieurs tables.

    Je me suis servi d’une requête il y quelques mois pour extraire une partie des données, je vais voir si je la retrouve, ça pourrait peut-être te donner une piste.

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

    depanagewp
    1 user thanked author for this post.
    #5874
    ATRIUS
    Participant
    Points: 23 pts
    Membre 2 étoiles

    ah oui si jamais tu la retrouve je suis preneur 😉 Merci d’avance.

     

    Jai vu le plugin… mais même pas sûr qu’il fasse exactement ce que je souhaite.. et impossible de tester sans payer 😦

    depanagewp
    #5876
    Guy
    Participant
    Points: 5,497 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    J’ai 2 requêtes dont je m’étais servi pour arriver à mes fins. Ce n’était pas aussi précis que ce que je voulais mais à force ne manipulation sur le csv je m’en était sorti.

    Mon but était différent donc ça ne doit pas coller tout à fait à ce que tu veux. Si tu es à l’aise avec SQL tu verras peut-être ce qu’il faut modifier.
    J’étais toujours en version 2.x, comme la version 3 a modifié les tables tout ne correspond plus forcément, je n’ai pas retesté.

    Merci de revenir partager si tu trouves la solution 🙂

    Requête 1:

    SELECT *
    FROM
    nom-de-la-base.wp_postmeta
    INNER JOIN
    nom-de-la-base.wp_posts
    ON nom-de-la-base.wp_posts.ID=nom-de-la-base.wp_postmeta.post_id
    where nom-de-la-base.wp_posts.post_type = »shop_order »;

    Il faut évidemment changer « nom-de-la-base » et le préfixe des tables si nécessaire.

    Requête 2:

    SELECT
    p.ID as order_id,
    p.post_date,
    p.post_status,
    term.slug as order_status,
    max( CASE WHEN pm.meta_key = ‘_order_tax’ and p.ID = pm.post_id THEN pm.meta_value END ) as order_tax,
    max( CASE WHEN pm.meta_key = ‘_order_total’ and p.ID = pm.post_id THEN pm.meta_value END ) as order_total,
    max( CASE WHEN pm.meta_key = ‘_billing_email’ and p.ID = pm.post_id THEN pm.meta_value END ) as billing_email,
    max( CASE WHEN pm.meta_key = ‘_billing_first_name’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_first_name,
    max( CASE WHEN pm.meta_key = ‘_billing_last_name’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_last_name,
    max( CASE WHEN pm.meta_key = ‘_billing_address_1’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_address_1,
    max( CASE WHEN pm.meta_key = ‘_billing_address_2’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_address_2,
    max( CASE WHEN pm.meta_key = ‘_billing_city’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_city,
    max( CASE WHEN pm.meta_key = ‘_billing_state’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_state,
    max( CASE WHEN pm.meta_key = ‘_billing_postcode’ and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_postcode,
    max( CASE WHEN pm.meta_key = ‘_shipping_first_name’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_first_name,
    max( CASE WHEN pm.meta_key = ‘_shipping_last_name’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_last_name,
    max( CASE WHEN pm.meta_key = ‘_shipping_address_1’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_address_1,
    max( CASE WHEN pm.meta_key = ‘_shipping_address_2’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_address_2,
    max( CASE WHEN pm.meta_key = ‘_shipping_city’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_city,
    max( CASE WHEN pm.meta_key = ‘_shipping_state’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_state,
    max( CASE WHEN pm.meta_key = ‘_shipping_postcode’ and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_postcode,
    max( CASE WHEN pm.meta_key = ‘_paid_date’ and p.ID = pm.post_id THEN pm.meta_value END ) as paid_date,
    ( select group_concat( order_item_name separator ‘|’ ) from wp_woocommerce_order_items where order_id = p.ID ) as order_items
    FROM
    wp_posts p JOIN wp_postmeta pm
    LEFT JOIN wp_term_relationships AS rel ON p.ID = rel.object_ID
    LEFT JOIN wp_term_taxonomy AS tax USING( term_taxonomy_id )
    LEFT JOIN wp_terms AS term USING( term_id )
    WHERE
    post_type = ‘shop_order’ AND
    post_status = ‘publish’ AND
    tax.taxonomy = ‘shop_order_status’ AND
    term.slug = ‘completed’ AND
    p.ID = pm.post_id AND
    post_date BETWEEN ‘2015-01-01’ AND ‘2016-01-31’
    GROUP BY
    p.post_date ASC

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

    depanagewp
    #5878
    ATRIUS
    Participant
    Points: 23 pts
    Membre 2 étoiles

    Ouch belles requêtes ^_^

    Je regarde à partir de cela si j’arrive à mes fins 😉

    Si c’est concluant je reviens poster ici la solution.

    Merci !

    depanagewp
    #5886
    ATRIUS
    Participant
    Points: 23 pts
    Membre 2 étoiles

    Je viens de trouver un plugin gratuit qui me fait un export CSV quasi parfait : Advanced Order Export For WooCommerce 😉

     

    Merci pour l’aide et vos réponses.

    depanagewp
    #5888
    Guy
    Participant
    Points: 5,497 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    C’est ce que j’avais dit, des plugins font ça très bien 😉

    Par contre je ne connaissais pas celui-là, il semble déjà assez complet dans sa version gratuite mais en plus la version Pro est à prix fort correct. Merci de l’avoir repéré.

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

    depanagewp
11 sujets de 1 à 11 (sur un total de 11)
  • Vous devez être connecté pour répondre à ce sujet.