How to capture more information on the Customer Registration form

Highlighted
Tourist
8 0 0

Our site is trade focused and as such I have been trying to capture more information at the Customer Registration stage. We would like to add the following fields to our New Customer Registration form:

 

  • Company Name
  • Address Line 1
  • Address Line 2
  • City
  • State/Province
  • Zip
  • Country
  • Telephone

I have managed to add these but unfortunately these are captured as Customers Notes and do not populate the default address section. I have been messing around for hours and hours to try and get the above in their proper places but cannot get it to work. Does anyone know what changes I need to make to get these into the correct place?

 

Here is the code that I have in customers/register.liquid (Theme Venture) is this:

 

<div class="page-width">
  <div class="grid">
    <div class="grid__item medium-up--one-half medium-up--push-one-quarter">

      <div class="form-vertical">
        {% form 'create_customer' %}

          <h1 class="text-center">{{ 'customer.register.title' | t }}</h1>

          {%- if form.errors -%}
            <div class="form-message form-message--error">
              {{ form.errors | default_errors }}
            </div>
          {%- endif -%}

          <label for="FirstName">{{ 'customer.register.first_name' | t }}</label>
          <input type="text" name="customer[first_name]" placeholder="First Name"  id="FirstName" {% if form.first_name %}value="{{ form.first_name }}"{% endif %} autofocus>
 
          <label for="LastName">{{ 'customer.register.last_name' | t }}</label>
          <input type="text" name="customer[last_name]" placeholder="Last Name"  id="LastName" {% if form.last_name %}value="{{ form.last_name }}"{% endif %}>
 
          <label for="CustomerFormsCompany">Company Name</label>
          <input type="text" id="CustomerFormCompany" name="customer[note][company]" value="{{ form.company }}" placeholder="Company Name" required>
 
		  <label for="CustomerFormsaddress1">Address line 1</label>
          <input required class="required" id="CustomerFormAddress1" type="text" name="customer[note][Address1]">		  
		  
		  <label for="CustomerFormsaddress2">Address line 2</label>
          <input required class="required" id="CustomerFormAddress2" type="text" name="customer[note][Address2]">
		  
		  <label for="CustomerFormsCity">City</label>
          <input required class="required" id="CustomerFormCity" type="text" name="customer[note][City]">
		  
          <label for="CustomerFormCountry">Country</label><br>
          <input required class="required" id="CustomerFormCountry" type="text" name="customer[note][Country]">
			  
		  <label for="CustomerFormstateprovince">State/Province</label>
          <input required class="required" id="CustomerFormstateprovince" type="text" name="customer[note][State/Province]" value="{{ cart.attributes["State/Province"] }}">
			  
		  <label for="CustomerFormzip">Zip</label>
          <input required class="required" id="zip"CustomerFormZip="text" name="customer[note][Zip]" value="{{ cart.attributes["Zip"] }}">

          <label for="CustomerFormWebSite">Web Site</label>
          <input type="text" id="CustomerFormWebSite" name="customer[note][WebSite]" placeholder="www.Web_Site.com">
 
          <label for="CustomerFormAddressPhoneNew">Phone Number</label>
          <input type="tel" id="AddressPhoneNew" name="customer[note][phone]" value="{{ form.phone }}" placeholder="Phone Number" required>
       
          <label for="Email">{{ 'customer.register.email' | t }}</label>
          <input type="email" name="customer[email]" placeholder="customer@business.com"  id="Email" class="{% if form.errors contains 'email' %} input--error{% endif %}" {% if form.email %} value="{{ form.email }}"{% endif %} autocorrect="off" autocapitalize="off">

          <label for="CreatePassword">{{ 'customer.register.password' | t }}</label>
          <input type="password" name="customer[password]" placeholder="Password" id="CreatePassword" class="{% if form.errors contains 'password' %} input--error{% endif %}">

          <p class="text-center">
            <input type="submit" value="{{ 'customer.register.submit' | t }}" class="btn">
          </p>

        {% endform %}
      </div>
    </div>
  </div>
</div>
0 Likes
Highlighted
Shopify Expert
29 3 8

Unfortunately the only place you can store extra registration form data is into the Customer Notes. Of course this isn't ideal since it forces the customer to type in their address again during the checkout process, but at least you're able to view the data in the admin area of Shopify. If you have a small number of customers registering and you don't mind some manual work, then you can use the link in the Shopify admin when editing a customer to add a default address (by copy/pasting the address data from the notes section).

 

If you're open to using an app to achieve your goal then I'd suggest taking a look at Customer Fields. The app's pre-built address fields will save the data for all of your desired fields directly into the customer's default address - no extra steps required. The app includes some other useful features too so I figured it be worth a mention :)

Kyle W | Customer Success @ Helium Dev, LLC
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Click Accept as Solution
Helium builds user friendly apps with top-rated US-based support
Customer Fields App
Meteor Mega Menus App
1 Like
Highlighted

Customized Attribute app helps you to collect additional informations on the cart page and customer account registration page, account page. With this app you can get the necessary data directly from your customers in an easy way.

0 Likes