A method for computing a price quote for a product using a contract. The
method includes identifying the set of price rules for a plurality of
products associated with the contract. Each price rule in the set of
price rules is either a hard price rule or a soft price rule. Each hard
price rule includes a price rule expression and a price rule type and
each soft price rule comprises a price rule type. A collection of price
rules is generated including, for each soft rule in the set of price
rules, hard price rules that are associated with the product and that
have the same price rule type as the soft price rule. Hard price rules
that are associated with the contract are also added to the collection of
price rules. A pricing scheme that is to be used in order to determine
the price quote for the product is selected and used to resolve the hard
price rules in the collection of price rules in order to determine the
price quote.