A customer asks for a quote on the cart or on a single product; the admin answers with prices in Sales > Quote Requests; the customer gets an email with a link and checks out at those prices. Products marked "price on request" hide their price everywhere and show the request form instead of Add to Cart.
The quote request form for a cart.
What it does
Quotes from the cart or a product page
Admin answers with a price per line, the customer accepts and checks out