Product pages - Get customization information for products

Topic summary

Core Topic:
Implementing line item properties on Shopify product pages to collect customer customization information (e.g., engraving text, personalization details, file uploads).

Key Implementation Steps:

  • Create alternate product templates (product.customizable.liquid) with custom form fields
  • Add HTML input elements with name="properties[Field Name]" syntax
  • Use Shopify UI Elements Generator tool for generating form field code
  • Ensure inputs are placed inside product <form> tags or use HTML5 form attribute

Common Technical Challenges:

  • Theme compatibility: Tutorial designed for older sectioned/non-sectioned themes; newer themes (Dawn, OS 2.0) use .json templates requiring different approaches
  • Missing quantity selectors: Custom fields sometimes hide quantity pickers; fix by enabling “Show quantity selector” in theme settings
  • “Submit” button location: Varies by theme; often found in snippets (product-info.liquid, product-form.liquid) rather than main template
  • Quick view/Buy Now buttons: May bypass required customization fields; requires separate implementation

Data Visibility & Export:

  • Line item properties stored as strings appear at checkout; integers/underscore-prefixed values hidden from customers but visible in admin
  • Properties visible in Admin > Orders but not automatically included in standard CSV exports
  • Third-party apps (EZ Exporter, Mechanic) recommended for bulk data extraction

Current Status:
Thread remains active with ongoing troubleshooting for OS 2.0 themes. Many users successfully implement basic text fields but struggle with advanced features (conditional logic, file uploads, styling consistency). Official Shopify support explicitly not provided for this customization.

Summarized with AI on November 1. AI used: claude-sonnet-4-5-20250929.

Hello! I followed this step by step and was able to get the text box I was looking for however within the text box I am getting the following text directly under the custom field. This is showing on the website. There is also no longer a “Add to cart button” Can you please help. This is how the code looks

{% if section.settings.show_qty %}

{{'products.product.quantity' | t}}

{% endif %} <button type="submit" class="purchase button{% unless section.settings.show_payment_button %} pulse animated{% endunless %}" name="add"

Custom Text

id=“addToCart-{{ section.id }}”
{% unless current_variant.available %}disabled=“disabled”{% endunless %}>

{% unless current_variant.available %}
{{ ‘products.product.sold_out’ | t }}
{% else %}
{{ ‘products.product.add_to_cart’ | t }}
{% endunless %}