Skip to content

Registration Forms

A registration form is a public page on your storefront where prospective wholesale buyers apply. They fill in their company info, you review the submission in the app, and approve them into a group with one click.

You can have multiple forms — for example, a general Wholesale application plus a separate International distributors form with different required fields.

  1. You build a form in the app’s Form builder.
  2. You add the Wholesale Registration app block to your theme and point it at the form.
  3. A buyer visits the page, fills in the form, and submits.
  4. The submission shows up in Registrations as pending.
  5. You review it; click Approve to add the buyer to a group, or Reject with an optional reason.
  6. The buyer receives an email — approved or rejected — with whatever message you’ve configured in the email templates.
The approval queue. Pending submissions on top, approved/rejected below.
The approval queue. Pending submissions on top, approved/rejected below.
📸 TODO: save image to public/images/registrations/forms-flow.png — capture from /app/registrations
  1. Open Registrations → Forms and click Create form.
  2. Give the form a name. The name is internal — buyers don’t see it.
  3. The form opens in the builder with three default fields: First name, Last name, Email.

Some fields the form always supports — they’re re-used across email templates and the approval screen:

  • First name, Last name, Email (required)
  • Company name, Phone, Tax ID (optional)
  • A free-form Message field

You can add custom fields too: text, textarea, select, checkbox, or number. Custom field values show up on the review page as a list when you open the submission.

The form builder with two custom fields added.
The form builder with two custom fields added.
📸 TODO: save image to public/images/registrations/forms-builder.png — capture from /app/registrations/forms/<formId>

Above the field list, the form has:

  • Heading — shown above the form fields on the storefront.
  • Description — sub-heading text. Optional.
  • After-submit action — either show a success message in place, or redirect to a URL of your choice.
  • Success heading and message — used when the action is Show message.

For approval workflows that take longer than a couple of business days, say so in the success message. Buyers expect immediate access on most sign-up forms; wholesale applications are different and worth being explicit about.

  1. In Shopify admin, go to Online Store → Themes → Customize.
  2. Open or create a page (a dedicated Apply for Wholesale page works well).
  3. Click Add section → Apps → Wholesale Registration.
  4. In the block’s settings panel, choose which form to render.
  5. Save the theme.
The Wholesale Registration app block in the theme editor, with the form picker open.
The Wholesale Registration app block in the theme editor, with the form picker open.
📸 TODO: save image to public/images/registrations/forms-theme-block.png — capture from Theme editor → Add section → Apps → Wholesale Registration

If you have multiple forms, you can place each on its own page. The block only renders one form at a time.

  1. Open Registrations in the sidebar. Pending submissions sit at the top.
  2. Click a row to open the review panel. You’ll see all submitted fields, plus the buyer’s email and any custom-field values.
  3. Click Approve to choose a group and approve, or Reject and optionally add a reason.
The submission review panel with the Approve dropdown open.
The submission review panel with the Approve dropdown open.
📸 TODO: save image to public/images/registrations/forms-review.png — capture from /app/registrations → click a pending row

Approving a submission:

  1. Creates (or updates) a Shopify customer with the submitted name and email.
  2. Adds that customer to the group you picked, applying the wholesale-<slug> tag.
  3. Sends the Approved email template to the buyer.
  4. Marks the registration as approved in the database.

If the buyer already had a Shopify customer record, the app links to the existing record instead of creating a duplicate.

Rejecting a submission marks it rejected and sends the Rejected email template. It does not create or modify a Shopify customer record. You can re-open a rejected submission later if circumstances change.

Under Registrations → Email settings there are two templates: one for approval, one for rejection. Both support a basic set of substitutions ({{first_name}}, {{shop_name}}, etc.). The substitutions are listed on the page so you don’t need to memorise them.

If your storefront serves multiple languages, you can translate the form’s labels and headings under Form translations. Set the form’s default locale, then add translations per locale and per field. The storefront block picks the active locale from Shopify and renders the translated copy.

Set store-wide behaviour next: Store Settings.