Exemple d’override pour Prestashop
Ce message se veut être un complément au billet de Webbax
J’ai eu à travailler sur l’override de Prestashop. Ce n’est pas compliqué, en tout cas beaucoup plus simple que de modifier les fichiers “coeurs” de Prestashop et si c’est bien fait beaucoup plus stable.
Le but était de rajouter trois Hooks génériques : un pour l’ajout d’un Objet (produit, fabriquant, bon de réduction…), un pour sa mise à jour et un pour sa suppression.
Dans les versions 1.3 et précédentes j’aurais dû modifier le fichier classes/ObjectModel.php qui est un peu complexe et faire une version pour chaque version de Prestashop.
Mais là que du bonheur, il faut créer un fichier override/classes/ObjectModel.php comme ci-dessous :
class ObjectModel extends ObjectModelCore
{
public function add($autodate = true, $nullValues = false)
{
$result = parent::add($autodate, $nullValues);
if ($result) Module::hookExec('objectAdd', array('object' => $this));
return $result;
}
public function update($autodate = true, $nullValues = false)
{
$result = parent::update($autodate, $nullValues);
if ($result) Module::hookExec('objectUpdate', array('object' => $this));
return $result;
}
public function delete($autodate = true, $nullValues = false)
{
$result = parent::delete($autodate, $nullValues);
if ($result) Module::hookExec('objectDelete', array('object' => $this));
return $result;
}
}
C’est petit hein ?
Le principe est simple, pour chaque méthode (add(), update() et delete() ), on laisse l’objet parent faire son travail ( parent::add() ) et en fonction du résultat on appelle ou non le hook.
Ainsi on a pas touché au coeur de Prestashop, le fichier ajouté est simple et facile à maintenir et surtout il sera compatible avec les futures version de Prestashop.
Module Prestashop : Bon de réduction sur commentaire
Une étude de l’agence Chadwick Martin Bailey menée sur 1500 personnes aux Etats-Unis a mis en évidence qu’une personne sur cinq a comme premier critère de choix les avis des internautes.
Il est donc très important d’avoir des commentaires sur vos produits pour inciter les visiteurs à commander chez vous.
Ce module motive les utilisateurs à commenter et discuter sur vos produits en leur créant un bon de réduction à chaque fois qu’un de leurs commentaires est validé.
Vous pouvez définir tous les détails du bon de réduction à créer ainsi que les conditions de création :
- Taille minimal du message,
- nombre minimum de commande
- Groupe du client,
- Exclure des produits individuellement,
- Exclure des clients individuellement
De plus ce module affiche en page d’accueil de l’administration les commentaires à valider.
Module Prestashop : Mise à jour facile de Prestashop
La mise à jour de Prestashop est un processus long et dangereux. En cas d’erreur vous pouvez perdre toutes vos données ou votre boutique peut être inutilisable.
Ce module vous permet de mettre à jour facilement et en toute sécurité Prestashop en un seul clic.
Le processus de mise à jour dure normalement moins de 5 minutes.
Démonstration vidéo en temps réel
Les fichiers et bases de données sont sauvegardés avant toute modification, donc si quelque chose se passe mal, tout est automatiquement restauré.
Le module PrestaShop Easy Update vous apporte la sécurité de conserver vos données facilement.
Démonstration vidéo de restauration des données en temps réel
Pour que la mise à jour fonctionne vous devez avoir assez d’espace disque sur votre serveur pour la sauvegarde de vos fichiers et de votre base de donnée ainsi que de l’archive de la mise à jour. De plus vos fichiers doivent être accessible en écriture par PHP, puisqu’ils seront remplacés pour la plupart.
Module Prestashop : Réduction multiples
Ce module permet de créer des réductions en fonction de nombreux critères : Le produit, son fabriquant, sa catégorie, le groupe du client et bien sur la date.
Vous pouvez avoir autant de combinaisons que vous le souhaitez.
Par exemple vous pouvez appliquer une réduction de 5% sur toute votre boutique pour les clients du groupe “Bon clients” ou alors juste sur la catégorie “Accessoires”.
Les autres clients ne verront pas la réduction.