> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/trade-and-b2b/quote-builder-and-draft-orders/generate-download-and-share-quote-pdfs.md).

# Generate, download, and share quote PDFs

Turn any Trade quote into a branded PDF: what customers can generate and share from the dashboard, and every Quote PDF template setting explained with recommendations.

Any quote in the Trade Dashboard can be turned into a branded PDF: a clean, shareable document your customer can file, forward internally, or use to get sign-off. The PDF is generated by Roadmap (not Shopify), built from the quote's draft order data, and styled by a template you control.

This guide has two halves: first **what your customers see on the dashboard**, then **the admin template settings** with recommendations for what to show and hide.

## On the dashboard: what your customers can do

In the **Quotes** tab, the quote list carries a **PDF settings** button at the top and a **download** action on every row. Opening a quote (**View / Edit**) adds a **Generate PDF** button alongside Update Quote and Confirm Order.

### Two levels of customisation

Customers can tailor their PDFs in two places, and the difference matters:

1. **Defaults for every download: PDF settings on the quote list.** This opens *Quote PDF settings*, the default download options applied to every quote download, past and future. For customers in a B2B company the defaults are shared: the modal reads *Default download options for everyone at \[Company]*, so every team member downloads with the same title, logo, and text block. **Save defaults** stores them.<br>

   <figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FUZcRovTGhLebDWwKoUGh%2FScreenshot%202026-09-07%20at%202.19.39%E2%80%AFPM.png?alt=media&#x26;token=0a7d24be-077c-48f0-940f-0d76fc89ee3a" alt=""><figcaption></figcaption></figure>
2. **Per-quote overrides: Generate PDF inside a quote.** The popup opens pre-filled with the saved defaults; anything changed here applies to **this quote only** and takes precedence over the defaults.<br>

   <figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FNGmG43gO2ShZZn5CXETp%2FScreenshot%202026-09-07%20at%202.20.39%E2%80%AFPM.png?alt=media&#x26;token=438c65e3-3cac-4828-8b99-5a7b09b34d3b" alt=""><figcaption></figcaption></figure>

