Prestashop et le gestionnaire SQL

Un peu par hasard j’ai vu que Prestashop proposait une nouvelle option dans sa dernière version de Prestashop 1.6.0.11, il s’agit là du gestionnaire SQL ! Mais à quoi ça sert ce nouvel outil ? Nous allons le découvrir ensemble.

Une nouvelle options dans les listes

Dans les listings du back-office de la boutique, vous avez à présent à droite deux nouveaux boutons « Voir la requête SQL » et « Exporter vers le gestionnaire SQL ». Ces fonctionnalités se retrouvent partout dans votre back-office Prestashop, à chaque emplacement où vous avez un listing d’éléments.

Deux nouveaux boutons sont apparus dans l’interface.

A quoi ça sert ?

Le premier bouton vous permet de visualiser la requête qui provoque l’affichage de cette liste, cela vous donnera donc l’information sur la manière dont sont sélectionnés les informations affichées. Cela peut aussi vous aider à établir une requête fonctionnelle si vous êtes un développeur (par ex. pour le développement d’un module).

Un « SELECT » pas si simple que ça en fait… et qui contient des jointures.

Si on utilise le deuxième bouton pour exporter vers le gestionnaire, celui-ci conduire vers un formulaire en copiant la requête que nous venons de voir ensemble. Ici par exemple il s’agit de la requête du formulaire Catalogue->Produits.

Vous pouvez conserver les requêtes dans votre gestionnaire SQL

Ensuite, dans le gestionnaire SQL (qui se trouve sous les paramètres avancés), vous pourrez retrouver la liste des requêtes que vous aurez sauvées. Dans le cas présent on en a une seule, qu’on peut par exemple exporter vers un CSV, afin de pouvoir exploiter les données.

Un moyen simple d’exporter ses données vers Excel.

On peut aussi consulter directement les résultats sur Prestashop.

Quel intérêt à cette fonctionnalité ?

Si vous êtes doué en SQL vous pourrez réaliser facilement un export basé sur une requête complexe. L’avantage aussi c’est de pouvoir mettre en place des exports pour les clients, sans devoir installer un module additionnel (quand cela est possible). Cela peut aussi faciliter l’accès aux données, au lieu de toujours demander par exemple au webmaster de devoir exporter les informations de tables spécifiques dans la base de données.

Bilan

Bien sûr que ça ne changera pas la vie du webmaster ! Par contre, pour le marchand, ça peut-être une ouverture sur l’exploitation de nouvelles données, sans craintes de faire crasher la base en passant par PHPmyAdmin. L’export fonctionne pour des besoins classiques, s’il faut apporter des traitements supplémentaires sur les données exportées, cela nécessitera dans tous les cas de passer via un export sur mesure.

BOUM !

1 seul mail par semaine - pas de publicité

