---
title: "How to build a custom wholesale signup form"
description: "On the Enterprise or Professional plan, Process Wholesale lets you build your own wholesale signup form on the Custom Signup Form page, with your own fields, file uploads and a consent checkbox, for theme pages and new customer accounts."
type: how-to
plans: [Enterprise, Professional]
keywords:
  [
    custom registration form,
    form builder,
    custom fields,
    wholesale application fields,
    consent checkbox,
    terms and conditions,
    Wholesale Custom Signup,
    B2B signup fields,
  ]
questions:
  - "How do I add custom fields to the wholesale signup form?"
  - "Which field types can the custom signup form use?"
  - "Where do I see the answers from the custom signup form?"
  - "How do I add a terms and conditions checkbox to the signup form?"
  - "Why does the Wholesale Custom Signup block show no fields?"
  - "Does the custom signup form work with new customer accounts?"
  - "Can I remove the Password field?"
last_verified: 2026-11-11
order: 4
---

# How to build a custom wholesale signup form

Process Wholesale lets you build your own wholesale signup form on the **Custom Signup Form** page: add, order, require and remove fields, add file uploads, and add a consent checkbox for your terms. The same form is shown by the **Wholesale Custom Signup** theme block (for legacy customer accounts, or guests on new customer accounts) and the **Wholesale custom signup Form** customer account extension (for new customer accounts). The custom form needs the Enterprise or Professional plan.

**At a glance**

- **Plan:** Enterprise or Professional. The page says "Custom signup is available on the Enterprise plan only."; Professional also has access.
- **Where:** Process Wholesale > **Custom Signup Form**
- **Shown by:** **Wholesale Custom Signup** theme block and **Wholesale custom signup Form** customer account extension
- **Account types:** Both. Shopify admin labels them **Customer accounts** (new customer accounts) and **Legacy** (legacy customer accounts) under **Settings > Customer accounts**.
- **Answers appear in:** Process Wholesale > **Customers** > **View details**, and the Shopify customer note

## Before you start

- Check your account type in Shopify admin under **Settings > Customer accounts**. It decides where you add the form after building it. See [which form to use](signup-forms-overview.md).
- On plans other than Enterprise or Professional, the page shows "Custom signup is available on the Enterprise plan only." with **Upgrade to Enterprise**. Use the standard form instead.

## Steps to build the custom signup form

1. In Process Wholesale, select **Custom Signup Form**. A new form starts with the default fields.
2. To add a field, select **Add new field**. The button at the top adds the field first; the one at the bottom adds it last.
3. For each field:
   - Type the label in the **Display Name** box (help text "Visible to customer").
   - Choose the **Field Type**.
   - Optionally type a **Placeholder**.
   - Check **Required ?** to make it required.
4. Drag a field by its handle to change the order.
5. To remove a field, select the **X** on its card. Locked fields cannot be removed.
6. Optionally set up the consent checkbox under **Add Security & Compliance fields (optional)**.
7. Select **Save** in the save bar. The toast "Form updated" confirms the save.
8. Reopen **Custom Signup Form** and check that every field you marked **Required ?** still has the box checked. If a new field shows as not required, check **Required ?** again and select **Save**.
9. Add the form to your store (see "Add the custom form to your store").

The **Note** banner at the top of the page has a **Watch tutorial** link to a video of these steps.

## Custom signup form field types

| Field type      | What the applicant enters                             | Notes                                                                                                                                                                                                        |
| --------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Text**        | One line of text                                      |                                                                                                                                                                                                              |
| **Email**       | An email address                                      | An extra email, for example accounts payable. It is saved in the customer note, not as the account email. On a theme form, a logged-in customer sees their account email in this field and cannot change it. |
| **Number**      | A number                                              |                                                                                                                                                                                                              |
| **Long text**   | Several lines of text                                 | Shown as a multi-line box on theme forms and as a single-line field in customer accounts                                                                                                                     |
| **Address**     | Country, address, apartment, city, state and zip code | One per form. Saved as one line. In customer accounts the applicant can pick a saved address.                                                                                                                |
| **File Upload** | One file                                              | See [how file uploads work](signup-form-file-uploads.md)                                                                                                                                                     |

Locked fields show their own types, which you cannot change: **First name**, **Last name**, **Signup Email** (the account email) and **Password**.

## Default fields of the custom signup form

