> For the complete documentation index, see [llms.txt](https://docs.samita.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.samita.io/sa-request-a-quote/quote-form/build-b2b-form.md).

# Build a B2B form

Use the B2B customer form template to collect company details, a billing address, payment terms and a deposit.

Trade buyers need to tell you things a consumer doesn't — who they're buying for, where the invoice goes, and how they intend to pay. The **B2B customer form** template asks for all of it.

The app describes it as "For wholesale or business buyers who need company, shipping, billing, and payment term information".

## Is it the right template?

**Form template** offers three starting points, and they ask for genuinely different things:

<table><thead><tr><th width="210">Template</th><th width="280">Sections it arrives with</th><th>What sits in Extra info</th></tr></thead><tbody><tr><td><strong>B2B customer form</strong></td><td>Contact information · Company information · Shipping address · Billing address · Payment terms · Extra info</td><td><strong>Message</strong></td></tr><tr><td><strong>Detailed quote form</strong></td><td>Contact information · Shipping address · Extra info</td><td><strong>Project detail</strong> and <strong>Delivery service</strong></td></tr><tr><td><strong>Simple quote form</strong></td><td>Contact information · Extra info</td><td><strong>Quantity</strong> and <strong>Upload files</strong></td></tr></tbody></table>

The one you are most likely weighing **B2B customer form** against is **Detailed quote form** — "For custom orders, delivery, installation, or project-based quotes. Includes login autofill guidance."

If you quote jobs rather than orders — installation, a delivery window, a project brief — **Detailed quote form** is the better starting point, and [Build a standard form](/sa-request-a-quote/quote-form/build-standard-form.md) walks through it.

{% hint style="info" %}
This page covers only what is different about the B2B template. Everything else — opening the editor, the product-page display, editing a field, the style, saving — works exactly as it does on any other form, and is set out step by step in [Build a standard form](/sa-request-a-quote/quote-form/build-standard-form.md). Read that page first if this is your first form.
{% endhint %}

## Set it up

{% stepper %}
{% step %}

### Open the Quote form tab

Go to **Quote settings**, click **Customize** on the **Customize** card, then open the **Quote form** tab.
{% endstep %}

{% step %}

### Switch the template

In **Form template**, click **Change**. A picker opens, headed **Choose a form template**, with the note "Select a starting point. The form fields will change only after you confirm."

Pick the **B2B customer form** card — it is tagged **B2B**, and its summary line reads "Login autofill, contact, company, shipping, billing, payment terms, message". Then click **Use this template** to confirm. **Cancel** leaves your current form untouched.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FDlJTashrp1hp4Vokchmp%2Fimage.png?alt=media&amp;token=4e5416e3-a707-497a-93c0-8c5350f10bee" alt=""><figcaption><p><strong>Change</strong> opens the template picker.</p></figcaption></figure>

{% hint style="warning" %}
The picker says it plainly: "Changing template will replace the current field list after confirmation." The B2B sections arrive, and whatever you had before goes — including **Project detail** and **Delivery service** if you were on the **Detailed quote form**, and any section or field you had added yourself. Switch before you invest time in customising, not after.
{% endhint %}

{% hint style="info" %}
If the **B2B customer form** card is locked, that is your plan. The app labels it "B2B customer form requires a plan upgrade" and links to **Pricing plans** — see [Plan comparison](/sa-request-a-quote/reference/plan-comparison.md).
{% endhint %}
{% endstep %}

{% step %}

### Turn the business sections on

The **Form builder** now lists six sections in this order: **Contact information**, **Company information**, **Shipping address**, **Billing address**, **Payment terms** and **Extra info**. The three in the middle are what the **Detailed quote form** does not have — they are the reason to be on this template at all.

Each section is switched on separately. Click a section's settings control, tick **Enable**, and set its **Label** if you want to call it something else. A section left disabled is not shown to the customer at all, however many fields it holds.

Expand a section with the chevron to see its fields, and click any field to edit it.
{% endstep %}

{% step %}

### Set up the billing address

**Billing address** starts with a **Billing address same as shipping address** checkbox, then repeats the address fields underneath. Most buyers tick the box; the ones who don't are exactly the ones whose invoice goes somewhere else.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2F3z2BYhsYWcISjJJoBDfz%2Fimage.png?alt=media&amp;token=79583775-6538-4bb0-82e0-6719ab4577a2" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Set up payment terms and the deposit

**Payment terms** holds the Payment terms field, a **Required deposit** checkbox and a Deposit field. See below.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FtIxSQdFtZ20m2WHSWlwf%2Fimage.png?alt=media&amp;token=7490931a-6c11-465f-9be1-4347046a2755" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Add anything else you need

On this template **Extra info** holds a single **Message** field, set to required. Use **Add element** inside a section for one more question, or **Add section** for a whole new group.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FJIItKxh4i4i7ANafCjlC%2Fimage.png?alt=media&amp;token=63375e57-4c70-4114-9a0b-0a61240baf2a" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Preview it as a logged-in buyer

This is the step most people skip, and it is the one that matters most on a B2B form — because a logged-in trade buyer sees a different form from a first-time visitor.

In the **Preview** panel beside the editor, use the customer-state button on the toolbar to switch from **Guest** to **Logged-in**, and read the form back. The desktop and mobile toggle beside it is worth a look too: a six-section B2B form is a long scroll on a phone.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FIPWGudKzoTLFhgy83UMD%2Fimage.png?alt=media&amp;token=dae28059-1b30-4c16-8132-40cefb64280a" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Save and check

Changing anything brings up Shopify's save bar. Click **Save** — the editor will not let you save while a field still has a validation error, and says "Please resolve validation errors before saving." if one does.

Then open the form on your storefront and send yourself a real test request, and confirm it arrives in **Quote list** with the company, billing and payment-terms answers on it.
{% endstep %}
{% endstepper %}

## What the business sections are for

<table><thead><tr><th width="230">Section</th><th>What it collects</th></tr></thead><tbody><tr><td><strong>Company information</strong></td><td>Company name — the business the buyer represents.</td></tr><tr><td><strong>Billing address</strong></td><td>Where the invoice goes, which is often not where the goods go.</td></tr><tr><td><strong>Payment terms</strong></td><td>Payment terms, plus an optional deposit, so you can price and schedule the work properly.</td></tr></tbody></table>

## Payment terms and Required deposit

**Payment terms** is where the buyer tells you how they expect to pay — the difference between a job you can start on Monday and one you're funding yourself for sixty days.

Tick **Required deposit** when you want a payment up front, then set the amount in the **Deposit** field. Use it for made-to-order work, long lead times or first-time accounts.

{% hint style="info" %}
A deposit is a commitment test as much as a cash-flow one. Buyers who won't put anything down on a custom job are usually still shopping around.
{% endhint %}

{% hint style="warning" %}
**Payment terms** is the one section that can be locked out from under you. When it is, the app greys the whole section and prints a padlock line beneath it — "🔒 Payment terms: This feature is available on Shopify Plus + …" followed by the plans that include it. It needs **Shopify Plus** on the store *and* a plan that carries it, so check [Plan comparison](/sa-request-a-quote/reference/plan-comparison.md) and the in-app **Pricing plans** page before you build a process around deposits.
{% endhint %}

## Less typing for logged-in buyers

On the storefront the form invites customers to sign in, with a **Login** link next to the prompt:

> Already have an account? Log in to auto-fill your contact and company information.

Once they do, their details fill in for them, so a repeat request is a couple of fields rather than a whole form. The PRO plan goes further, auto-filling logged-in B2B customer data — company, location, and payment terms.

You do not have to log in to a test account to check this. In the **Preview** panel inside the editor, switch the customer-state button on the toolbar from **Guest** to **Logged-in** and the preview redraws as a signed-in buyer would see it.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FPW0aSMCmEWmgP0ilRCyI%2Fimage.png?alt=media&amp;token=8ee5d9c4-bbcb-4fad-84a5-3dc8b89353de" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2Fgit-blob-d82dbe65ced7c4579320e0332f2b3e9544638f11%2FScreenshot%202026-09-30%20at%2022-56-52.png?alt=media" alt=""><figcaption></figcaption></figure>

## Next steps

* [Customer information fields](/sa-request-a-quote/quote-form/customer-info-fields.md) — the contact and address fields behind the automatic filling
* [Convert to a draft order](/sa-request-a-quote/managing-quotes/convert-to-draft-order.md) — turn an agreed quote into an order
* [Build a standard form](/sa-request-a-quote/quote-form/build-standard-form.md) — the rest of the form, step by step


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.samita.io/sa-request-a-quote/quote-form/build-b2b-form.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
