Surcharge prestashop : comment et pourquoi ?

Ceux qui pratiquent Prestashop depuis longtemps savent à quel point il était pénible de devoir modifier le code directement dans le coeur. Heureusement, depuis la version 1.4, il est maintenant possible de créer une surcharge Prestashop. Voyons cela ensemble.

Définition d’une surcharge Prestashop

Une surcharge est un fichier qui va venir se greffer à Prestashop et compléter voir même remplacer les fonctions natives de ce dernier. Lorsque vous créez une surcharge Prestashop, elle est détectée et est traitée en priorité par rapport à l’élément qu’elle surcharge. Vous pouvez donc tranquillement faire vos modifications sans renoncer aux éventuelles mises à jour de Prestashop.

Utilité des surcharges Prestashop

Tout d’abord, il faut savoir que vous pouvez créer des surcharges de classes, de contrôleurs, mais également de modules.

Pour ces derniers, sachez toutefois que votre surcharge ne pourra se substituer qu’aux fichiers JS, CSS ou TPL de votre module de base. Pourquoi pas les fichiers PHP me direz vous. Je vous répondrai que nous sommes déjà au sein d’une architecture modulaire et que surcharger les fichiers PHP d’un module serait quelque peu inutile. Pourquoi ne pas surcharger les surcharges aussi ?!?

Comment créer une surcharge Prestashop

Créer une surcharge de classes ou de contrôleurs Prestashop

J’ai récemment eu besoin de créer une surcharge de la classe SpecificPrice pour un client de l’agence.

J’ai donc placé dans le dossier « override/classes/ » un fichier nommé SpecificPrice.php et j’ai modifié la déclaration de la classe ainsi :

<?php
class SpecificPriceCore extends ObjectModel {
}

devient

<?php
class SpecificPrice extends SpecificPriceCore {
}

Le contenu de notre surcharge dépendra bien sûr des fonctions que vous souhaitez ajouter ou modifier.

Créer une surcharge de module Prestashop

Si vous souhaitez modifier les fichiers TPL, CSS ou JS d’un module, il vous suffira de dupliquer ces fichiers dans votre thème suivant le modèle suivant.

Les surcharges des CSS se placeront dans « themes/le-nom-de-mon-theme/css/mon-module/

Les surcharges des JS se placeront dans « themes/le-nom-de-mon-theme/js/mon-module/

Conclusion

L’utilisation de surcharge est devenue incontournable depuis qu’elle est possible. Comme vous l’avez vu, la mise en place de surcharge est assez simple mais il existe quelques limitations. N’hésitez pas à faire appel à des professionnels qui sauront vous conseiller et prendre en charge des tâches comme le développement qui ne font pas forcément partie de vos compétences.