Both places offer the same controls, subject to what you allow in [Customer options](#customer-options-what-buyers-may-change):

* **Document title**, for example *Living Room Proposal, Meyer Residence*.
* **Company logo**: PNG or JPEG up to 300KB, replacing your store logo on their PDF.
* **Price adjustment** (defaults to *No adjustment*).
* **Sharing options**: **Hide prices** and **Hide payment link**.
* **Your text block**: replaces the store's text block at the bottom of the quote with their own company information; left blank, the store's text stays.

### Generate, download, and share

{% stepper %}
{% step %}

#### Open the generate popup

Click the **download** action on a quote row, or open the quote and click **Generate PDF**.
{% endstep %}

{% step %}

#### Adjust the details for this quote

The popup opens with the customer's saved defaults pre-filled. Any change made here sticks to this quote and overrides the defaults.
{% endstep %}

{% step %}

#### Generate, then share

After generating, the popup shows when the PDF was made and offers:

* **Open PDF**: view it in the browser, with download and print from there.
* **Copy link**: copy a short link to the PDF. The link doesn't expire, so it's the easiest way to send a quote to someone else.
* **Regenerate**: rebuild the PDF from the quote as it is now.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FUa0ARffbu30MsyQkqBSt%2FScreenshot%202026-09-07%20at%202.22.35%E2%80%AFPM.png?alt=media&#x26;token=7d49e37e-18dc-4a13-bad3-c730a479658c" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The generated PDF is a snapshot. If the quote changes afterwards, the popup notes when the PDF was made (*Regenerate to use the quote as it is now*), and the file keeps its original content until it's regenerated.
{% endhint %}

### Completed orders become invoices

Completed orders appear in the same list as **Order** rows with a COMPLETED status and the same download action. Roadmap titles the document differently at each stage: open quotes use your **Draft title** (for example QUOTE), completed orders use your **Invoice title** (for example INVOICE), so the paperwork matches where the order actually is.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2Fo0OMo3TdR5ZK24Kip3RX%2FScreenshot%202026-09-07%20at%202.29.01%E2%80%AFPM.png?alt=media&#x26;token=98329b6f-ab7a-49e8-bd0f-b0984e2829ed" alt=""><figcaption></figcaption></figure>

### Use case: an interior designer re-quoting to their client

The two levels exist for trade customers who resell. A worked example:

An interior designer is quoting a living room fit-out for the Meyer residence. They build the quote in your dashboard at your trade prices, then click **Generate PDF** and tailor the document for their client:

* **Document title**: *Living Room Proposal, Meyer Residence*, so the PDF reads as project paperwork, not a store order.
* **Their studio logo** replaces yours (saved once as a default, so every download already carries it).
* **Price adjustment: +20%**. The PDF shows the prices the designer charges their client, with their margin built in.
* **Hide the payment link**, because the client pays the designer, not your store.

The Meyer family receives a branded proposal from the designer's studio at the designer's prices, while your quote and draft order keep your actual trade pricing untouched.

{% hint style="warning" %}
Price adjustments change only what the PDF displays. The quote, the draft order, and the Pay now checkout all keep your real prices, which is why hiding the payment link on a re-priced PDF is usually the right move.
{% endhint %}

Without these options enabled under [Customer options](#customer-options-what-buyers-may-change), every PDF renders exactly as you designed it.

## In the admin: design the Quote PDF template

Everything below lives in the Roadmap app under **Settings → Trade Settings → Quote PDF tab**. A live **preview** on the right renders your changes with sample quote data; downloads use this exact layout, and you can click the preview to enlarge it.

**Enable quote PDF downloads** at the top is the master switch for the whole feature.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FyyFuJTLt2RHRS3Kf4T1G%2FScreenshot%202026-09-07%20at%202.31.49%E2%80%AFPM.png?alt=media&#x26;token=4f7eb49f-74fa-4bcc-a6cd-d667af3a8d22" alt=""><figcaption></figcaption></figure>

### Document titles and header

* **Invoice title** (shown on completed orders) and **Draft title** (shown on open quotes).
* **Header**: **Show quote number**, **Show PO number**, and **Show status** (e.g. Open, Completed).

{% hint style="info" %}
Keep the two titles distinct (Quote vs Invoice) so an open quote is never mistaken for a tax invoice. Show the PO number if your customers work with purchase orders; the label they see carries through from your quote builder settings, so a merchant using "Project Reference" sees exactly that in the header.
{% endhint %}

### Colours and logo

* **Accent**: the header rule, total, and the Pay now button.
* **Headings**: document title and bold labels.
* **Body text**: line items, addresses, and totals.
* **Muted text**: column labels and subtitles.
* **Logo**: upload once, size it with **Logo width (pt)**.

Set the accent to your brand colour and leave the three text colours close to default: quote PDFs get printed, and near-black body text on white stays legible everywhere.

### Addresses

* **Customer address**: show or hide it, choose the **Customer address source** (billing or shipping), and optionally **Hide customer phone number** and **Hide customer email address**.
* **Store address**: show or hide it, **Hide country from the address**, and **Display website in store address**.

{% hint style="info" %}
Use the **billing address** as the source if your PDFs double as invoices. Consider hiding the customer phone number: quotes get forwarded, and your buyer's direct line doesn't need to travel with them.
{% endhint %}

### Line items

* **Do not display removed line items**: recommended on, so a revised quote reads clean instead of showing its editing history.
* **Display product images**: recommended for catalogue-style invoices; leave off for compact documents.
* **Display pre-order / backorder note as subtitle**: shows lines like *Pre-order · ships 12 Aug 2026* under the product. Turn this on if you use [pre-order and back-order info on Trade quotes](/trade-and-b2b/overview-of-trade-dashboard/show-pre-order-and-back-order-info-on-trade-quotes.md), so delivery expectations survive into the PDF.
* **Display price before discount**: recommended on for trade, since it shows customers the value of their discount on every line.
* **Display SKU**: recommended on for wholesale, because buyers reorder by SKU.

### Payment settings

The payment term and due date are read from the order's Shopify payment terms.

* **Hide created date** and **Hide issued date**.
* **Show payment term** (e.g. Net 30) and **Show due date** (from the Shopify payment schedule), with a **Placement** control (for example, with order notes to the left of the totals).
* **Display payment link**: adds a **Pay now** button that opens Shopify checkout, with a **Pay now button corners** style (Sharp, Soft, or Rounded).

{% hint style="warning" %}
Only display the payment link if customers are allowed to pay immediately. If your quotes go through a review step before becoming orders, leave it off, or grant customers the ability to hide it per PDF under Customer options.
{% endhint %}

### Others

* **Hide discount**: removes the discount column if you'd rather not itemise trade discounts.
* **Display order notes**.
* **Display shipping details under shipping line**: shows the shipping profile name next to the shipping total.

### Documents & download

These two switches control where customers see download actions:

* **Enable invoice download on completed orders**.
* **Enable draft-invoice download on the dashboard**: adds the **Download** action to the quote list.

### Text block

Add your company's standing information to every quote: payment policies, quote validity terms, delivery or returns notes, bank details. The block supports formatting and links, has **Position** and **Alignment** controls (for example, below the totals), and can pull live order data with dynamic snippets. Click a snippet to insert it at your cursor, or type it yourself:

| Snippet                | Inserts                                         |
| ---------------------- | ----------------------------------------------- |
| `{{ quote.name }}`     | Quote number                                    |
| `{{ quote.poNumber }}` | PO number                                       |
| `{{ quote.note }}`     | Order note                                      |
| `{{ company.name }}`   | Company name                                    |
| `{{ customer.name }}`  | Buyer name                                      |
| `{{ customer.email }}` | Buyer email                                     |
| `{{ shop.name }}`      | Store name                                      |
| `{{ 42 \| money }}`    | Money filter: formats a number as your currency |

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FAvIe42lgEg4uSaYqB43n%2FScreenshot%202026-09-07%20at%202.33.41%E2%80%AFPM.png?alt=media&#x26;token=f17e6eee-4d5a-4db5-86b4-a8a64dc458df" alt="" width="375"><figcaption></figcaption></figure>

**Let the agent edit this block per quote** shows the block on the quote builder so it can be tailored per customer. Off means the text is fixed on every invoice. A useful default: a validity line like *Quote {{ quote.name }} is valid for 30 days from issue*, plus bank details if you invoice on terms.

### Customer options: what buyers may change

This section decides which controls appear in your customers' *Quote PDF settings* and *Generate PDF* popups:

* **Change the document title**
* **Hide the payment link**
* **Use their own logo**
* **Hide prices**
* **Increase or decrease prices**, with a **Maximum price increase (%)** cap (leave empty for no limit)

{% hint style="info" %}
Think of this section as "do my customers re-quote to their own clients?". If yes (designers, agencies, distributors), enable the title, logo, and price controls so they can produce client-facing documents, and set a maximum price increase if you want a ceiling on markups over your pricing. If your customers only buy for themselves, leave these off and every PDF stays exactly as you designed it.
{% endhint %}

## Where the data comes from

The PDF is built from the draft order information stored in Shopify: line items, totals, payment terms, and order notes all reflect the draft order at generation time. That's also why regenerating after an edit matters: the PDF is a snapshot, not a live view.

## Related guides

* [Overview of the quote builder](/trade-and-b2b/quote-builder-and-draft-orders/overview-of-the-quote-builder.md)
* [Configure Trade Dashboard access and quote builder](/trade-and-b2b/overview-of-trade-dashboard/configure-trade-dashboard-access-and-quote-builder.md)
* [Show pre-order and back-order info on Trade quotes](/trade-and-b2b/overview-of-trade-dashboard/show-pre-order-and-back-order-info-on-trade-quotes.md)
* [Automate Roadmap draft orders](/trade-and-b2b/quote-builder-and-draft-orders/automate-roadmap-draft-orders.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roadmap.so/trade-and-b2b/quote-builder-and-draft-orders/generate-download-and-share-quote-pdfs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
