Jump to content

Problème avec le prix unitaire pour les prix spécifiques


Recommended Posts

Bonjour à tous,

Je travaille actuellement sur un projet sous Prestashop (version 8.0.4) avec PHP 8.0.3, où nous vendons des produits alimentaires. Pour ces produits, nous avons des prix publics et des prix professionnels, ces derniers étant des prix fixes, et non des réductions. J'ai créé un groupe client "Professionnels" et configuré des prix spécifiques pour chaque produit, distincts pour les professionnels et les particuliers.

Chaque produit doit afficher le prix au kilo. Pour cela, j'utilise le champ "Prix unitaire" dans l'onglet "Prix" de chaque fiche produit. Cependant, je rencontre un problème avec les prix spécifiques : il semble que je ne puisse pas modifier le prix unitaire en fonction du prix spécifique appliqué.

Avez-vous déjà été confronté à ce problème ? Si oui, quelle solution avez-vous adoptée ?

Merci d'avance pour votre aide !

Link to comment
Share on other sites

Merci pour votre réponse.

Voici un exemple concret pour illustrer mon besoin :

Supposons que je vende des pommes. Pour les particuliers, 500 grammes de pommes coûtent 5 €, ce qui revient à 10 € le kilo. Pour les professionnels, ce même produit est vendu à 4 € pour 500 grammes, soit 8 € le kilo.

Dans ce cas, le prix unitaire (prix au kilo) diffère selon le type de client, et c'est précisément cette variation que je souhaite refléter. Pour l’instant, il semble que Prestashop ne permet pas d’ajuster automatiquement le prix unitaire en fonction des prix spécifiques, ce qui pose problème pour l'affichage correct de cette information.

Link to comment
Share on other sites

Merci pour votre suggestion.

Le problème, c'est que je vends les pommes en plusieurs déclinaisons : par lot de 500 grammes, 1 kilo, et 1,5 kilo. Avec ces différentes unités de vente, il devient complexe de calculer et d'afficher le prix unitaire spécifique en fonction du groupe de clients.

L'affichage du prix au kilo doit donc s'adapter à chaque déclinaison et chaque groupe de clients, ce qui complique la mise en place d'un calcul automatique du prix unitaire pour les prix spécifiques.

Link to comment
Share on other sites

Pour l'instant, j'ai uniquement deux groupes de clients : un pour les particuliers (clients classiques de Prestashop) et un pour les professionnels (groupe créé spécifiquement). Cependant, il est possible que j'ajoute d'autres groupes à l'avenir.

Link to comment
Share on other sites

Et pourquoi plutôt ne pas faire avec la fonction native d'attribué au groupe "pro" une remise de l'ordre de 5% sur le prix TTC de base ? Ceci est une fonction native qui nécessite aucun développement, à voir si ça ce rapproche du prix que vous voulez mettre en place ?

Link to comment
Share on other sites

Il y a 2 heures, Lneoiry a dit :

Pour l'instant, j'ai uniquement deux groupes de clients : un pour les particuliers (clients classiques de Prestashop) et un pour les professionnels (groupe créé spécifiquement). Cependant, il est possible que j'ajoute d'autres groupes à l'avenir.

Si vous n'utilisez pas le champ reference ou mpn vous pouvez l'utiliser pour stocker le prix unitaire dedans et faire un test sur le groupe dans le template pour afficher priix unitaire de base ou le champ mp

Link to comment
Share on other sites

1 hour ago, dydy59 said:

Et pourquoi plutôt ne pas faire avec la fonction native d'attribué au groupe "pro" une remise de l'ordre de 5% sur le prix TTC de base ? Ceci est une fonction native qui nécessite aucun développement, à voir si ça ce rapproche du prix que vous voulez mettre en place ?

Merci Dydy59 pour votre réponse.

Effectivement, cette solution pourrait fonctionner, mais elle affiche le prix comme une réduction, ce qui ne correspond pas à la demande de mon client. L'objectif est d'afficher des prix fixes pour les professionnels, sans passer par un système de remise. C'est pourquoi je cherche une alternative qui permettrait de définir ces prix sans qu'ils soient perçus comme des réductions.

Link to comment
Share on other sites

15 minutes ago, Prestashop Addict said:

Si vous n'utilisez pas le champ reference ou mpn vous pouvez l'utiliser pour stocker le prix unitaire dedans et faire un test sur le groupe dans le template pour afficher priix unitaire de base ou le champ mp

Je pourrais effectivement utiliser ces champs, mais dans ces cas la, la solution la plus propre serait de créer un nouveau champ dédié dans les prix spécifiques pour stocker cette information de manière structurée. Cependant, je ne sais pas s'il existe un hook permettant d'ajouter un champ dans le formulaire des prix spécifiques.

Link to comment
Share on other sites

32 minutes ago, Lneoiry said:

Merci Dydy59 pour votre réponse.

Effectivement, cette solution pourrait fonctionner, mais elle affiche le prix comme une réduction, ce qui ne correspond pas à la demande de mon client. L'objectif est d'afficher des prix fixes pour les professionnels, sans passer par un système de remise. C'est pourquoi je cherche une alternative qui permettrait de définir ces prix sans qu'ils soient perçus comme des réductions.

Avec plaisir, dans ces cas là c'est un développement personnalisé qu'il faut faire, mais tout à fait réalisable, pour ce qui est des hooks voici une liste que j'ai trouvé sur le web Liste des variables smarty Prestashop 1.7.x et 8.x (comonsoft.com)

