Console Prestashop

Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

Tout ceux qui travaillent sous Magento ou Symfony le save, la ligne de commande est la meilleure amie du développeur pour gagner du temps 🙂
J’utilise très régulièrement l’outil Magerun : https://github.com/netz98/n98-magerun  qui permets de réaliser pleins d’actions depuis la ligne de commande

Ce type d’outil n’existe pas (encore) sous Prestashop.
Ceci arrivera sans doute pour les prochaines versions, comme Symfony est amené à devenir le cœur de la solution :-).

En attendant voici donc un nouvel outil de console pour Prestashop.
Il est basé sur le composant console de Symfony2 et disponible sur mon compte github : https://github.com/nenes25/prestashop_console

Pour l’utiliser les prérequis sont les suivants :

  • accès ssh à votre hébergement
  • composer installé

Voici comment l’installer rapidement.

Edit : Utiliser plutôt le nouveau mode de fonctionnement : https://www.h-hennes.fr/blog/2016/09/19/prestahop-console-nouvelle-version/

Clonez le dépôt à la racine de votre site, ceci créera un dossier « PrestashopConsole »

git clone https://github.com/nenes25/prestashop_console.git PrestashopConsole

Rendez-vous dans le dossier et installer les composants avec composer

composer install

Puis vous pouvez lancer la console, et voir les commandes disponibles.

php console.php

Console Prestashop

C’est parti vous pouvez à présent utiliser la console.
Pour l’exemple voici comment lister les modules installé sur le site :

php console.php module:list

Le nombre de commandes est pour l’instant restreint, mais il évoluera au fur et à mesure.
N’hésitez pas à proposer vos propres commandes, je vais écrire rapidement un article sur comment contribuer au projet 🙂

 

10 réflexions sur “Console Prestashop”

  1. Bonjour,

    Merci pour cette console, je recehrche depuis longtemps ce type de script php parce que je dois faire l’installation automatiser de prestashop dans notre « build-system » (vagrant)

    Merci

    Yves

    1. Bonjour,
      Super si ca vous sert, en complément j’avais déjà fait également des scripts bash pour installer prestashop via CLI.
      En les adaptant il est possible d’industrialiser facilement l’installation de votre prestashop de base : http://www.h-hennes.fr/blog/2014/02/07/prestashop-installer-rapidement-une-version-de-developpement-avec-bash/

      J’ai déjà eut quelques contributions intéressantes au projet, et il y’a encore plein de sources d’optimisations 🙂

      Cordialement,
      Hervé

  2. Robertino Vasilescu

    Hi,
    A very handy tool which saved me a lot of trouble when the PS backoffice simply refused to install a module.
    Thanks for such a great job!
    Rho_bur

  3. Bonjour,
    Je partage puisque j’ai pas mal chercher a faire marcher la console dans un projet de prestashop 1.7, je voyais bien que dans le repertoire bin/ il ya la console mais quand j’essaye d’exécuter la commande
    Php bin/console

    Il me sort une erreur de droit je comprenais pas il a fallu au fichier bin/console de lui donner le droit nécessaire qui vont me permettre d’exécuter des commandes
    dont les droit qui fallu que je leur donne sont
    sudo chmod 775 bin/console
    ensuite
    sudo chown $USER:www-data bin/console

    Et maintenant je peux exécuter des commandes !

    1. Bonjour Sidi,

      Merci de votre retour,
      Comme évoqué dans l’article sur la nouvelle version dans le cas ou vous ne souhaitez pas ajouter de commandes à la console, il sera plus simple d’utiliser directement le phar.

      Cordialement,

  4. Bonjour Herve,

    Merci pour ce travail, par contre je rencontre des problèmes lors du lancement de la console.

    Je suis sous Prestashop 1.7.6.0 et php 7.2.11.
    Voici le message d’erreur que j’obtiens :
    Fatal error: Uncaught Error: Class ‘CreateCommand’ not found in F:\laragon\www\cookyah\PrestashopConsole\src\Hhennes\PrestashopConsole\PrestashopConsoleApplication.php:75
    Stack trace:
    #0 F:\laragon\www\cookyah\PrestashopConsole\console.php(37): Hhennes\PrestashopConsole\PrestashopConsoleApplication->getDeclaredCommands()
    #1 {main}
    thrown in F:\laragon\www\cookyah\PrestashopConsole\src\Hhennes\PrestashopConsole\PrestashopConsoleApplication.php on line 75

    Le problème ce situe sur cette ligne : $customCommands[] = new $commandName();

    Quand j’utilise la nouvelle version avec le fichier .phar j’obtiens exactement la même erreur. Pouvez-vous m’éclaircir sur ce qui ne fonctionne pas correctement svp ?

    Merci d’avance.
    Roamin

    1. Bonjour Romain,
      Je ne parvient pas à reproduire votre problème.
      De mon côté tout fonctionne bien avec le phar prestashop 1.7.6 et php 7.2 ( ma version est la 7.2.20 par contre )
      Avez-vous la possibilité de passer sur la dernière version de php 7.2 pour voir si cela corrige le problème ?
      Est-ce que vous lancer la console sous windows ?
      N’hésitez pas à ouvrir une issue directement sur github avec un maximum d’informations.

      Cordialement,
      Hervé

  5. Bonjour Hervé,

    Merci pour votre retour.

    J’ai tenté avec la même version php que vous sans succès.
    Je lance en effet la console depuis windows (cmder).

    Cordialement,
    Romain

    1. Bonjour Romain,
      Votre stack php est installé sous windows (wamp ou alternative ) ?
      Il est vrai que je n’ai pas testé ce cas car je l’utilise majoritairement sous linux ou avec le WSL sous windows.

      Cordialement,
      Hervé

  6. Bonjour Hervé,

    J’utilise laragon qui possède globalement le même fonctionnement qu’un wamp.

    La librairie PHP y ai déposée et installée. De plus PHP est défini dans le path de windows.

    Je regarderai à mon retour de congés pour tester cela au bureau sur notre serveur de développement. Et reviendrais vers vous à ce moment la (fin aout) si le problème persiste et si une correction a été trouvée.

    Merci encore pour votre temps et vos retours.

    Cordialement,
    Romain

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.