17 commentaires sur “Prestashop et le gestionnaire SQL”

    1. Hello,

      Oui heu… ahah… j’ai essayé de faire du neuf avec du vieux 😉 ! En fait les raccourcis + intégration automatique de la requête dans le gestionnaire SQL c’est nouveau.

      Le gestionnaire SQL lui-même était déjà dedans, mais moins mis en avant… car il n’y avait pas ces boutons d’action…

      Merci d’avoir fait la remarque 😀 !

      1. J’aime bien les précisions, comme pour les Helpers qui étaient déjà bien présents mais moins mis en avant.

        Et cela ne retire en rien le contenu de ton article, qui est intéressant. En effet, c’est de plus en plus mis en avant avec ces fonctionnalités d’export/requête SQL. Attention, toutefois, il y a aussi le mode DEV a activé pour obtenir certaines vues.

  1. Yes!! Ça fait des mois que je fais du presta et je suis toujours passé à coté de cette fonctionnalité. Du coup je vous fais partager ma nouvelle requête que j’effectuai auparavant dans phpmyadmin. elle permet de récupérer les inscrits à la newsletter :

    SELECT email, newsletter_date_add
    FROM `ps_customer`
    WHERE `newsletter` =1

    UNION

    SELECT email, newsletter_date_add
    FROM `ps_newsletter`
    WHERE active =1

    Merci pour cette article

    1. Bonjour,

      Ah voilà typiquement un très bon exemple de cas concret, pour ce genre de requête le gestionnaire SQL est donc idéal.

      Merci pour votre contribution !

  2. Un petit partage aussi. J’avais besoin de voir les commentaires laissés par les visiteurs de manière « globale ». N’ayant pas de module spécifique et/ou ne sachant pas comment faire, j’ai fait cette petire query :

    SELECT
    DBName_product_comment.id_product AS ID,
    DBName_product_lang.name AS Nom,
    DBName_product_comment.date_add AS Date,
    DBName_product_comment.content AS Commentaires

    FROM
    DBName_product_comment

    INNER JOIN
    DBName_product_lang

    ON
    DBName_product_comment.id_product = DBName_product_lang.id_product

    DBName est à remplacer par le nom de votre base. Ca fonction en 1.6.x.

  3. Bonjour
    Merci pout tous les tutos

    Est ce que le gestionnaire SQL peut récupère les table en SQL et qui permet faire les requêtes pour crée automatiquement des produits

    Merci

    1. Hello,

      Vu la complexité de l’import / export, il est préférable de se servir de Store Commander pour les importations de produits. Le gestionnaire SQL est pratique pour faire des scripts d’exportation de données pour du reporting.

      A bientôt !

  4. Hello !

    Je cherche a savoir si il y un moyen pour automatiser un export SQL réalisé par le gestionnaire SQL de Prestashop 1.6, comme avec un CRON par exemple, et de pouvoir déposer ce fichier par mail ou ftp ?

    Je cherche a extraire de manière planifié un champ custom de ma bdd, ainsi que le total ttc des commandes.

    Merci pour votre avis et aide !

    1. Hello,

      Selon mon expérience je ne crois pas que le gestionnaire SQL permet de faire une tâche CRON (cela reste exécutable en interne)… mais vous m’avez donné une idée pour un futur tutoriel pour l’extraction de données.

      A bientôt !

  5. Bonsoir,

    J’ai fais cette requête toute simple :

    	SELECT
    		qpl.id_product AS ID,
    		qpl.name AS NAME,
    		qs.name AS FOURNISSEUR
    	FROM qerf_product qp
    		INNER JOIN
    			qerf_product_lang qpl
    		ON
    			qpl.id_product = qp.id_product
    		INNER JOIN
    			qerf_supplier qs
    		ON
    			qs.id_supplier = qp.id_supplier
    	ORDER BY
    		qpl.id_product DESC
    

    qui permet d’afficher l’id, le nom et le fournisseur des produits.

    Cette requête fonctionne sans souci directement dans phpMyAdmin mais n’est pas acceptée dans le requêteur de Prestashop.

    Si vous avez une idée, je suis preneur…
    Merci

  6. Bonjour,

    Allez, hop, une petite requête

    SELECT
    	DBPREFIX_category_product.id_product AS ID, DBPREFIX_product_lang.name AS Nom
    FROM
    	DBPREFIX_category_product
    INNER JOIN
    	DBPREFIX_product_lang
    ON
    	DBPREFIX_category_product.id_product = DBPREFIX_product_lang.id_product
    WHERE
    	DBPREFIX_category_product.id_category = 2
    

    Liste les produits présents sur la page d’accueil qui chez moi, a la valeur 2.
    Vous pouvez afficher la liste des produits pour la catégorie choisie cette valeur.

  7. Je reviens sur mon précédent message du 25/01 sur une requête récalcitrante. En fait, il suffit de mettre des parenthèses pour les jointures. Astuce donnée par Eolia sur les forum Prestashop. Ce qui donne :

    SELECT
    	qpl.id_product AS ID, qpl.name AS NAME, qs.name AS FOURNISSEUR
    FROM
    	qerf_product qp
    INNER JOIN
    	qerf_product_lang qpl ON (qpl.id_product = qp.id_product)
    INNER JOIN
    	qerf_supplier qs ON (qs.id_supplier = qp.id_supplier)
    ORDER BY
    	qpl.id_product DESC
    

    Have fun.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *