> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.omegatheme.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Negotiate quotes with QuoteSnap DealHub

QuoteSnap DealHub turns a static quote into a live, back-and-forth negotiation between your buyer, your sales rep, and you — the merchant. Instead of haggling over a chain of emails, everyone works from one shared quote with full version history, and a discount guardrail makes sure no deal ever closes below the floor you set.
This article walks you through how QuoteSnap DealHub works for each person involved, from the moment a buyer opens a quote to the moment the deal converts into a Shopify draft order.
### Before you start
* **QuoteSnap DealHub** is a module of QuoteSnap. You manage it from your existing QuoteSnap admin — no new app install and no extra Shopify OAuth is required.
* Three people can take part in a deal:
    * **Buyer** — the customer you sent the quote to. Signs in with email + a 6-digit code (no Shopify account needed).
    * **Salesperson** — your sales rep. Signs in with email + password.
    * **Merchant / Approver** — you or a manager, already signed in to QuoteSnap.
![](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_jhm1sx.png =700x244)![](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_gmvceb.png =700x297)


* A salesperson only sees and acts on quotes assigned to them. A quote with no assigned rep is **unassigned** and can be claimed by any of your reps on their first action.![](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_1i5gvl2.png =700x400)

|| Note: To approve deals that exceed the discount cap, a team member needs the Approve Quote permission. See Set who can approve below.
### How a deal works
Every quote in QuoteSnap DealHub is a **deal** — a single negotiation thread scoped to your shop.
* The original quote you sent is version **v0**.
* Each time someone counters, QuoteSnap DealHub appends a **new version**.
* Exactly **one** version is the **official offer** at any time — the price currently on the table that both sides act against.
Buyers only ever see three statuses:
| Status | What it means |
| ---- |
| **Pending** | The buyer has countered and is waiting on your side. |
| **Deal Closed** | Agreement reached — the buyer accepted the official offer. |
| **Rejected** | The negotiation ended without a deal. |
### 1. The buyer opens and counters the quote
Send the buyer their quote link. When they open it:
1. They sign in with their **email**, receive a **6-digit code**, and enter it — no password, no Shopify account.
2. They see a list of the quotes addressed to them, each with its status and last-updated date.
3. They open a quote to see the full detail: line items, quantities, unit prices, the official offer total, tax, and who they're dealing with. Amounts always show in the quote's own currency.
4. To make an offer, the buyer **edits the price** — per line and/or on the total — and submits. This creates a new **Pending** version.
5. If the deal already has several versions, the buyer can **preview any earlier version** read-only.
When the buyer is happy with the offer on the table, they **accept** it — and the deal becomes **Deal Closed**.![](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_q945oj.png =800x554)

### 2. The salesperson responds
Your sales rep signs in with email and password and lands on their **dashboard**, which shows how many deals are **Pending** and how many are **Closed**.
From the quotes table they open a deal to review the customer, quote status, tax, line items, and the full **version history**. Then they can:
* **Send a counter** — edit the counter price and send it back to the buyer. This becomes the new official version.
* **Approve within cap** — if the buyer's offer (or the rep's counter) is within the allowed discount, the rep approves it directly and the deal closes.
* **Reject** — end the negotiation. A deal can't be rejected out from under an action that's already in progress.
* **Preview any version** before acting.
![](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_35ei7x.png =800x676)

### 3. The discount guardrail
QuoteSnap DealHub measures every proposed discount against the **v0 list price**, and compares it to the **discount cap** you configure for your shop.
* **Within cap** → the salesperson can close the deal themselves, no escalation.
* **Deeper than the cap** → the rep **cannot** self-approve. The deal automatically **escalates to you** for approval.
The buyer never sees this step — to them the deal simply stays **Pending** until it's approved or rejected.
### 4. Approve an escalated deal (merchant)
When a deal needs your sign-off, you handle it right inside the **Quote detail page** in QuoteSnap:
1. A **notification banner** appears at the top of the Quote detail page telling you a deal is awaiting approval.
2. You see the deal's full **version history**.
3. **Preview the counter** in a modal to review exactly what the rep wants to accept.
4. Choose **Approve** or **Reject**. On approval, the deal either closes or returns to the buyer as the new official offer.
### 5. Set who can approve
Approving an escalated deal is gated by permissions. In the QuoteSnap **Permissions** screen, the permission matrix includes an **Approve Quote** capability — grant it only to the team members who should be able to approve over-cap deals.
### 6. Add the Review Quote button to your emails
To bring buyers into the QuoteSnap DealHub flow from an email, use the email template editor:
1. In the template's **Button Function** dropdown, choose **Review Quote (DealHub)**. This links the recipient into the review flow and has its own settings screen.
2. In the Review Quote settings, define the **accept** and **reject** behaviour:
    * **Accept** → the buyer is taken to checkout.
    * **Reject** → choose one of two behaviours: reject immediately, or redirect the buyer to a rejection form.
### 7. From accepted deal to Shopify order
When a deal is accepted, QuoteSnap DealHub converts it into a **Shopify draft order** using your shop's existing QuoteSnap Admin token — no new authorization needed. Placement is idempotent and retried automatically if it fails, so an accepted deal always lands as a draft order.
### Good to know
* **One source of truth.** Every counter, approval, and rejection is recorded as a version — the whole thread is auditable and readable by your team.
* **Currency-safe.** Prices always render in the deal's own presentment currency, including zero-decimal currencies like VND. QuoteSnap DealHub never hard-codes `$`.
* **Tenant isolation.** Every action is scoped to the right shop; buyers and salespeople can't reach across shops, and they never touch Shopify OAuth.
* **Safe under pressure.** Adding versions, promoting the official offer, accepting, and rejecting are all guarded, so two people acting at once can't create two official offers or reject a deal that's mid-action.
###### Not yet in this version
* Real PDF contract generation (an HTML contract stands in for now).
* Email delivery infrastructure (the button and link are defined; sending is handled separately).
* Full translation of the buyer surface.
* Audit PDF export.
* Coming later: pricing memory across deals, AI auto-negotiation, a guardrail simulator, and analytics dashboards.