8
votes

À la recherche de modèles / meilleures pratiques pour calculer des rabais complexes

Je développe un moteur de calcul de prix. J'ai regardé partout et il n'y a rien qui correspond vraiment à ce dont nous avons besoin. Cependant, je cherche maintenant à mettre en œuvre des prix et / ou des rabais spécifiques. Je ne veux pas introduire un moteur basé sur des règles à mes utilisateurs finaux, car ils ne l'obteniront pas.

Par exemple, lorsque vous commandez un itemx, le prix est de 30 $. Mais en combinaison avec l'article, le prix de l'itemx est de 20 $. Ou lors de la commande cinq de l'itemx, chacun après ce sera seulement 15 $.

Des idées sur où commencer? Comment prendre cela? Peut-être des exemples d'applications (open source) contenant des pratiques comme celles-ci? Des modèles (techniques) que je pourrais utiliser? De préférence en C #. Merci d'avance!


0 commentaires

3 Réponses :


2
votes

Je suis désolé de devoir dire cela, mais cela semblerait que vous devriez appliquer un moteur de règle de prix pour aller faire ce que vous êtes après .

semblerait comme si vous avez à

  • stocker les articles disponibles et leur réductions sur PRUCHASE.
  • magasin quels articles en combinaison se conduirait les uns les autres.
  • aussi peut-être penser à unité / quantité achetée par unité ou peut-être par paquet / spécial.
  • peut vouloir regarder garder un Archives / Stockage de ces Promotions / forfaits, en cas de Le client veut une réimpression du Facture originale .

    En général, il y a beaucoup de règles / combinaisons possibles pouvant être pensées, et vous pouvez les mettre en œuvre et les masquer de l'utilisateur, ou permettre à l'utilisateur de les créer, mais quelqu'un doit faire Donc .

    Et puis, lorsque vous n'avez pas envie de mettre en œuvre votre propre, Google Shold fournit certains:

    Moteurs de règles open source


0 commentaires

4
votes

Il y a beaucoup de façons que vous pouvez y parvenir, mais je pense que celui qui pourrait être le plus utile pour vous serait de définir une DSL que vous pouvez utiliser pour exprimer vos réductions de manière à ce qu'ils puissent être facilement expliqués et rationalisés. avec des utilisateurs professionnels. Un exemple de l'un des AyENDEE sur DSLS à BOO est: < pré> xxx

Comme vous pouvez le voir, vous pouvez voir, c'est le genre de chose que vous pouvez imprimer et montrer à un client et il comprendra immédiatement ce qui se passe.

de Bien sûr, développez quelque chose comme celui-ci prend du temps, coûteux et semés avec des cas de bord funky. Cependant, il bénéficie d'un code pouvant être testé unitaire, exécuté et débogué.

Si BOO n'est pas votre chose, vous pourriez peut-être regarder quelque chose de similaire dans ironRuby, IronPython ou F #. Je suggérerai cependant de rester loin de XML pour définir ces règles à moins que vous ne profitiez vraiment d'un monde de douleur.

C'est cependant le genre de chose que des produits comme BizTalk ont ​​été conçus pour gérer. Les moteurs de règles avez-vous évalués et trouvés manquants?


1 commentaires

Je pense que l'option DSL est la meilleure, je ne veux pas donner à mon client cela. Ils ne comprennent pas cela, feront des erreurs et je n'ai pas le temps de mettre en œuvre les exceptions, car il y aura beaucoup !!! Mais merci quand même, peut-être que je vais examiner quelque temps.



3
votes

Nous utilisons un moteur de règles pour ce type de calcul complexe. Notre plate-forme est Java et nous utilisons des bourses (dont nous sommes satisfaits). Drools est également disponible pour .NET. Voici une liste d'open source Règles moteurs pour .NET .


0 commentaires