J'ai eu besoin de pouvoir afficher le prix au kilo sur certains produits afin d'être conforme à la législation.
J'ai cherché et n'ai rien trouvé. Je vous livre donc ma solution. Je l'ai étendue pour afficher un prix au litre ou autre.
Il est impossible avec la conception actuelle de Prestashop d'en faire un module. Donc il va falloir attaquer le code source. Les modifs à faire sont simples, et ne touchent pas au code sensible.
Comment ça marche ?
On se base sur le prix (jusque là, ça va) et sur le poids logistique renseigné dans la fiche produit.
On divise l'un par l'autre et on a ce qu'on voulait.
La manip est faite pour être compatible avec les attributs (et leur modifs de prix et poids) et, petit bonus, le prix au kilo change bien quand on change de déclinaison.
L'affichage n'a lieu que sur la fiche produit.
Prérequis :
Vous n'utilisez pas vraiment le poids des commandes pour calculer les fdp :
* Le poids renseigné dans les fiches produits est le vrai poids (et non le poids logistique ie avec emballage...)
* Je la refais : le poids renseigné dans les fiches produits est le poids net (et non le poids brut)
* Pour les autres unités, la valeur renseignée dans les fiches produits est nette et est "la bonne en unité" : par exemple, une bouteille de vin de 75cl, vous renseignez dans le champs poids la valeur 0.75 ; ainsi vous afficherez un prix au litre.
Et quelle version de Prestashop ?
Ceci est valable pour la 1.3.0.5 (ie 1.3.0 RC2).
Valable aussi pour la 1.2.5 (testé par Gilbert).
Vous devez refaire la manip après chaque mise à jour, puisque vous écraserez les fichiers modifiés.
Instruction d'installation :
Téléchargez le diff en pièce jointe du message et appliquez ça.
Si ça ne vous parle pas, c'est pas compliqué, vous ouvrez ça avec votre éditeur de texte, et vous ajoutez les lignes commençant par un + aux bons endroits (en enlevant le +) et quand il y a un - (un moins) vous enlevez la ligne.
Exemple :
Le diff :
diff --git a/themes/prestashop/css/global.css b/themes/prestashop/css/global.css
index d117840..50477bd 100644
--- a/themes/prestashop/css/global.css
+++ b/themes/prestashop/css/global.css
@@ -2250,3 +2250,9 @@ A
B
+ligne_entre_B_et_C
C
D
-E
+nouveau_E
F
G
Vous trouvez les lignes A et B et C et D, et entre B et C vous ajouter le bloc où il y a les + (en les enlevant).
Pour la deuxième partie, c'est pareil, mais vous enlevez d'abord la ligne ou il y a le moins.
Pour les avertis vous faites dans la racine de votre install prestashop : patch < priceweight.diff
Dans le BO :
Il vous faut créer deux caractéristiques :
* special_priceweight avec comme valeur possible : 1
* special_priceweight_unit avec comme valeurs possibles kg, L, et/ou vos autres unités (celui là est optionnel, s'il n'existe pas ou n'est pas affecté à la fiche produit, "kg" sera utilisé)
Ces deux "caract spéciales" ne seront pas affichées sur la fiche produit.
Activer le prix au kilo sur la fiche produit :
* On renseigne le poids sur la fiche produit ainsi que les éventuelles modifications de poids des déclinaisons*.
* On place la caractéristique "special_priceweight" à "1".
* Si nécessaire, on choisit l'unité à afficher avec special_priceweight_unit.
*Exemple (à la con) pour les déclinaisons : Vous vendez des biscuits, vous avez deux déclinaisons : paquet de 100g (par défaut) et paquet de 200g.
* Vous créez la déclinaison "conditionnement" avec comme attribut "Paquet de 100g" et "Paquet de 200g" (si ce n'est pas déjà fait)
* Vous créez une fiche produit en spécifiant sur la fiche principale les valeurs de la décl par défaut le prix, disons 5€, et le poids 0.1 (=100g).
* Vous ajouter la décl Paquet de 100g, aucune modif prix, aucune modif poids.
* Vous ajouter la décl Paquet de 200g, modif prix +3€, modif poids +0.1.
Vous aurez ainsi : Paquet de 100g, 5€, 50€/kg et Paquet de 200g, 8€, 40€/kg.
(rem : on peut aussi faire 0€, 0kg sur la fiche principale et faire les modifs en +prix et +poids, plutôt que faire des différences alambiquées)
Précautions
Comme d'hab, utilisez ça à vos risques et périls, blablabla, testez avant sur une version qui n'est pas en production, blablabla, je ne saurez être tenu pour responsable de tout préjudice subi suite à l'application de ce patch.
Licence
Copyright moi. Vous êtes libre d'utiliser et d'améliorer, à la condition de le signaler et de partager vos améliorations dans ce post (partage dans les mêmes conditions). Sinon, je saurais vous retrouver :vampire:
À vous...
...de jouer !
Et de partager.
--
Historique
* v1 :
** Release initiale, pour tests.
* v2 :
** Correction mineures (NOTICE & cas où le poids renseigné vaut 0)
** Prise en compte de special_priceweight comme modifieur (pour par exemple afficher un prix par 100g tout en ayant un vrai poids en kilo dans la fiche produit (dans ce cas, on met 0.1 dans special_priceweight))
* v3 :
** 2 Corrections majeures.
--
Un fichier zip avec les fichiers modifiés prêts pour la 1.2.5 se trouve plus loin dans le topic. Lisez le topic pour comprendre les implications de vos changements.
--
PS: info pour moi :
v1 : commit f66bfc522aad2a7623e757eabaff447c7fe48a0c.
v2 : commit 898352ea829e58680196a6d0ecee43f9a3426645.
v3 : commit 43832d14322cd9d4897fb2efe9602bbe62566fe7.





Back to top









