Issue a Quote (Commercial Proposal)
This recipe creates a commercial proposal for a customer, fills in line items, sets an expiry date, and sends it. It also covers quote statuses and what the customer sees.
Prerequisites
- WordPress admin access.
- The target Organization exists and is
verified. See Onboard an Organization if needed. - At least one WooCommerce product exists with pricing set. See Sell a B2B Subscription, Part A, for product setup.
Steps
Part A: Create the quote
Step 1. Go to MIDDAG Account > Quotes in the admin sidebar.
Step 2. Click New Quote.
Step 3. Select the target Organization from the dropdown. The billing entity auto-fills from the Organization's configuration.
Step 4. Verify the Billing Entity (MIDDAG BR or MIDDAG GLOBAL). This determines the currency (BRL or USD) and which Stripe account will process the payment if the quote is accepted.
Step 5. Optionally, add a Quote Title or reference number for internal tracking.
Part B: Add line items
Step 6. Click Add Line Item.
Step 7. Search for a WooCommerce product and select it. The price auto-fills from the product.
Step 8. Set the quantity.
Step 9. Optionally, adjust the unit price for this quote (e.g., negotiated discount). The original product price is shown for reference.
Step 10. Repeat steps 6-9 for each product or service you want to include.
Step 11. Review the Total at the bottom. Taxes and discounts are calculated automatically based on the billing entity's tax rules.
Part C: Set terms and send
Step 12. Set the Valid Until date. Default is 30 days from today. Adjust if the customer needs more or less time.
Step 13. Add any Terms and Conditions text or notes visible to the customer (optional).
Step 14. Click Save as Draft to save without sending.
Step 15. Review the quote details. When ready, click Send to Customer.
Step 16. The quote status changes from draft to sent. The system sends an email to the Organization's primary contact with a link to view the quote in the portal.
Part D: Monitor the quote
Step 17. Back on the Quotes list, you can track the status:
| Status | Meaning |
|---|---|
draft | Saved but not yet sent to the customer. |
sent | Delivered to the customer's portal. Awaiting their action. |
viewed | The customer opened the quote. Transitions automatically on open. |
accepted | Customer accepted. WooCommerce order creation begins. |
rejected | Customer rejected with a stated reason. |
expired | The Valid Until date passed without customer action. |
paid | Payment confirmed. Entitlement provisioning begins. |
fulfilled | Entitlement created and all downstream resources provisioned. |
Step 18. If the quote is expired, you can click Re-send to generate a new validity period and re-deliver to the customer.
Step 19. If the quote is rejected, review the customer's reason (visible in the quote detail) and create a new quote with adjusted terms if needed.
What the customer sees
- The customer logs in to the portal and navigates to Quotes.
- They see all quotes for their Organization with status and amounts.
- Opening a quote shows line items, totals, terms, and the Valid Until date.
- They can add comments (thread-style) for negotiation.
- When ready, they click Accept Quote and proceed to payment.
Expected result
- A quote exists in
sentstatus, visible to the customer in the portal. - Line items, pricing, and validity dates are correct.
- The customer can view, comment on, accept, or reject the quote from the portal.
- If accepted, the system automatically creates a WooCommerce order and directs the customer to payment.
Further reading
- Purchase and Renewal Flow -- the full quote-to-entitlement pipeline.
- Convert Quote to Order -- what happens after the customer accepts.
- Orders -- how orders are created from quotes.