Summary: Within my Checkout.Liquid file, I am inserting a custom field programmatically. I am trying to set that variable as an attribute to be used in the Notification Order Confirmation email process. However, that attribute is not being displayed within the email.
Context:
I initially followed this walkthrough/tutorial to create my foundation of code.
I am appending an Text Input with the HTML Attributes:
name="checkout[attributes][oppField]" value="{{ checkout.attributes["oppField"] }}"
I know this works, because after the HTML Form is submitted, this value persists after returning to this page.
To Note:
I noticed in the Order documentation for Attributes It mentions “Attributes are collected with the cart.”
In my Cart-Template.Liquid I read for cart.attributes["oppField"] which returns the value I inputted at checkout. So these are referring the same variable/object.
My Issue:
At Settings > Notifications > Edit Order Confirmation
I have tried two blocks of code to display this value, however the value is NOT displaying for either attempt:
// Block 1
{% if order.attributes %}
{% for attribute in order.attributes %}
{% if attribute.first == 'oppField' %}
<h5>t1: {{ attribute.first }}: {{ attribute.last }}</h5><br>
{% endif %}
{% endfor %}
{% endif %}
// Block 2
{% if order.attributes['oppField'] and order.attributes['oppField'] != '' %}
<h5>t2: {{ order.attributes['oppField'] }}</h5>
{% endif %}
Could my problem be (Protentional):
- Trying to look for,
{% if attribute.first == 'oppField' %}? - Trying to read from
order.attributesrather than justattributes? - Some kind of syntax error?
Thank you for any response or ideas, because I am all out!