Streamlining Shopify Wholesale Applications: The Smart Way to Combine Forms
Hey store owners!
I recently stumbled upon a really common, yet often confusing, question in the Shopify community forums that I just had to share insights on. Jason.Hart, a fellow merchant, was looking for a way to combine multiple forms – specifically a contact form and a customer address form – into a single submission for a new wholesale application page. He wanted everything sent with just one click, which totally makes sense for a smooth user experience.
Why You Can't Combine Shopify's Native Forms (and What to Do Instead)
The Core Challenge: Different Endpoints, Different Goals
Jason's initial approach was to put two separate Shopify form tags ({%- form 'contact' -%} and {%- form 'customer_address' -%}) one after the other, hoping a single submit button would handle both. As many community experts, including Ploqo and Steve_TopNewYork, quickly clarified, this isn't how Shopify's native forms are designed to work.
The crucial takeaway here is that different Shopify form types are built to submit data to different "endpoints." Think of an endpoint as a specific destination or processing logic on Shopify's servers.
- A
{%- form 'contact' -%}sends information to your store's contact email address. - A
{%- form 'customer_address' -%}is specifically for creating or updating a customer's saved addresses and only works for customers who are already logged into their account.
can't submit both forms at once.
The Expert-Recommended Solution: One contact Form to Rule Them All
So, what's the workaround for a wholesale application where you need both contact details and a shipping address from a potential new customer who isn't logged in yet? The consensus from the community is clear: use a single {%- form 'contact' -%} and incorporate all your additional fields, including shipping address details, as custom inputs within that one form.
Jason himself confirmed his goal was simply to collect the details and manually set up profiles, which makes this approach perfect. It avoids the complexities of trying to automatically create customer accounts or addresses via a form, which typically requires a custom app, a dedicated wholesale app, or API integration for larger operations. For smaller stores, manual processing is often sufficient.
How to Implement Your Combined Wholesale Application Form
Let's get practical. Here's how you can modify your page template to create a robust wholesale application form, drawing directly from the excellent code snippet Ploqo shared. This example assumes you're on a theme like Expanse, where you'd typically go into the code editor.
- Go to your Shopify Admin: Online Store > Themes > your theme > … > Edit code.
- You can either paste this into an existing page template (e.g.,
templates/page.liquid) or create a new template specifically for your wholesale page (e.g.,templates/page.wholesale.liquid) and then assign your wholesale page to use that new template. - Paste the following code, which includes inline styling for a clean look:
Wholesale application
{%- form 'contact', return_to: request.path -%}
{%- if form.posted_successfully? -%}
Thanks. We received your application and will be in touch.
{%- endif -%}
{%- if form.errors -%}
{{ form.errors | default_errors }}
{%- endif -%}
Contact details
Shipping address
Additional details
{%- endform -%}
Notice the magic here: every field, whether it's for contact details or shipping information, has a name="contact[...]" attribute. Whatever you put inside those brackets (like contact[Shipping city]) becomes the label in the email you receive, making it super easy to understand which piece of information is which.
Where Your Application Data Lands (and What to Expect)
Once a user submits this combined contact form, all the information arrives as a single email to your store's contact address. You can find or change this address in your Shopify admin under Settings > Notifications. Each of those contact[...] fields will show up as its own clearly labeled line in that email.
It's important to remember, as wilhelmpa highlighted, that these contact form submissions don't automatically land anywhere in your Shopify admin as a customer record or an order. Your email inbox effectively becomes your database for these applications. For a handful of applications a month, this is perfectly fine, and you can manually create customer profiles and addresses as Jason intended.
When to Consider Advanced Solutions (and When Not To)
If you're dealing with a high volume of wholesale applications, or if your goal is to automatically create customer accounts, assign wholesale pricing tiers, or save addresses directly to customer profiles without manual intervention, then a simple contact form won't cut it. In those scenarios, you'd be looking at more advanced solutions:
- Shopify B2B: For Plus merchants, this offers native wholesale capabilities.
- Third-Party Wholesale Apps: There are many excellent apps in the Shopify App Store designed specifically for wholesale management.
- Custom App Development: For highly specific needs, a custom app that leverages the Shopify Admin API to create customers and metafields (as wilhelmpa suggested) might be necessary. This allows for more sophisticated approval workflows and automation.
contact form with custom fields is the simplest, most effective, and budget-friendly solution. It gets the job done without needing complex integrations or monthly app subscriptions. It's a fantastic starting point for any merchant looking to expand into wholesale on Shopify.
Ultimately, understanding the limitations and capabilities of Shopify's native Liquid forms is key to building effective solutions for your store. This community discussion really brought to light a common pain point and offered a clear, actionable path forward for merchants like Jason. If you're building out a similar feature, I hope these insights help you streamline your process and get those wholesale applications rolling in!

