> For the complete documentation index, see [llms.txt](https://orbit-b2b.gitbook.io/orbit-b2b-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://orbit-b2b.gitbook.io/orbit-b2b-docs/quotes-rfq/emails.md).

# Quote email templates

Six templates fire automatically as a quote moves through its lifecycle. All are editable per language under **Email Templates → Quote** in your admin.

## The 6 templates

| Template                      | Trigger                                          | Sent to                      |
| ----------------------------- | ------------------------------------------------ | ---------------------------- |
| **Quote Submitted**           | Customer submits a new request                   | You (merchant)               |
| **Quote Reply**               | You send a price update                          | Customer                     |
| **Quote Accepted**            | Customer accepts the offer                       | You (merchant)               |
| **Quote Invoice (Net terms)** | Customer accepts a Net X / Prepay / Custom quote | Customer (with PDF attached) |
| **Quote Expiring Soon**       | 24 hours before validity ends                    | Customer                     |
| **Quote Expired**             | Validity date passes without action              | Customer                     |

Each template has its own subject + HTML body + per-locale translations.

## Available shortcodes

Replace placeholders dynamically when the email sends.

### Common to all quote emails

* `{{quote_number}}` — Quote #Q-2026-0042
* `{{customer_name}}` — Jane Smith
* `{{customer_email}}` — <jane@acme.com>
* `{{shop_name}}` — your store name
* `{{shop_url}}` — your storefront URL
* `{{quote_total}}` — formatted total ($1,234.50 USD)
* `{{quote_link}}` — direct URL to the customer-facing quote page
* `{{admin_link}}` — direct URL to the admin Quote detail (admin only)
* `{{valid_until}}` — formatted validity end date
* `{{item_count}}` — number of distinct items
* `{{total_quantity}}` — sum of all quantities
* `{{submitted_at}}` — formatted submit timestamp

### Quote Submitted (admin)

* `{{customer_message}}` — what the buyer typed in the message field

### Quote Reply (customer)

* `{{admin_message}}` — your message in the reply box

### Quote Accepted (admin)

* `{{draft_order_name}}` — the Shopify draft order name (e.g. #D1245)

### Quote Invoice (customer)

* `{{payment_terms}}` — formatted payment terms label ("Net 30", "Prepay 50%", etc.)
* `{{payment_terms_custom}}` — the custom payment terms note you typed, wrapped in `<p>`

## Editing a template

1. **Apps → Orbit B2B → Email Templates**
2. Sidebar groups: **Email Templates · Registration**, **Email Templates · Quote**, etc.
3. Click any quote template to open the editor
4. Use the language tabs at the top of the editor to translate per locale
5. Insert shortcodes from the right-hand "Insert Shortcode" panel
6. Toggle Enabled to turn an individual template on/off
7. Save

Tip: send a test email after editing — the Actions panel has a Send test email button so you can verify formatting on your inbox before the next real send.

## Default translations

Out of the box the 6 templates ship with translations for:

* English
* Vietnamese (Tiếng Việt)
* French (Français)
* German (Deutsch)
* Spanish (Español)
* Japanese (日本語)

The storefront picks the locale from `request.locale.iso_code`. You can edit any default to match your brand voice.

## When emails don't send

Check SMTP setup first: **Email Templates → Configuration → SMTP Settings**. Without valid SMTP, every email send is silently skipped (logged in the backend, not visible to merchant). Click **Send test email** to verify config.

## Next steps

* [Translate storefront text per language](/orbit-b2b-docs/quotes-rfq/storefront-text.md)
* [Troubleshooting: emails not sending](/orbit-b2b-docs/faq-and-troubleshooting/emails.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://orbit-b2b.gitbook.io/orbit-b2b-docs/quotes-rfq/emails.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.
