Suche nach Mustern / Best Practices für die Berechnung komplexer Rabatte [geschlossen]

8

Ich entwickle eine Preisberechnungs-Engine. Ich habe überall nachgesehen und es gibt nichts, was wirklich passt, was wir brauchen. Jetzt suche ich jedoch, wie man spezifische Preise und / oder Rabatte einführt. Ich möchte meinen Endbenutzern keine regelbasierte Engine vorstellen, da sie diese nicht erhalten.

Wenn Sie beispielsweise ein ItemX bestellen, beträgt der Preis 30 €. Aber in Kombination mit ItemY beträgt der Preis von ItemX $ 20. Oder wenn Sie fünf von ItemX bestellen, dann werden es jeweils nur 15 $ sein.

Haben Sie Ideen, wo Sie anfangen sollen? Wie nehme ich das an? Vielleicht einige (Open Source) Beispielanwendungen, die solche Praktiken enthalten? Irgendwelche (technischen) Muster könnte ich verwenden? Vorzugsweise in C #. Vielen Dank im Voraus!

    
Dennis van der Stelt 03.02.2010, 21:30
quelle

4 Antworten

4

Beschäftigt sich mit einer ähnlichen Situation und finde das Decorator-Muster als eine gute Option.

Ссылка

Check out: Ссылка

Prost

Überprüfen Sie auch, ob es sich um ein stratartiges Muster handelt, das ich für die Implementierung von Rabatten verwende: Rabatt-Strategie in Einkaufswagen und Bestellungen

    
Chev 13.02.2010, 11:21
quelle
4

Es gibt viele Möglichkeiten, dies zu erreichen, aber ich denke, diejenige, die für Sie am nützlichsten ist, würde eine DSL definieren, mit der Sie Ihre Rabatte so ausdrücken können, dass sie leicht erklärt und rationalisiert werden können mit Geschäftsnutzern. Ein Beispiel aus einem der Artikel von ayende über DSLs in boo ist:

%Vor%

Wie Sie sehen, können Sie sehen, dass Sie so etwas ausdrucken und einem Kunden zeigen können. Sie werden sofort verstehen, was vor sich geht.

Natürlich ist die Entwicklung von so etwas zeitaufwendig, teuer und voll von funkigen Edge Cases. Es hat jedoch den Vorteil, Code zu sein, der getestet, ausgeführt und debuggt werden kann.

Wenn boo nicht dein Ding ist, dann könntest du vielleicht etwas ähnliches in Ironruby, Ironpython oder F # definieren. Ich würde jedoch vorschlagen, von XML weg zu bleiben, um diese Regeln zu definieren, es sei denn, Sie genießen wirklich eine Welt der Schmerzen.

Dies ist jedoch die Art von Dingen, für die Produkte wie Biztalk entwickelt wurden. Welche Regelwerke haben Sie evaluiert und gefunden, die fehlen?

    
jonnii 03.02.2010 21:38
quelle
3

Wir verwenden eine Rule Engine für diese Art komplexer Berechnungen. Unsere Plattform ist Java und wir benutzen Drools (mit denen wir zufrieden sind). Drools ist auch für .Net verfügbar. Hier ist eine Liste von Open-Source Regel-Engines für .NET .

    
Eric J. 03.02.2010 21:38
quelle
2

Es tut mir leid, dass ich das sagen muss, aber es scheint, als müssten Sie eine Preisfindungsregel anwenden, um zu erreichen, was Sie suchen .

Es sieht so aus, als müssten Sie

  • Speichern Sie die verfügbaren Elemente und deren Rabatte pro Kauf.
  • Speichern Sie die Artikel in Kombination würden sich gegenseitig abzählen.
  • Vielleicht auch an per denken Einheit / Menge pro Einheit gekauft, oder vielleicht pro Paket / Spezial.
  • Ich möchte vielleicht einen Blick darauf werfen archivieren / speichern von diesen Specials / Pakete, nur in der Kunde wünscht einen Nachdruck der Originalrechnung .

Im Allgemeinen gibt es viele mögliche Regeln / Kombinationen, an die gedacht werden kann, und Sie als Entwickler können diese implementieren und sie vor dem Benutzer verbergen oder dem Benutzer erlauben, sie zu erstellen, aber jemand muss es tun so .

Und dann, wenn Sie nicht Lust haben, Ihre eigenen zu implementieren, bietet GOOGLE einige:

Open Source Rule Engines

    
Adriaan Stander 03.02.2010 21:33
quelle

Tags und Links