Dordam: Request a Quote + Negotiation
·
Add a request-a-quote and price negotiation feature to your WooCommerce store.
Built for B2B, wholesale, and custom-order WooCommerce stores where prices aren’t fixed. Instead of “Add to Cart”, quote-enabled products show a “Request a Quote” form. The admin reviews the request, sets a per-unit price, and the plugin emails the customer a unique link that adds the product to their cart at exactly that price and takes them straight to checkout.
How it works
- Go to any Product > Edit > General tab and check “Enable Request a Quote”. Optionally set a minimum quantity.
- Customers visiting that product see a quote request form instead of Add to Cart.
- You get an email + a new entry under the “Quote Requests” admin menu.
- Open the request, set your price per unit, and click “Send Offer to Customer”. They get an email with a unique accept link.
- When they click it, the product is added to their cart at the negotiated price (locked server-side, cannot be altered by the customer) and they’re taken straight to checkout.
- Once their order is completed, the quote is marked “Accepted” and the link can’t be reused.
How multi-round negotiation works (v1.1.0)
- Admin sends an offer. The customer receives a link to a negotiation page (not straight to checkout).
- On that page the customer can either “Accept & Continue to Checkout” or submit a counter-offer (a proposed price + optional note).
- If they counter, the admin is emailed and can review it under Quote Requests in wp-admin, then send a new offer — which re-opens the same page for the customer.
- This can repeat up to a configurable round limit (default: 5,
change with the
dordam_max_negotiation_roundsfilter) to prevent endless back-and-forth. - Whenever the customer clicks Accept, the price is locked server-side and they’re sent straight to checkout, same as before.
Roadmap / Not yet included
- A logged-in customer dashboard showing their own quote history.
- Role-based / bulk pricing rule automation.
- Quote expiry (auto-expire offers after N days of inactivity).
- Admin-side “reject quote” action (currently admins simply stop responding, or send a very high offer, to end a negotiation).