Allowing new B2B customers to request access to your store

You can allow new B2B customers to request access to your online store using company account requests. You need to install the Shopify Forms app, create and customize a form for wholesale customers to fill out, and then add a popup or inline form to your online store.

When a customer submits the form, a company, a company location, and a customer are automatically created in your Shopify admin. You can review their information and approve or deny their request to access your online store and buy from your business.

Set up a company account request form

Before you can set up a company account request form, you need to install the Shopify Forms app.

You can set up a popup or inline form in your online store. Typically, popups are used for short forms. Inline forms are best suited for longer forms or when you want to have a dedicated sign up page on your online store.

Steps:

  1. From your Shopify admin, go to Apps > Forms.
  2. Click Create form.
  3. Select whether you want to create a popup form or an inline form.
  4. Enter a name for the form.
  5. Click Create.
  6. In the Fields section, click Company and customer. Company name and email address are required for automatic creation of a company record.
  7. Optional: To add additional fields, do the following:
    1. Click Add new field.
    2. Select an existing field or click New field to create a custom input. Existing fields when submitted automatically create the record for that field in your Shopify admin. By default all field submissions are stored as a metaobject. You can also store the field as a company metafield or a customer metafield.
  8. Configure the rest of the form based on your preferences.
  9. Click Save.
  10. Depending on the type of form you chose:
    1. Add a pop-up form to your online store
    2. Add an inline form to your online store

Adding custom input fields to your form

You can add custom fields to your form and store them as local fields, customer metafields, or company metafields (customer or company). When you create a custom field, you need to name it, select the field type, and choose whether it's required for form submission. Learn more about managing form fields.

Local fields

Local fields are stored only on the form where you create them. They aren't saved for future use on other forms. To reuse a local field on a new form, you need to duplicate an existing form that uses that field.

The information submitted for local fields is also only viewable within Metaobjects. It's not available on the company or customer profile that is created after a customer submits the form. If you want to view all submitted information on the company or customer profile, then store the information as customer or company metafield.

You can change a locally stored field to a customer or company metafield at any time by selecting Also store as customer metafield. When you convert a local field to a metafield, only new form submissions are stored in the metafield. Previous submissions remain as local field data.

Customer or company metafields

Customer or company metafields are saved in the form field picker for reuse on other forms. If you have up to 20 metafields, then they're all available for reuse. If you have more than 20 metafields, only pinned metafields are displayed. Learn more about managing your pinned metafields.

After you store a custom input field as a metafield, it can't be converted back to a local field, and any changes to metafields will update all forms using that field.

After you store a custom input field as a metafield, it's saved in Custom data > Customers or Companies section of your Shopify admin. You can use this metafield data to assess company account requests for B2B customers or to create customer segments.

If a customer submits information for a field that's already linked to their customer profile more than one time, then their customer profile displays metafield data only from the most recent form submission.

Custom input field data types

A custom field can be any of the following data types:

Custom input field data types
Field data typeDescription
Single-line textA short text field appropriate for a single sentence.
Dropdown listA list of options presented as a dropdown menu that the user can select one option from.
Radio buttons A list of options presented as a series of buttons that the user can select one option from.
Multi-line textA longer text field appropriate for a paragraph.
Multiple choiceA list of options presented as a series of checkboxes. Unlike the Dropdown list and Radio buttons, users can select more than one response.
DateA specific date.
NumberA single number.
File uploadA single file attachment of 20 MB or less. The file must be one of the following accepted file types:
  • GIF
  • HEIC
  • JPEG
  • PDF
  • SVG
  • WebP
  • XML

For example, if you want to know how many shipping locations a company has before approving them as a B2B customer, then you can create a form with a custom number field. When new B2B customers complete the form, they must enter the number of locations they have before submitting. You can then store this information as a metafield on their company profile for future reference.

Review company account requests

After you add the form to your online store, new wholesale customers can submit the form to request access to buy from your business. When a customer submits the form, a company with an associated customer and location is created in your Shopify admin to review. If you have added Existing fields, then they also automatically update for the company and customer.

By default, companies created through the form can't place orders in your online store or access B2B pricing until you approve them. You can automatically approve all new company account requests submissions using the Allow ordering for companies created by company account requests template in Shopify Flow. Learn more about B2B templates for Shopify Flow..

You can review company account requests in the Ordering column and choose whether to approve companies in the Shopify admin. You can view a record of all form submissions by going to Content > Metaobjects > Recent entries in your Shopify admin.

Steps:

  1. From your Shopify admin, go to Customers > Companies.
  2. Click the Ordering not approved tab.
  3. Click the company that you want to review.
  4. In the Metafields section, review the information that the company contact has submitted by using your form:
    • To reject an application, delete the company.
    • To approve a company, do the following:
      1. Click Manage permissions.
      2. Select locations and assign permissions.
      3. Click Next.
      4. Optional: Select Notify customer that they can start placing B2B orders to send an email to the company contact.
  5. Optional: If you have local fields in your form, then you can review the information submitted for those fields in Metaobjects:
    • In the Metafields section, click on the grey time and date box next to Shopify Forms submissions.
    • Click the time and date the form was submitted to view local fields and the entire form submission.

Gated B2B stores and company account requests

You can't use company account requests when you have a dedicated store that is gated and available only to B2B customers.

However, you can remove store gating and hide sensitive information so that only logged-in wholesale customers can access it. This lets you add a form to the public-facing portion of your online store, without disclosing any information you don't want to share publicly.

You can hide products, prices, buy buttons, and other information from non-logged in customers using Liquid code or the theme editor, depending on the theme you use. Before you customize your theme, make sure to duplicate your theme to create a backup copy.

Steps:

  1. From your Shopify admin, go to Online Store > Themes.
  2. Next to the theme that you want to edit, click Customize.
  3. In the Default context, use the drop-down menu to choose the page that you want to hide information from, such as Home, Products, or Pages.
  4. Locate the information that you want to hide, and then click the eye icon to hide content.
  5. Optional: If you sell a product that you want to hide from unknown or new customers, but accessible to your logged in B2B customers, then remove the product from the online store sales channel. If you want to hide multiple products, then you can use bulk actions.
  6. Change your view to the B2B context, and then make sure that all of the relevant information is still available to logged in B2B customers.
Can’t find the answers you’re looking for? We’re here to help.