Archives de octobre, 2017

Prestashop 1.7 : Ajouter des champs produit

La nouvelle version 1.7 de Prestashop introduit de gros changements dans la gestion backoffice des fiches produits.
Cette page utilise les nouvelles méthodes symfony et tout les modules souhaitant ajouter des informations produits doivent se mettre à jour pour utiliser les nouvelles méthodes.
Comme d’habitude la documentation prestashop n’est pas exhaustive et je n’ai à date trouvé aucune information ni tutoriel sur le sujet.

Nous allons donc voir ensemble comment rajouter des nouveaux champs produits et les gérer dans l’administration avec Prestashop 1.7
Pour cela nous allons créer un module hhproduct.

Celui-ci ajoutera des nouveaux champs à notre entité produit.

  • custom_field
  • custom_field_lang
  • custom_field_lang_wysiwyg

Nous allons donc de surcharger l’objet Product afin de lui ajouter ces nouveaux champs.
Pour cela créer un fichier Product.php avec le contenu suivant dans le dossier override/classes du module.

lors de l’installation du module ce fichier sera automatiquement placé dans le dossier des overrides par Prestashop.
Contrairement aux autres formulaires Prestashop les hooks spécifiques d’ajout produit sont situés dans un fichier twig,s situé sur le chemin suivant :
src/PrestaShopBundle/Resources/views/Admin/Product/form.html.twig

Les hooks disponibles sont les suivants :

  • displayAdminProductsExtra
  • displayAdminProductsMainStepLeftColumnMiddle
  • displayAdminProductsMainStepLeftColumnBottom
  • displayAdminProductsMainStepRightColumnBottom
  • displayAdminProductsQuantitiesStepBottom
  • displayAdminProductsPriceStepBottom
  • displayAdminProductsOptionsStepTop
  • displayAdminProductsOptionsStepBottom
  • displayAdminProductsSeoStepBottom ( dans le fichier src/PrestaShopBundle/Resources/views/Admin/Product/Include/form_seo.html.twig )

Vous pouvez voir leurs emplacements sur les captures ci-dessous.…

102 commentaires

Prestashop 1.7 : Ajouter des champs clients

La version 1.7 de prestashop apporte des changements dans la gestion des champs clients.
Cet article est une mise à jour avec  des articles suivants  qui ne fonctionnent donc plus sur prestashop 1.7

Le but de ce tutoriel va d’être d’ajouter 2 nouveaux champs à l’entité client :

  • professionnal_id => champ standard qui sera un input text
  • justificatif => champ de type file

Vous trouverez l’ensemble du code en fin d’article.

Nous allons voir la base du module qui s’appellera hhcustomer et son fonctionnement global.

Pour commencer voici le code d’initialisation, d’installation / désinstallation du module.

class HhCustomer extends Module {
 
    public function __construct() {
 
        $this->name = 'hhcustomer';
        $this->tab = 'others';
        $this->author = 'hhennes';
        $this->version = '0.1.0';
        $this->need_instance = 0;
        $this->bootstrap = true;
 
        parent::__construct();
 
        $this->displayName = $this->l('hhcustomer');
        $this->description = $this->l('add new fields to customer');
        $this->ps_versions_compliancy = array('min' => '1.7.1', 'max' => _PS_VERSION_);
    }
 
    /**
     * Installation du module
     * @return boolean
     */
    public function install() {
        if (!
57 commentaires

Prestashop 1.7 : Créer un module de paiement

La version 1.7 de prestashop introduit des changements dans la création des modules de paiement.
De mon point de vue cela simplifie vraiment la création de modules de paiement qui deviennent faciles et rapides à coder 🙂

C’est parti pour voir cela en détails et en exemple  via la création d’un module de paiement hhPayment.

use PrestaShop\PrestaShop\Core\Payment\PaymentOption;
 
if (!defined('_PS_VERSION_')) {
    exit;
}
 
class HhPayment extends PaymentModule
{
 
    public function __construct()
    {
        $this->author    = 'hhennes';
        $this->name      = 'hhpayment';
        $this->tab       = 'payment_gateways';
        $this->version   = '0.1.0';
        $this->bootstrap = true;
        parent::__construct();
 
        $this->displayName = $this->l('HH Payment');
        $this->description = $this->l('HH sample Payment for PS 1.7');
    }
 
    public function install()
    {
        if (!parent::install() 
            || !
27 commentaires


Compte Github