OfferDragon – Price Negotiation for WooCommerce
OfferDragon adds price negotiation (“make an offer”, “name your price”, “best offer”) to your WooCommerce store, so shoppers can negotiate instead of abandoning your product pages. Every offer arrives with the shopper’s card already authorized — accept it to get paid instantly, decline to release the hold, or send a counter-offer.
How it works
- A “Make an Offer” button is added to your single product pages (on all products, or only the ones you choose).
- When a shopper clicks it, a modal (served by the Make an Offer app) lets them enter the price they are willing to pay along with their contact and shipping details.
- The shopper’s card is authorized via Stripe at that moment — it is only charged if you accept the offer (or the shopper accepts your counter offer) in your Make an Offer dashboard.
- When an offer is accepted and the card is captured, the Make an Offer service sends a cryptographically signed webhook to your site. This plugin verifies the signature and creates a paid WooCommerce order (status: Processing) at the agreed price, with the customer’s details, so your fulfillment and inventory workflows stay entirely inside WooCommerce. Stock levels are reduced automatically.
What this plugin does on your site
- Adds a settings page (Settings → Make an Offer) for your App URL, Site Key, and Webhook Secret.
- Adds an “Enable Make an Offer” checkbox to each product’s General settings, plus a global “enable on all products” option.
- Injects the widget script and a hidden offer button on eligible single product pages.
- Registers a REST endpoint (
/wp-json/offerdragon/v1/order) that receives accepted-offer webhooks, verifies their HMAC-SHA256 signature and timestamp, and creates the corresponding order idempotently (the same offer is never turned into two orders).
External service disclosure
This plugin depends on the hosted Make an Offer service (the “App URL” you configure, e.g. https://makeanofferpro.com), a third-party external service. You must create an account there to obtain a Site Key and Webhook Secret; offer management, counter offers, and payment processing (via Stripe) all happen on that service, not on your WordPress site.
Data flow:
- Your visitors’ browsers load the widget script (
offer.js) directly from the App URL you configure. When a visitor opens the offer modal and submits an offer, their browser sends the offer details — product ID, product name, product price, product URL and image URL (provided by this plugin as button attributes), plus the name, email, shipping address, offer amount, and payment card details they type in — directly to the Make an Offer service and to Stripe (for card authorization). This happens from the visitor’s browser; this plugin’s PHP code makes no outbound requests to any external service. - The Make an Offer service sends signed webhooks to your site when offers are accepted, containing the offer and customer details needed to create the order.
Please review the terms of service and privacy policy of the Make an Offer service you connect to, and of Stripe (https://stripe.com/privacy), and disclose this data flow in your own privacy policy as required.
This plugin requires WooCommerce and is compatible with WooCommerce High-Performance Order Storage (HPOS).
