An important motivation for moving business processes to the web is to reduce the cost associated with having them done by people. One such process is negotiation. Automating negotiations requires that we be able to agree on what we're negotiating for, quantify the value of different possible outcomes, and have a set of rules that specify how the negotiation proceeds. This paper presents a unified approach to address these issues. Contributions include a form of presenting offers that makes it easier to search a large space of potential deals and a negotiation protocol that is guaranteed to terminate in a finite number of steps. Notes: 26 Pages