Product image and customer info doesnt show in my custom email

Topic summary

A user is experiencing issues with a custom Shopify order confirmation email template where product images and customer information (shipping/billing addresses) are not displaying. They also need help adding subtotal and total price calculations.

Code Issue:

  • The provided HTML/Liquid template code appears corrupted or reversed in sections, making it difficult to parse properly
  • Missing proper Liquid syntax for displaying product images and customer data

Solution Provided:
Another user offered a fixed template that includes:

  • Proper display of product images
  • Subtotal and total price calculations using Liquid variables ({{ subtotal_price | plus: total_order_discount_amount | money }})
  • Structured order items loop with {% for line in line_items %}
  • Customer address conditionals for shipping and billing information

Status:
A working code solution has been shared, though the original poster has not yet confirmed if it resolved their issues. The fix demonstrates proper Liquid template syntax for accessing Shopify order data.

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

Hey Guys,

I created this custom code for my order confirmation email but I cant seem to get the product image or customer info (shipping address, billing address etc.) to show. I was hoping someone knew how to fix this issue? I am also trying to add a subtotal and total price after the shown products but I just cant make it happen. I would really appreciate it if someone could help me on this.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ shop.name }}</title>
    <style>
        body {
            font-family: 'Poppins', sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f8f8f8;
        }
        .container {
            max-width: 600px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f8f8f8;
            border-radius: 10px;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
        }
        .header {
            text-align: center;
            margin-bottom: 20px;
        }
        h1 {
            color: #4b4b4b;
            font-weight: bold;
            font-size: 30px;
            text-align: center;
        }
        .sale {
            max-width: 400px;
            margin: 0 auto;
            padding: 20px;
            background-color: white;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
        }
        .content {
            padding: 20px;
            border-top: 2px solid #F07E82;
            border-bottom: 2px solid #F07E82;
            margin-bottom: 20px;
        }
        .content p {
            margin-bottom: 10px;
            font-size: 16px;
            line-height: 1.5;
            text-align: center;
            color: #7a7a7a;
 
        }
        .button {
            display: inline-block;
            padding: 10px 20px;
            background-color: #F07E82;
            color: #ffffff;
            text-decoration: none;
            border-radius: 5px;
            font-size: 16px;
            border: 2px solid #F07E82;
            transition: ease-in-out 0.4s;
        }
        .button:hover {
            background-color: #f8f8f8;
            color: #F07E82;
        }
        .order-details {
            margin-bottom: 20px;
        }
        .order-details h2 {
            padding-top: 22px;
            font-size: 20px;
            font-weight: lighter;
            margin-bottom: 10px;
            color: #4b4b4b;
            text-align: center;

        }
        .order-details p {
            font-size: 16px;
            margin-bottom: 5px;
        }
        .order-summary {
            margin-bottom: 20px;
        }
        .order-summary ul {
            list-style-type: none;
            padding: 0;
        }
        .order-summary ul li {
            margin-bottom: 10px;
            font-size: 16px;
        }
        .order-summary ul li strong {
            font-weight: bold;
        }
        .order-items {
            margin-bottom: 20px;
        }
        .order-items ul {
            list-style-type: none;
            padding: 0;
        }
        .order-items ul li {
            margin-bottom: 10px;
            font-size: 16px;
        }
        .order-items ul li img {
            vertical-align: middle;
            margin-right: 10px;
            border-radius: 5px;
            box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
        }
        .customer-info {
            margin-bottom: 20px;
        }
        .customer-info h3 {
            margin-bottom: 10px;
            font-size: 18px;
            font-weight: bold;
        }
        .customer-info p {
            font-size: 16px;
            margin-bottom: 5px;
        }
        .footer {
            text-align: center;
            color: #777777;
            font-size: 14px;
        }
        .footer a {
            color: #F07E82;
            text-decoration: none;
        }
        .spacer {
            height: 1px;
            background-color: #F07E82;
            margin-bottom: 20px;
        }
        .status {
            padding-top: 13px;
        }

        .order-details h3 {
            padding-top: 40px;
            color: #bdbdbd;
            font-weight: lighter;
        }

        .order-details span {
            color: #7a7a7a;
        }

        .customer-info h3 {
            color: #bdbdbd;
            font-weight: lighter;
        }

        .customer-info p {
            color: #7a7a7a;
            font-weight: lighter;
        }

        .sale p {
            text-align: center;
            
        }

        .discount {

            text-align: center;
            font-size: 25px;
            max-width: 340px;
            margin: 0 auto;
            background-color: white;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
            border: dotted 3px #F07E82;

        }

        .button {
            width: 300px;
        }

        #mydiv { border: dotted 1px black; }

        .footer p{
            padding-top: 20px;
        }

    </style>
