Jump to content

Calcul points de fidélités


astragor

Recommended Posts

Bonjour, je m'intéresse depuis quelques temps de près au programme de fidélité, cependant je trouve le calcul pas très logique.

En effet, je souhaite faire en sorte que pour 10€ d'achat le client ai 1 point de fidélité.

Le problème c'est que parfois le client me commande pour 30€ ou plus et ce retrouve à 0 voir 1 point de fidélité.

En regardant de plus près j'ai compris d'où venait la faille : les points sont calculés sur chacun des articles.
Ainsi un article qui vaut 10 € rapporte 1 point.
Par contre si mon client achète 2 articles qui valent chacun 5€ il n'a aucun point.

La solution me direz vous, je la connais : c'est de dire 1€ d'achat = 1 point et ensuite de diviser par 10 le taux de conversion tout simplement !

Mais je tenais quand même à le signaler car celon moi il serait plus juste que les points soit calculés sur le total de la facture et non sur chaque article !

Voila si un dev passe par là ?

Link to comment
Share on other sites

Salut Astragor,

Je fais des tests sur cette fonction également, et ton post m'a intrigué. Je n'avais compris également que l'obtention des points était attribués par paliers.

Si le même dev passe par là (ou la PrestaTeam), j'apporte également ma pierre à l'édifice :

Je paramètre mon programme de fidélité de la même manière qu'astragor (10€ = 1pt ; 1pt = 1€).
Tous mes tests, se font avec un achat par chèque, sans frais de port, et avec une TVA à 19,6€.

Cas n°1 :
J'achète pour 135€ de marchandises (3x45€), mais 12 points me sont accordés (au lieu de 13).
Ensuite je convertis mes points en bon de réduction d'une valeur de 12€ (normal).
Je passe ensuite ma commande en statut remboursé en réinjectant les stocks, 13 points me sont retirés (je me retrouve maintenant avec -1 point de fidélité), et un bon de réduction de 12€ désactivé.

Dans ce cas, je pense que l'algo de suppression de points en cas d'annulation est correct, mais il doit y avoir un bug dans celui d'obtention qui aurait du mettre 13 points au lieu de 12. Je serai retombé à zero point de fidélité.


Cas n°2 :
J'achète pour 135€ de marchandises (3x45€), 12 points me sont accordés (au lieu de 13).
Je passe ensuite ma commande en statut annulée, rien ne se passe.
Je réinjecte une pièce sur trois dans le stock, et 13 points me sont retirés (je reviens à -1 point au total).


Cas n°3 :
J'achète deux pièces à 40€. 8 points me sont accordés dès que la commande passe en statut livré.
Si la commande passe en suite en statut annulé, les 8 points sont retirés.
Si en plus de cela, les 2 pièces sont réinjectées dans le stock, 7 points de plus sont retirés (si je suis la logique jusqu'au bout, pourquoi pas 8 ?).
Total : -7 points pour le client

Si on met de côté le bug sur l'attribution des points, le système est cohérent:
Si on gère ses stocks aux petits oignons, et que l'on pense bien à réinjecter les produits retournés, ne jamais passer la commande en statut annulé, mais en statut remboursée (histoire de ne pas débiter deux fois).
Si les stocks n'ont pas d'importance, passez la commande en statut annulée. Cela débitera les points du client de manière cohérente.

En attendant, qu'une solution soit trouvé, je vais commenter la ligne 493 de loyalty.php pour l'empêcher de débiter les points sur la reinjection. Le statut de la commande suffira.

Hope it's help !

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...