Send Beautiful Order Confirmations That Build Trust

E-commerce Ready

Multi-format

#1 Use Case

Delight customers with instant, professional order confirmations. Include all order details, shipping information, and personalized recommendations - sent through your own SMTP for maximum deliverability.

Why Order Confirmations Matter

  • Reduce Support Tickets: Clear order details prevent "Where's my order?" inquiries
  • Build Trust: Professional confirmations reassure customers their order is being processed
  • Increase Revenue: Include personalized product recommendations to drive repeat purchases
  • Brand Consistency: Match your store's design for a seamless customer experience

Order confirmation emails consistently achieve higher open rates than promotional emails, with product recommendations proven to increase customer lifetime value.

Multi-Format Options

Email

Instant delivery with tracking links

PDF

Downloadable receipt for records

Both

Email with PDF attachment

E-commerce Platform Integration

// Send order confirmation after successful payment
const sendOrderConfirmation = async (orderId) => {
  // Fetch complete order data
  const order = await db.orders.findOne({ 
    id: orderId,
    include: ['items', 'customer', 'shipping', 'billing']
  });
  
  // Get product recommendations based on purchase
  const recommendations = await getRecommendations(order.items);
  
  // Send confirmation email
  const response = await fetch('https://dash.liquidtemplater.com/items/template_request', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_TOKEN',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      data: {
        order: {
          number: order.number,
          created_at: order.created_at,
          payment_method: order.payment_method,
          estimated_delivery: calculateDeliveryDate(order),
          items: order.items,
          subtotal: order.subtotal,
          discount: order.discount,
          shipping: order.shipping_cost,
          tax: order.tax,
          total: order.total,
          tracking_url: `https://shop.com/track/${order.tracking_number}`
        },
        customer: order.customer,
        shipping: order.shipping_address,
        billing: order.billing_address,
        recommended_products: recommendations,
        support_url: 'https://shop.com/help'
      },
      template: `<!DOCTYPE html>
<html>
<head>
  <style>
    body { font-family: Arial, sans-serif; color: #333; }
    .container { max-width: 600px; margin: 0 auto; }
    .header { background: #4A6CF7; color: white; padding: 30px; text-align: center; }
    .order-info { background: #f8f9fa; padding: 20px; margin: 20px 0; }
    .total-row { font-weight: bold; font-size: 18px; }
    .button { background: #4A6CF7; color: white; padding: 15px 30px; 
              text-decoration: none; display: inline-block; margin: 20px 0; }
  </style>
</head>
<body>
  <div class="container">
    <div class="header">
      <h1>Thanks for your order, {{customer.first_name}}!</h1>
      <p>Order #{{order.number}} confirmed</p>
    </div>
    
    <div class="order-info">
      <h2>Order Details</h2>
      <p><strong>Order Date:</strong> {{order.created_at}}</p>
      <p><strong>Order Number:</strong> #{{order.number}}</p>
      <p><strong>Payment Method:</strong> {{order.payment_method}}</p>
      {% if order.estimated_delivery %}
      <p><strong>Estimated Delivery:</strong> {{order.estimated_delivery}}</p>
      {% endif %}
    </div>
    
    <h3>Items Ordered</h3>
    <table width="100%" cellpadding="10" cellspacing="0">
      {% for item in order.items %}
      <tr style="border-bottom: 1px solid #eee;">
        <td>
          <strong>{{item.name}}</strong><br>
          {% if item.variant %}<small>{{item.variant}}</small><br>{% endif %}
          Qty: {{item.quantity}}
        </td>
        <td align="right">{{item.total | prepend: "$"}}</td>
      </tr>
      {% endfor %}
      <tr class="total-row">
        <td align="right">Total:</td>
        <td align="right">{{order.total | prepend: "$"}}</td>
      </tr>
    </table>
    
    <center>
      <a href="{{order.tracking_url}}" class="button">Track Your Order</a>
    </center>
    
    {% if recommended_products %}
    <h3>You Might Also Like</h3>
    {% for product in recommended_products limit: 3 %}
      <p>{{product.name}} - {{product.price | prepend: "$"}}</p>
    {% endfor %}
    {% endif %}
  </div>
</body>
</html>`,
      type: 'email',
      email_to: order.customer.email,
      email_from: 'orders@shop.com'
    })
  });
  
  const requestData = await response.json();
  const requestId = requestData.data.id;
  
  // Poll for email completion
  let emailSent = false;
  while (!emailSent) {
    await new Promise(resolve => setTimeout(resolve, 1000));
    
    const statusResponse = await fetch(
      `https://dash.liquidtemplater.com/items/template_request/${requestId}`,
      {
        headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
      }
    );
    
    const statusData = await statusResponse.json();
    
    if (statusData.data.fullfilled_on) {
      emailSent = true;
    }
  }
  
  // Update order status
  await db.orders.update({
    where: { id: orderId },
    data: { 
      confirmation_sent: true,
      confirmation_sent_at: new Date()
    }
  });
};

// Webhook handler for payment success
app.post('/webhooks/payment-success', async (req, res) => {
  const { order_id } = req.body;
  await sendOrderConfirmation(order_id);
  res.json({ success: true });
});

Order confirmation data is processed immediately and stored in our secure German data centers for 7 days, to ensure delivery after which its deleted for privacy sake