Email automation

Topic summary

A merchant wants to prevent order confirmation emails for orders with specific tags and send a custom automated email instead. However, both emails are currently being sent.

Core Issue:

  • Shopify automatically sends order confirmation emails for all orders—this cannot be disabled through code or notification settings, even using Liquid templates.
  • The notification templates allow content customization but not conditional suppression of the email itself.

Proposed Workarounds:

  1. Blank out content conditionally: Modify the Order Confirmation template to display no content when a specific tag is present (e.g., {% unless order.tags contains "no-confirmation" %}). The email still sends but appears empty.
  2. Use separate automation: Continue sending the custom email via automation (already implemented by the merchant).
  3. Shopify Plus options: Advanced users might leverage Shopify Flow or third-party apps (Klaviyo, Omnisend) for more control, though default confirmations still send.

Status: No true solution exists to prevent the email entirely; the discussion remains focused on minimizing its impact through content hiding.

Summarized with AI on October 28. AI used: claude-sonnet-4-5-20250929.

Good morning!

Hoping for help with automation please!

  • I am wanting all the orders that have a particular tag to no longer receive the order confirmation, but receive a separate automatic email.

    I have set up an automation to do so however it is still sending both email confirmation and test email.

    Shopify have confirmed that sending an order confirmation is an expected behavior and it is a limitation to stop sending.

    Is it possible to edit the code in notifications in settings to bypass that email for these particular orders??

    Thankyou for your help

1 Like

Hello @TheSkinNetwork You’re absolutely right—Shopify always sends the order confirmation email, and unfortunately, this behavior cannot be bypassed through code or notification edits, even in the Liquid templates. Here’s why and what you can do about it:

Why You Can’t Stop the Order Confirmation:
. Shopify automatically triggers the order confirmation email immediately upon order creation.

. The code in Settings > Notifications lets you customize the email’s content but not suppress or prevent it from sending.

. Even with tags, customer attributes, or scripts, you cannot conditionally disable it within Liquid.

Workarounds You Can Use:

  1. Blank Out the Email Content for Tagged Orders
    You can modify the Order Confirmation template so that if a tag exists, it shows no content (effectively a “blank” email). It will still send, but the user won’t see anything useful in it.

In the Order Confirmation email:

{% unless order.tags contains "no-confirmation" %}
  
  Hi {{ customer.first_name }}, your order has been received!
  ...
{% endunless %}

This hides the content if the order contains a specific tag (e.g., no-confirmation). It won’t stop the email from sending, but it will make the email appear empty or contain only a short notice.

  1. Send Your Own Separate Email
    You’ve already done this—great! Just ensure the custom automation runs after the order is created and checks for the tag.

  2. Use Shopify Plus (if available)
    On Shopify Plus, you could use Checkout.liquid and Shopify Flow with more flexibility. However, even here, the default order confirmation still goes out—so the same limitations apply unless you use third-party solutions.

Alternative Advanced Option:
If email confusion is a major issue and you’re on Shopify Plus, some stores:

. Use a custom app or integration (like Klaviyo, Omnisend, etc.) to send all order-related emails and disable the built-in notification emails altogether (not fully recommended or straightforward).

TL;DR:
No, you can’t prevent the order confirmation email from being sent via code or notification edits. But you can blank it out for specific tags, and then use automations (like Shopify Flow or a 3rd-party email app) to send your custom email.

Thank you :blush: