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).