| Display Name     | Field Type   | Required by default       | Can be removed                              |
| ---------------- | ------------ | ------------------------- | ------------------------------------------- |
| First Name       | First name   | Yes (**Mandatory Field**) | No, only the label can change               |
| Last Name        | Last name    | Yes (**Mandatory Field**) | No, only the label can change               |
| Business Name    | Text         | Yes                       | Yes                                         |
| Business Address | Address      | No                        | Yes                                         |
| Phone Number     | Text         | No                        | Yes                                         |
| Tax ID           | Text         | Yes                       | Yes                                         |
| Website          | Text         | No                        | Yes                                         |
| Additional Info  | Text         | No                        | Yes                                         |
| Email Address    | Signup Email | Yes (**Mandatory Field**) | No, only the label can change               |
| Password         | Password     | Yes                       | Kept on the form; only the label can change |

The **Password** row is marked **Legacy Field**. It is used only on legacy customer accounts. On a store with new customer accounts, the row is hidden on the page, and the password is never asked in customer accounts or with the new customer flow.

Each field also shows **ID:** with a short code. The ID is used for translating the field text and is not visible to customers. Field labels are not translated automatically.

## How to add a consent checkbox (terms and conditions)

Under **Add Security & Compliance fields (optional)** ("These fields are always displayed at the bottom of the form"):

1. Type the consent text, for example "I have read and agree to the terms and conditions".
2. Optionally type a link to your terms in **Link to Terms and Conditions**. It must start with `http`.
3. Check **Enabled ?**.
4. Select **Save**.

On the form, the applicant sees a required checkbox with your text and, when a link is set, an icon that opens the link in a new tab. **Submit** stays disabled until the box is checked.

## Add the custom form to your store

**Legacy customer accounts (theme block).**

