Unable to Retrieve Order Line Item Variant Details in Shopify Flow Internal Email

Hi everyone,

I’ve created a Shopify Flow that triggers when a customer places an order. As part of this flow, I’m sending an internal email notification to our team.

The issue I’m facing is that I’m unable to retrieve complete order line item details, specifically the variant selected by the customer (such as variant title, size, color, etc.), in the email content.

What I need in the internal email:

  • Variant title (e.g., Size / Color selected by the customer)

  • Any other variant-specific information from the order line items

    Any guidance, examples, or best practices would be greatly appreciated.

    Thanks in advance for your help!

Use “Add variable” link. You may need to combine the code it creates afterwards (say move two properties inside a single loop, as below).
Code like below:

{% for lineItems_item in order.lineItems %}
  {{lineItems_item.name}} ({{ lineItems_item.variant.title }}): {{ lineItems_item.quantity }}
{% endfor %}

Will produce:

Hey @mohitcuselleration,

You need to loop through the line items using Liquid to access variant details. In Shopify Flow, you can’t directly output {{ order.lineItems }} - you have to iterate through them.

Here’s how to get variant information in your email:

{% for li in order.lineItems %}
Product: {{ li.title }}
Variant: {{ li.variantTitle }}
SKU: {{ li.sku }}
Quantity: {{ li.quantity }}
Price: {{ li.originalUnitPriceSet.shopMoney.amount }}
---
{% endfor %}

The key variable you’re looking for is {{ li.variantTitle }} - this gives you the full variant title (like “Medium / Blue” or whatever option combination was selected).

For cleaner formatting in the email, add <br> tags after each line:

{% for li in order.lineItems %}
Product: {{ li.title }}<br>
Variant: {{ li.variantTitle }}<br>
SKU: {{ li.sku }}<br>
Quantity: {{ li.quantity }}<br>
---<br>
{% endfor %}

Flow uses camelCase for variables (so it’s variantTitle, not variant_title), which trips people up sometimes since theme Liquid uses underscores.

You can also access other line item properties like:

  • {{ li.vendor }} - product vendor

  • {{ li.requiresShipping }} - whether it needs shipping

  • Custom attributes if you’re using those

Best,
Shubham | Untechnickle