Pricing Logic Implementation

Get Started. It's Free
or sign up with your email address
Pricing Logic Implementation by Mind Map: Pricing Logic Implementation

1. Enable Reasoning on all Recommendations

1.1. Create some sort of console to repeat the steps for calculator with "snapshotted" inputs for the recommendation.

1.2. Enable tracing for all automated steps/decisions for a given recommendation, including rouding (Observer)

2. Make it reasonable to implement and test changes that are required.

2.1. Make the Calculator Pure

2.1.1. Refine the inputs for the process

2.1.1.1. Extract interface for different inputs depending on who needs them

2.1.1.2. Make sure PricingRecommendationArguments implement those interfaces.

2.1.1.3. Break up PricingRecommendationArguments class or remove it entirely.

2.1.1.3.1. ProductPrice -> IProductPrice

2.1.1.3.2. CompetitorPrices

2.1.1.3.3. Elasticity

2.1.1.3.4. Product Hierarquy

2.1.1.4. Create composition (Director) instead of passing PricingRecommendationArguments all around.

2.1.2. Remove unecessary container injections

2.1.3. Create a "facade" for just the calculation

2.1.3.1. Refactor: Pricing rules should be called "Strategies", and they should be composable.

2.1.3.2. Compose strategies from PriceGroup

2.1.3.3. Make sure "Fallback" strategies such as the Weighted Model are composable

2.1.3.4. Get rid of IoC container

2.1.4. Reduce dependencies

2.1.4.1. Remove unused code: Elasticity

2.1.4.2. Remove noise: Recommendation Trail

2.1.5. Stateless

2.1.5.1. Ensure inputs/outputs are not mixed in the calculator

2.1.5.2. Make it possible to dry-run it with a set of inputs (acceptance testing)

2.1.6. Expose it as a service / endpoint?

2.1.6.1. Create webApi controllers for enabling calculation on-demand via parameters

2.1.6.2. Create REST contract for calculation

2.2. Take all "automation" logic away from "recommendation"