UX for fields
This guide introduces UX guidelines for adding custom fields to checkout.
A static target lets you define the placement for the extension. Depending on your use case, you might also define multiple static targets to place your extension. For example, you might want to give the option to place the delivery instructions extension either before or after the shipping methods section.
Place the delivery instructions extension in close proximity to the checkout step that it's related to. In this case, the static targets purchase.checkout.shipping-option-list.render-before
or purchase.checkout.shipping-option-list.render-after
are the best locations for this extension type because it concerns delivery instructions.
The components to create a custom field to capture delivery instructions depend on the extension's possible states.
The delivery instructions use case can have the following states:
Checkbox
is uncheckedCheckbox
checked,TextField
then becomes visibleTextField
with value
Component | Preview | Tips |
---|---|---|
Checkbox |
N/A | |
TextField |
Only show this component when the customer has expressed interest in adding delivery instructions. |
You can stack the Checkbox
and TextField
components in the BlockStack
component.
Component | Preview |
---|---|
BlockStack |
In the following example, base
is the spacing value between the Checkbox
and TextField
components, which is typically the default option. It prevents the extension from being too cramped or too spacious.
UX guidelines
Anchor link to section titled "UX guidelines"Adhere to the following guidelines when you're designing a delivery instructions use case for checkout UI extensions, so that you can help merchants gain customer trust and provide a great checkout experience:
Reveal information progressively and strategically
Anchor link to section titled "Reveal information progressively and strategically"Show a simplified state of the extension by default. In the following example, the customer can choose to add delivery instructions to an order. If the customer chooses to add delivery instructions, then the TextField
is displayed. It doesn't display otherwise.
Capture and remember customer inputs
Anchor link to section titled "Capture and remember customer inputs"Preserve inputs through the experience. For example, if the customer writes their delivery instructions in the TextField
component, then unchecks the Checkbox
component and checks it again, the instructions should still display rather than having the customer type them again.
Explore UX guidelines for the entire checkout experience.
For practical guidance on how to design a user interface for the Shopify admin, refer to Shopify's App Design Guidelines.
Get familiar with Polaris accessibility and content guidelines.