1. In Shopify admin, go to **Online Store > Themes > Customize**.
2. Open the page for your signup form (or a collection, product or home page template).
3. Select **Add block** and choose **Wholesale Custom Signup**.
4. Set the block settings: **Use new customer flow**, **Registration form heading**, **Text to show to logout customers above login button**, **Text to show for pending approval B2B customers**, **Pending approval message color**, **Text to show for already logged in B2B customers**, **Browse products link for logged in accounts**, and the **Design** settings. They work like the [standard block settings](signup-form-legacy-accounts.md#wholesale-signup-form-block-settings); this block has no field settings, because the fields come from **Custom Signup Form**.
5. Select **Save**.

The **Wholesale Custom Signup** block appears in the theme editor only on Enterprise or Professional.

**New customer accounts (customer account extension).** In Shopify's checkout and accounts editor, add **Wholesale custom signup Form**, and turn on **Use Custom Registeration Form** in the **Wholesaler Information** block so its button opens the custom form. Full steps are in [how to add the signup form to new customer accounts](signup-form-new-customer-accounts.md). To take guest applications on new customer accounts, also add the **Wholesale Custom Signup** theme block with **Use new customer flow** set to **Yes**.

## What your customers see

On a theme page, the custom form shows your heading, your fields in your order with an asterisk on required ones, the consent checkbox if enabled, the built-in captcha and **Submit**. The **Password** field appears only on legacy customer accounts for visitors who are not logged in. Logged-in customers see their name and email filled in and locked. Pending and wholesale customers see the same messages as on the standard form.

In customer accounts, the custom form shows the same fields without the password, plus the consent checkbox if enabled.

## Where the answers appear

Each answer is saved in the Shopify customer note as a line that starts with the field's **Display Name**, followed by the answer, for example "Resale certificate number" and "12345". You can read the note:

- In Process Wholesale under **Customers**, with **View details** on the customer (**Signup notes**). File links open in a new tab.
- In Shopify admin on the customer's page, in the note.

The **New Wholesale Application** email lists the applicant's email and name. For applications from a theme form, it does not include the custom field answers, so open **View details** to review them.

## How saving the custom signup form works

Saving checks the form and shows errors in a banner titled "Please correct the following errors to save your changes" (toast "Please correct the form errors to save your changes"):

| Message                                                                                          | Cause                                           |
| ------------------------------------------------------------------------------------------------ | ----------------------------------------------- |
| "Add at least one field to the signup form"                                                      | The form has no fields                          |
| "Missing or invalid fields provided"                                                             | The field list is empty or invalid              |
| "The signup form needs exactly one email field"                                                  | There is not exactly one **Signup Email** field |
| "The signup form supports one address field"                                                     | More than one **Address** field                 |
| "The signup form supports one first name field" / "The signup form supports one last name field" | A name field is duplicated                      |
| "Consent is enabled, but no consent text is provided"                                            | **Enabled ?** is checked without consent text   |
| "Invalid agreement Link Provided"                                                                | The consent link does not start with `http`     |
| "We couldn't save your signup form. Try again in a moment."                                      | The save failed; try again                      |

If the **Password** field is missing when you save, Process Wholesale adds it back and reloads the list.

**Example.** You add a **File Upload** field "Resale certificate" and a **Text** field "Resale certificate number", check **Required ?** on both, move them under Tax ID, and select **Save**. You reopen **Custom Signup Form**: both new fields show **Required ?** unchecked, so you check it on both again and select **Save**. After that save, reopening the page shows both boxes checked, and the form is ready. An applicant on your wholesale page now sees the two fields after Tax ID and cannot submit without them.

## Limits and things to know

- **Enterprise or Professional only.** The page, the theme block and the customer account custom form all need one of these plans.
- **Save once before using the block.** The **Wholesale Custom Signup** block shows no fields until the form has been saved at least once. Select **Save** on **Custom Signup Form** (make any change to enable the save bar).
- **Check Required after adding a field.** A field added and marked **Required ?** shows as not required after its first save. The same happens to the default **Business Name** and **Tax ID** fields the first time you save the form. Reopen the page, check **Required ?** again, and save again; if you save again without checking it, the storefront form also treats the field as optional.
- **Dashboard card.** The **Signup form** card on the Process Wholesale Dashboard reads ON when the **Wholesale Custom Signup** block or the **Wholesale Signup Form** block is on a page template of your published theme, or when a wholesale signup form is added in new customer accounts. A block on a collection, product or home page template reads OFF.
- **Placeholders are not shown** on the storefront form or in customer accounts.
- **One address, one signup email, one first name, one last name.**
- **Labels are not translated automatically.** The text you type is shown in every storefront language.
- **Answers are text in the customer note.** They are not separate Shopify customer fields.

## Troubleshooting

| Symptom                                               | Likely cause                                   | Fix                                                            |
| ----------------------------------------------------- | ---------------------------------------------- | -------------------------------------------------------------- |
| The **Wholesale Custom Signup** block shows no fields | The form was never saved                       | Open **Custom Signup Form**, make a change and select **Save** |
| The block is missing in the theme editor              | The store is not on Enterprise or Professional | Upgrade under **Plan**                                         |
| A required field can be left empty                    | **Required ?** did not save on the new field   | Reopen the page, check **Required ?** and select **Save**      |
| Fields appear in an old order in customer accounts    | The order changed after the form was loaded    | Select **Save** on **Custom Signup Form** again                |
| The placeholder text does not appear                  | Placeholders are not shown on the forms        | Put the hint in the **Display Name** instead                   |

## Frequently asked questions

### Does the custom signup form work with new customer accounts?

Yes. The same fields are used by the **Wholesale Custom Signup** theme block and the **Wholesale custom signup Form** customer account extension. You edit them in one place, **Custom Signup Form**.

### Which field types can the custom signup form use?

Text, Email, Number, Long text, Address and File Upload, plus the locked First name, Last name, Signup Email and Password fields.

### Where do I see the answers from the custom signup form?

In Process Wholesale under **Customers** > **View details** (**Signup notes**), and in the customer note in Shopify admin. Each answer is labeled with the field's **Display Name**.

### How do I add a terms and conditions checkbox to the signup form?

Under **Add Security & Compliance fields (optional)**, type the consent text, optionally a link starting with `http`, check **Enabled ?** and select **Save**. Applicants must tick the box before **Submit** is enabled.

### Can I remove the Password field?

No. Process Wholesale keeps one Password field on the custom form and adds it back if it is missing. It is only shown on legacy customer accounts, to visitors who are not logged in.

## Related articles

- [Wholesale signup forms: which form to use](signup-forms-overview.md)
- [How file uploads work on the wholesale signup form](signup-form-file-uploads.md)
- [How to add the wholesale signup form to new customer accounts](signup-form-new-customer-accounts.md)
- [Process Wholesale plans and what each plan includes](../account/plans-and-pricing.md)
- [Wholesale signup form not working](../troubleshooting/signup-form-not-working.md)