Link to comment
Share on other sites

il y a une heure, dydy59 a dit :

Avec plaisir, dans ces cas là c'est un développement personnalisé qu'il faut faire, mais tout à fait réalisable, pour ce qui est des hooks voici une liste que j'ai trouvé sur le web Liste des variables smarty Prestashop 1.7.x et 8.x (comonsoft.com)

He c'est pas la liste des hooks, mais des variables smarty 😉

Link to comment
Share on other sites

Merci à tous pour votre assistance. Si possible, j'aimerais laisser ce sujet ouvert au cas où quelqu'un aurait une autre idée ou suggestion.

J'ai exploré les hooks disponibles sans trouver celui qui pourrait m'aider. Si jamais quelqu'un connaît un hook approprié ou a une solution à proposer, je serais ravi de l'entendre. De mon côté, si je découvre quelque chose, je le partagerai également sur ce sujet.

Link to comment
Share on other sites

On 8/27/2024 at 4:21 PM, Prestashop Addict said:

He c'est pas la liste des hooks, mais des variables smarty 😉

Affirmatif, j'ai pas fais attention je sais pas pourquoi, bien vu ! lol

Link to comment
Share on other sites

Bonjour à tous,

Je souhaite faire remonter ce poste car j'ai enfin trouvé une solution à mon problème ! Comme je l'avais mentionné précédemment, j'avais besoin de gérer des prix spécifiques pour des groupes de clients distincts (particuliers et professionnels) et d'afficher un prix au kilo qui s'ajuste en fonction de ces prix spécifiques.

Voici la solution que j'ai mise en place :

  1. Ajout d'un champ personnalisé dans les déclinaisons : J'ai créé un champ supplémentaire dans les déclinaisons de produit, nommé pro_price_{$id_product_attribute}. Pour ce faire, j'ai utilisé le hook DisplayAdminProductsCombinationBottom afin d'ajouter ce champ dans l'interface des déclinaisons.
  2. Base de données : J'ai ajouté une nouvelle colonne dans la table {$db_prefix}_product_attribute que j'ai appelée pro_price. Cette colonne stocke le prix unitaire des déclinaisons pour les professionnels.
  3. Synchronisation avec la base de données : Pour synchroniser le champ de la déclinaison avec la base de données, j'ai modifié la classe Combination.php en utilisant un override.
  4. Gestion des mises à jour : J'ai utilisé le hook ActionProductAttributeUpdate pour récupérer les données du nouveau champ via Tools::getValue(). Ensuite, j'ai effectué une mise à jour de la base de données en utilisant une requête SQL pour stocker ces informations dans le champ pro_price.

Grâce à cette solution, je peux maintenant afficher et mettre à jour les prix au kilo spécifiques aux groupes de clients directement depuis l'interface d'administration de PrestaShop.

Je partage ici mon module en pièce jointe pour ceux qui pourraient rencontrer un problème similaire à l'avenir. :) 

Encore un grand merci à tous pour vos réponses et votre aide !

compositiondeclinaison.zip

  • Like 2
Link to comment
Share on other sites

17 hours ago, Lneoiry said:

Bonjour à tous,

Je souhaite faire remonter ce poste car j'ai enfin trouvé une solution à mon problème ! Comme je l'avais mentionné précédemment, j'avais besoin de gérer des prix spécifiques pour des groupes de clients distincts (particuliers et professionnels) et d'afficher un prix au kilo qui s'ajuste en fonction de ces prix spécifiques.

Voici la solution que j'ai mise en place :

  1. Ajout d'un champ personnalisé dans les déclinaisons : J'ai créé un champ supplémentaire dans les déclinaisons de produit, nommé pro_price_{$id_product_attribute}. Pour ce faire, j'ai utilisé le hook DisplayAdminProductsCombinationBottom afin d'ajouter ce champ dans l'interface des déclinaisons.
  2. Base de données : J'ai ajouté une nouvelle colonne dans la table {$db_prefix}_product_attribute que j'ai appelée pro_price. Cette colonne stocke le prix unitaire des déclinaisons pour les professionnels.
  3. Synchronisation avec la base de données : Pour synchroniser le champ de la déclinaison avec la base de données, j'ai modifié la classe Combination.php en utilisant un override.
  4. Gestion des mises à jour : J'ai utilisé le hook ActionProductAttributeUpdate pour récupérer les données du nouveau champ via Tools::getValue(). Ensuite, j'ai effectué une mise à jour de la base de données en utilisant une requête SQL pour stocker ces informations dans le champ pro_price.

Grâce à cette solution, je peux maintenant afficher et mettre à jour les prix au kilo spécifiques aux groupes de clients directement depuis l'interface d'administration de PrestaShop.

Je partage ici mon module en pièce jointe pour ceux qui pourraient rencontrer un problème similaire à l'avenir. :) 

Encore un grand merci à tous pour vos réponses et votre aide !

compositiondeclinaison.zip 5.48 kB · 0 downloads

Bonjour @Lneoiry, merci d'avoir répondu avec ta solution, qui peut comme tu l'as dis sûrement aidé quelqu'un, même dans un cas avec un prix spécial salariés par exemple, ça peut fonctionner aussi, bravo pour ce module et merci à toi. :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...