</head>
<body>

    Copy code
    <div class="container">
        <div class="header">
            <h1>Order Confirmation</h1>
        </div>
    
        <div class="content">
            <p>Hey {{ customer.first_name }},</p>
            <p>Thank you for your purchase, this email confirms your order. We will send you another email as soon as your order is {% if pickup_in_store? %}ready for pickup{% else %}shipped{% endif %}.</p>
            <p class="status">You can follow the status of your order by clicking the button below:</p>
            <p><a href="{{ tracking_button_url }}" class="button">VIEW ORDER STATUS ></a></p>
        </div>
    
        <div class="spacer"></div>
    
        <div class="order-details">
            <h2>ORDER NO. {{ order_name }}</h2>
            <h3>ITEMS ORDERED</h3>
            <ul>
                {% for line in line_items %}
                    <li>
                        <img src="{{ line.product.featured_image }}" alt="{{ line.title }}" width="50%">
                        <span>{{ line.title }}</span>
                        <span>{{ line.quantity }}</span>
                    </li>
                {% endfor %}
            </ul>
        </div>
    
        <div class="spacer"></div>
    
        <div class="customer-info">
            <h3>Customer Information:</h3>
            {% if requires_shipping %}
                <p><strong>Shipping Address:</strong><br>{{ shipping_address }}</p>
            {% endif %}
            {% if billing_address %}
                <p><strong>Billing Address:</strong><br>{{ billing_address }}</p>
            {% endif %}
        </div>
    <div class="footer">
        <p>If you have any questions, feel free to reply to this email or contact us at <a href="mailto:{{ shop.email }}">{{ shop.email }}</a>.</p>
        <p>Many Thanks, Vikara Team</p>
    </div>
    <div class="spacer"></div>

    <div class="sale">
        <h1>10% OFF DISCOUNT</h1>
        <p>As thanks for shopping with us, we're giving you a discount coupon to use on your next purchase.</p>
        <div class="discount" id="discount">
            <h3>VKL10</h3>
        </div>
        <p><a href="vikara.shop" width="50px" class="button">SHOP NOW ></a></p>
    </div>
    <div style="margin-top: 20px;"class="spacer"></div>
    <div class="footer">
        <span ><a href="https://www.vikara.shop/products/">SHOP</a></span>
        <span style="margin-left: 80px;"><a href="vikara.shop">HOME</a></span>
        <span style="margin-left: 80px;"><a href="https://www.vikara.shop/pages/contact">CONTACT</a></span>
        
    </div>

</div>

</body>
</html>
1 Like

Hi @Nirmine1111 ,

I have fixed the template to display image, subtotal and total.


    
    
    
    

    Copy code
    
        

            # Order Confirmation
        

    
        
            

Hey {{ customer.first_name }},

            

Thank you for your purchase, this email confirms your order. We will send you another email as soon as your order is {% if pickup_in_store? %}ready for pickup{% else %}shipped{% endif %}.

            

You can follow the status of your order by clicking the button below:

            

VIEW ORDER STATUS >

        

    
        

    
        
            ## ORDER NO. {{ order_name }}
            ### ITEMS ORDERED
            
                {% for line in line_items %}
                    - {{ line.title }}
                          {{ line.quantity }}
                    
                {% endfor %}
            

            Subtotal:  {{ subtotal_price | plus: total_order_discount_amount | money }}
            Total: {{ total_price | plus: total_order_discount_amount | money }}
        

    
        

    
        
            ### Customer Information:
            {% if requires_shipping %}
                

**Shipping Address:**
{{  shipping_address | format_address }}

            {% endif %}
            {% if billing_address %}
                

**Billing Address:**
{{ billing_address | format_address }}

            {% endif %}
        

    
        

If you have any questions, feel free to reply to this email or contact us at [{{ shop.email }}](mailto:{{ shop.email }}).

        

Many Thanks, Vikara Team

    

    

    
        # 10% OFF DISCOUNT
        

As thanks for shopping with us, we're giving you a discount coupon to use on your next purchase.

        
            ### VKL10
        

        

SHOP NOW >

    

    

    
        [SHOP](https://www.vikara.shop/products/)
        HOME
        [CONTACT](https://www.vikara.shop/pages/contact)