Accueil » Conseils & tutoriels sites internet » Tutos Prestashop » Cinq modifications Prestashop utiles

Cinq modifications Prestashop utiles

Posté dans : Tutos Prestashop 0

Afin de débloquer une situation problématique, de se débarrasser d’un bug inconvenant, ou dans le but d’optimiser la gestion de son site, voici cinq astuces qui vous permettront de vous sortir de l’embarras ou d’optimiser votre gestion.

1/ Autoriser la suppression de commandes

Rendez-vous sur votre FTP, et éditez le fichier /controllers/admin/AdminOrdersController.php

Juste en-dessous de la ligne 54, ajoutez ceci :

$this->addRowAction('delete');

Idéalement, placez ce fichier dans le dossier /override/controllers/admin

Rendez-vous dans votre back-office, au niveau de la page de gestion des commandes, la modification devrait être immédiate.

2/ Simuler une version inférieure de Prestashop par rapport à celle actuelle

Si, pour une raison ou une autre, vous souhaitez faire croire à Prestashop que la version utilisée est inférieure à la réalité (par exemple dans le cas où vous souhaiteriez forcer une mise à jour déjà effectuée), voici la manipulation :

Editez le fichier /config/settings.inc.php

Repérez la ligne suivante et modifiez-en la valeur :

if (!defined('_PS_VERSION_'))
define('_PS_VERSION_', '1.6.1.6');

En fonction de votre version de Prestashop il est probable que vous deviez vous reconnecter.
Comme vous avez stipulé à Prestashop que la version est antérieure à celle utilisée, vous devriez être en mesure de réeffectuer une mise à jour.
Attention cependant, cette manipulation n’est à effectuer qu’en développement en premier lieu, et pensez systématiquement à faire des sauvegardes de votre site.

3/ Attribuez tous les produits à une catégorie précise

Tout d’abord, repérez bien l’id catégorie, visible soit dans l’onglet « Catalogue » puis « Catégories », soit directement dans la base de données dans la table ps_category ou ps_category_lang.

Voici la requête à envoyer, où j’utilise l’id_category 2 (correspondant à la catégorie Accueil)

INSERT INTO `ps_category_product`(`id_category`, `id_product`, `position`) 
SELECT 2, `id_product`, 0
FROM `ps_product`
WHERE 1=1

Tous les produits sont donc désormais associés à la plus haute des catégories, ce qui permet d’afficher de manière aléatoire n’importe quel produit sur la page d’accueil.

4/ Résoudre le souci de prix aléatoire à 0 sur certains produits

Ce souci m’est arrivé deux fois sur des mises à jour, de Prestashop 1.4 ou 1.5 vers 1.6. Il s’agit davantage d’un « pansement » stable qui résout un problème d’affichage.

Ajoutez ceci dans un override de la class ProductCore ligne 4272 (sur Prestashop 1.6)

//Debug price
$idproduct = $row['id_product'];
$debugPrice = Product::getProductPriceDebug($idproduct);
$row['debugprice'] = $debugPrice;
if (isset(self::$producPropertiesCache[$cache_key])) {
return array_merge($row, self::$producPropertiesCache[$cache_key]);
}

Et tout en bas, ajoutez cette méthode que nous venons d’appeler :

public static function getProductPriceDebug($id_product){
$sql = '
SELECT price from `'._DB_PREFIX_.'product` 
WHERE id_product="'.$id_product.'"
';
$result = Db::getInstance()->getValue($sql);
return $result;
}

Pour finir, dans le fichier product.tpl, j’ai trouvé puis mis en commentaires le prix initial, qui retournait des erreurs. Servez-vous de l’inspecteur de code pour trouver quel est sur votre thème la balise à cibler.

Puis j’ai ajouté cette ligne juste en-dessous :

<span itemprop="price" class="price product-price">{math|string_format:"%.2f" equation="DebugPrice + DebugPrice * 20 / 100" DebugPrice=$product.debugprice} € TTC</span>

Ici $product.debugprice est le prix HT, donc le prix TTC est calculé grâce à math equation, directement en smarty.

Le résultat affiche bien le prix TTC, le prix HT étant directement accessible. Pour la gestion des taxes et de la devise, il vous faudra ajouter des informations en Smarty, qui peuvent bien évidemment être mises dans le calcul math equation.

En règle générale ce bug survient à cause d’une mise à jour incomplète, je vous conseille donc de suivre ce tutoriel afin d’obtenir un Prestashop propre et neuf, en conservant toutes vos données.

5/ Trouver le dossier FTP d’un module depuis le back-office

Cette astuce est plutôt simple, mais encore fallait-il y penser !

Dans la liste des modules dans votre back-office, trouvez celui dont vous voulez trouver le dossier sur le FTP.

Inspectez l’image, vous disposerez du chemin vers celle-ci, qui se trouve systématiquement dans le dossier du module ! Vous n’aurez plus qu’à remonter jusqu’au bon répertoire 🙂

Imprimer Imprimer
Suivre Cyssoo:

Développeur - formateur

Je cherche à display errors le monde, vous auriez pas la doc' ? Follow me on Twitter !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.