The guidance around hidden line item properties is not clear and does not match when comparing the Theme Architecture documentation to the Liquid Objects documentation.
If the guidance is that _
properties are hidden automatically at checkout, then the documentation for the liquid cart should also hide _
properties.
Theme Architecture:
Docs show a line item properties snippet for cart that does not include conditions for hidden line item properties:
{% for item in cart.items %}
<!-- line item info -->
{% unless item.properties == empty %}
{% for property in item.properties %}
{{ property.first }}:
{% if property.last contains '/uploads/' %}
<a href="{{ property.last }}">{{ property.last | split: '/' | last }}</a>
{% else %}
{{ property.last }}
{% endif %}
{% endfor %}
{% endunless %}
{% endfor %}
Liquid Objects:
Docs mention hidden line item properties at checkout
You can add an underscore to the beginning of a property name to hide it from customers at checkout. For example, properties[_hiddenPropertyName].
Requested update to theme docs:
If the guidance is that _
properties are hidden automatically at checkout, then the documentation for the liquid cart should also hide _
properties.
To ensure consistency of how hidden line item properties are handled, the documentation should be updated to use a snippet similar to Dawn, that checks for properties beginning with an _
{%- for property in item.properties -%}
{%- assign property_first_char = property.first | slice: 0 -%}
{%- if property.last != blank and property_first_char != '_' -%}
<div class="product-option">
<dt>{{ property.first }}:</dt>
<dd>
{%- if property.last contains '/uploads/' -%}
<a
href="{{ property.last }}"
class="link"
target="_blank"
aria-describedby="a11y-new-window-message"
>
{{ property.last | split: '/' | last }}
</a>
{%- else -%}
{{ property.last }}
{%- endif -%}
</dd>
</div>
{%- endif -%}
{%- endfor -%}