ADR_016 Billing & Pricing domain design decision
Date: 11/01
accepted
Requirements mentioned "Accept coupons and promotional pricing" and "allow multiple vendors", these implies customizable pricing, we need to incorporate this into the design.
We decide to have a core pricing module that takes care of regular pricing, and use dependency injection to allow customizable pricing model, such as coupons, regional promotions. For billing, we envision it to be a generic Payment sub-component, contains regular workflows, we did not drill into it further.