Understand quotes and contracts

Quotes and contract prices

One deal against a standing price — and why an accepted quote hands over an order draft, not a price list.

Ask three people in a B2B company what "the agreed price" is and you get different answers. Sales means the number on last month's quote. The Innendienst means the price the customer sees in the shop. Management means the Rahmenvertrag signed in January. All of them are real, they behave differently, and mixing them up is how a company ends up honouring a one-off price for years, or charging list price to a customer who has a signed agreement.

This article separates the two objects the platform knows (the quote and the contract price) and is precise about what happens between them.

Two objects, one phrase

QuoteContract price
CoversOne deal: this basket, nowOne article for one customer, every order
LifetimeDays or weeks, until Valid untilMonths or a year, the price list's validity
Ends byAcceptance, refusal or expiryThe price list's Valid until
The buyer sees itAs a quote in their account, with a numberAs their price in the shop, without asking
Lives inOrder Management › QuotesA price list bound to the organization, under Order Management › Prices › Price lists
ProducesAn order draft at the negotiated pricesThe price every cart resolves for that customer

The last row is the one to remember. A quote produces one order (or a few, if the buyer accepts in parts). It never produces a price the shop uses again.

Quote: one deal, kept as it was

A quote answers one question at one moment: what does this basket cost this buyer if they order it before the validity date? Its positions are a copy made when the quote was asked for. The buyer can go on shopping and the catalogue can change, but the quote still says what it said. A quote from March still shows March's figures.

Each position keeps two prices side by side: the list price it came in at and the quoted price you agreed, with a reason (volume, competition, relationship, clearance, cost_change, other). That is deliberate. The question asked six months later is "what did we give away, and why?", and a stored difference cannot answer it once the list price has moved.

When the buyer accepts, the negotiated price crosses into the order as the order line's unit price. It does not arrive as a discount for the order to work out again. The order then refuses to change that money, which is what makes it a reliable record for your ERP. See From an accepted quote to an order.

Contract price: the customer's standing price

A contract price is what the buyer pays for an article every time, without asking. 4711-A costs €19.90 in your catalogue and €16.20 for Müller Industriebedarf until the end of the year, and the shop shows €16.20 to anyone logged in at Müller.

That works because a price list can be bound to an organization, and a list bound to the organization outranks the general lists. Give it a validity window and it stops on its own. The full order of precedence is in How pricing works; the setup is in Contract prices for a customer.

A contract price commits you to a number. It does not commit the customer to buy anything. Where the customer also commits to a volume (a Rahmenvertrag with call-offs), the volume and its tracking live in your ERP or your contract management. The platform holds the price side: the contract price list.

What an accepted quote does, and does not, create

The question customers ask most is "we won the quote, does the customer now have that price in the shop?". No, they do not.

Acceptance hands over an order draft: the accepted positions at the negotiated unit prices, the quoted freight on the first order, the addresses, the buyer and a reference to the quote. Whatever accepted the quote places the order from that draft, and the order number is written back onto the quote's positions. That is the whole hand-over.

What acceptance does not do:

  • It does not create or change a price list.
  • It does not create a contract price for the next order.
  • It does not set a validity on anything except the quote itself.

So if the deal you won is meant to hold for the next twelve months, you turn it into a contract price yourself:

  1. Open Order Management › Prices › Price lists and create a list for the customer in the quote's currency, with Account set to their organization.
  2. Add entries only for the articles you negotiated, at the agreed prices. A volume ladder (€5.60 from 1, €4.80 from 500) is several entries on the same article with different minimum quantities. See Scale and volume prices.
  3. Set Valid from and Valid until to the agreed term, so the price ends without anybody having to remember it.
  4. Switch on Logged-in buyers only. A negotiated price that anonymous visitors can resolve is a negotiated price your competitors can read.
  5. Put the quote number into the list's name ("Müller Industriebedarf — ANG-000412, 2026"), so "why does Müller pay €4.80?" has an answer a year from now.
Do not copy your whole catalogue into the customer list. Add only the lines you negotiated. A list with the 40 agreed articles can be checked against the signed offer line by line. A list padded to 40,000 articles freezes every other price for that customer at the day you copied it, and nobody will ever audit it.

Which one you need

The situationUse
A buyer wants a written number for one project or one consignmentA quote
Freight on an oversized consignment that no tariff coversA quote, with carriage priced on it
You agreed prices for six articles for this customer, for a yearA contract price list for the organization
A customer committed to a volume in exchange for a priceA contract price list for the price; the volume tracked where you track commitments today
Everyone gets a lower price above 500 unitsA scale price on your standard list
A price that runs for six weeks and then revertsA time-limited price

The tempting mistake is the third row handled as the first: a new quote every time the customer orders, re-pricing the same six articles over and over. It works, and it ties up your Innendienst every time. A price that is agreed for a period belongs on a price list.

The failure mode: the price nobody ended

Contract prices do not fail loudly. They fail by outliving the negotiation that produced them. A price agreed in a weak quarter in 2023, on a list with no Valid until, is still being served today, at a margin nobody would sign off now, to a customer who has long stopped mentioning it.

Two habits prevent it. Every negotiated list gets an end date when it is created. And every end date goes in a calendar with a name against it, because the day the price reverts is the day the customer phones. See Price list hygiene.

Next