développement

Quelques notes pour répondre à des problématiques rencontrées au travail.

PrestaShop 1.6 : ajouter des champs aux produits

Surcharger la classe Product en créant le fichier override/classes/Product.php. Ici, on ajoute un champ max_quantity destiné à contenir un nombre entier positif. Pour connaître les autres types de champs, s’inspirer du tableau $definition de la classe parente.

class Product extends ProductCore
{
    public $max_quantity;

    public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null)
    {
        self::$definition['fields']['max_quantity'] = array(
            'type' => self::TYPE_INT,
            'validate' => 'isUnsignedInt',
        );

        parent::__construct($id_product, $id_lang, $id_shop);
    }
}

Dans la base de données, ajouter la colonne correspondante à la table ps_product, en s’inspirant des colonnes déjà présentes :

ALTER TABLE ps_product ADD max_quantity INT(10) NOT NULL DEFAULT 0;

Supprimer le cache des surcharges de classes :

rm cache/class_index.php

Enfin, surcharger le template d’administration, par exemple admin0945u2qra/themes/default/template/controllers/products/informations.tpl, le placer dans override/controllers/admin/templates/products/informations.tpl et l’éditer pour rajouter le champ en s’inspirant des champs déjà présents.

Publié le 09/01/2018
dans la catégorie développement.

Tags : prestashop

Commentaires

Poster un commentaire

Votre adresse e-mail ne sera pas affichée sur le site.