Overview
Within Shopify's checkout, we do interact specifically with a few different fields in a unique way, but are also limited in access to certain fields. Below, the different fields will be discussed as they pertain to Intuitive Shipping.
A note, with regard to Express Checkouts (ie. Applepay, Gpay, etc.), that, with the exception of PayPal, the current information we have available is different per express option, but generally removes all information other than:
Country
State/province
Postal/zipcode
Because of this, any conditions based on email, name, address (ie. PO box), company name, etc. will not work properly, as this information is made unavailable
This field can be used for conditions in order to restrict unique users or to provide an option for those that want to give certain business clients or their own employees special rates. This can be done using something like:
Customer email > Contains > @yourdomain.com
or
Customer email > Does not Equal > restricteduser@yourdomain.com
Name
The customer name field can also be used as a condition, but since names are not unique, they can be less reliable than email addresses. This can be used, though, to provide a code word to individuals for special rates, such as:
Customer Name > Equals > Code Freeship
While generally not used, this does pose an opportunity in rare cases to provide special shipping based on a specific set of information, while not affecting the actual address information.
More notably, the name does impact certain services when compared with Intuitive Shipping. While in testing mode, we do have a specific name requirement of "Intuitive" or, on legacy version "Intuitive Shipping". Because of this, cart or product-page calculators will not work while in testing mode, as they do not provide customer information such as the name. There are currently no such calculators that we have any conflict with, once the app is live, so it is very likely that there will be no issue (assuming their rates are not based on customer information), but in testing, they will need to go through checkout to see the Intuitive Shipping rates.
Company Name
The company name field is one that we interact with as a means of simulating the difference between a residential and a commercial address. When using a parcel (carrier) service, there is always the toggle of address type; Residential, Commercial, or the default, Automatic. When set to Residential or Commercial, this value is fixed, and thus does not require any input, but when it is set to automatic, we use the company name field to see how to proceed. If there is any input in the company name field, it is assumed that the address is commercial, otherwise it is residential and has the residential surcharge applied.
In some cases, one my want to apply different rates for commercial users, in which case the following condition could be used:
Company Name > Contains > a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9,0
or, for residential:
Company Name > Does Not Contain > a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9,0
Since this contains all alphanumeric characters, it essentially checks to see if anything (other than just a symbol) is used.
Address
The address line does have a few uses for Intuitive Shipping, when express checkouts are not in use. This can be used as a means to force-update the Shopify cache when doing testing, and can also be used as one of a number of condition parameters.
When testing new rates, Shopify will attempt to use recycled results whenever the exact same cart contents are sent to the exact same address. For this purpose, you can manipulate the address line, since it is not validated, to force this to update. For example, if you shipped to 123 main street, you can change this to 1231 main street, 124 main street, or 123 main street1.
As a condition, address can be interacted with in order to provide rates for ones own street, ie.
Address > Contains > main street
Usually, this would require other formatting types, as well as typically in conjunction with a postal/zipcode condition, in case the street name, such as the above, is not unique:
Address > Contains > main street, main st, main str
Postal/Zipcode > Equals > 12345 > Non-UK postal code format
Most commonly, address is used as a condition to exclude postal codes, since most major carriers (ie. FedEx, UPS, DHL, etc.) will not ship to PO boxes, only being available to the federal postal services, ie. USPS, Canada Post. For this purpose, you can use the condition:
Post Office Box > Equals > No
Apartment, Suite, etc.
This line allows customers to organize their information but passes similarly to the address line. No specific interaction or use.
City
The city is a field with which we can interact for conditions, is used for UPS address validation, and is something that merchants often attempt to manipulate, though, with limited success.
Regarding the limitations, merchants have commonly asked if we can turn this into a dropdown menu of cities, similar to how states/provinces are handled in Shopify, but this field cannot be customized in this way. City names have to be manually entered, and any conditions based on city name need to match in formatting and spelling, ie. City name "Los Angeles", does not equal "LA".
Since spelling errors and formatting differences do commonly exist, it is typically best to use postal/zipcode information instead of city name for condition matching.
Country
The Country field is based on the available countries within the Shopify > Settings > Shipping and Delivery page. If there is a country missing from the list, this means that the country is not included in any of the "shipping to" zones within their settings. We cannot influence, add, or remove countries from this list, as an app, so the merchant will need to go through Shopify to modify this.
Within Intuitive Shipping, our zones are now separate from Shopify, so any time a country is involved, a zone must be created for that country. We do not use country as a condition, but as long as country is listed as a zone, rates can be set exclusive to a shipping zone, thus functioning as its own filter.
State/Province/Region
See "Country".
Postal/Zipcode
The postal code/zipcode can be used as either a subzone or as a condition, giving a lot of flexibility and control with this granular data set. Since this is consistently provided, even with express checkouts, it is a very reliable and consistent control for local groups, delivery ranges, etc.
Phone Number
This field is often filled incorrectly or omitted. As such, we do not often interact with this, and can largely be navigated away from.