Skip to main content
Contributor I
February 13, 2021
Solved

Exclude products from abandoned cart emails

  • February 13, 2021
  • 34 replies
  • 11003 views

Hello!

I am wondering if it is possible to exclude certain items from the dynamic table block for the abandoned cart e-mails. Or only include certain items/ collections. These are items that are “in” their cart but I do not want to send them to encourage them to finish checking out. For example I have the cloverly app for offsetting carbon footprint for shipping and I also have an app that I use to have multiple options for products. I don’t want these items showing in the abandoned cart e-mail. Is there a way to go about excluding these?

Thanks so much for any help!

Natalie

 

 

 

    Best answer by retention

    @tangleartistry There is a way, but it requires some coding. It’s actually quite interesting to achieve.

    If you have multiple different products that you want to exclude from the dynamic table block, the easiest way to do it is to tag those products in Shopify, and then use that tag to exclude the products.

    Let’s say for example you tag them with “ac_exclude”.

    Then, in the dynamic table block, you need to wrap the text part (Title, Quantity, Price, etc.) in an “IF” statement that should look like this:

    {% if not 'ac_exclude' in item.product.tags %}
    <h3><a href="{{ organization.url }}products/{{ item.product.handle }}">{{ item.product.title }}</a></h3>

    <p>Quantity: {{ item.quantity|floatformat:0 }} — Total: {% currency_format item.line_price|striptags|floatformat:2 %}</p>
    {% endif %}

    This will check for each product if “ac_exclude” is one of the tags. If the product doesn’t have the “ac_exclude” tag, it will be shown in the feed.

    For the image part, you need to wrap the existing snippet, in a new “IF” statement that should look like this:

    {% if not 'ac_exclude' in item.product.tags %}{% if item.product.variant.images.0.src %}{{item.product.variant.images.0.src}}{%else%}{{item.product.images.0.src|missing_product_image}}{%endif%}{%endif%}

     

    Hope that you’ll succeed in implementing this!

    34 replies

    Contributor I
    April 5, 2022

    can this be done with flow filters? 

    David To
    Klaviyo Employee
    Klaviyo Employee
    April 6, 2022

    Hey @montes,

    The solution that’s being discussed in this thread to omit and prevent certain products from being pulled into an email through a dynamic table block would not be the same as using flow filters to exclude users from a flow. 

    The difference here is that a flow filter is used to evaluate if an individual is eligible for the flow as a whole. The solution being discussed here would be on a more targeted level of restricting only certain products from appearing in an email. For example, if someone purchased a t-shirt and a baseball cap, if you wanted to omit the baseball cap, using a flow filter will prevent the user from entering the flow as a whole. Recoding the dynamic table block will still allow the customer to enter the flow, but will prevent the baseball cap from appearing in their abandoned cart email. 

    David

    tobias_wildling_shoes
    Problem Solver I
    Problem Solver I
    August 30, 2022

    Dear all, 
    I was able to use this great way of excluding certain products from a dynamic block. 

    But in my use case it would be more convenient to include certain products. 
    I used the code above but like this: 

    {% if 'ac_exclude' in item.product.tags %} 

    {% endif %}

    but it does not seem to work.

    What could be the correct code snippet here?

     

    Best regards

    Tobias

    David To
    Klaviyo Employee
    Klaviyo Employee
    August 30, 2022

    Hey @tobias_wildling_shoes,
    Just to confirm, are you using the exact code you shared of:

    {% if 'ac_exclude' in item.product.tags %} 

    {% endif %}

    If so, then it seems like you’re missing the response portion of the if-statement. This means that even when this if-statement was true, nothing would be returned since you haven’t defined a response in the statement. My colleague, @Anna McCarthy actually has a great tutorial on using If/Endif/Elif/Else Statements which I’ve included below that I think would be really helpful to take a look at:

    If you were using the code provided by @retention verbatim and it worked successfully, I don’t see why removing the not function in the code wouldn’t be working to achieve the inverse effect. Omitting the not from the code would cause those products tagged with ac_exclude to be shown and products without this tag to be hidden. 

    David

    tobias_wildling_shoes
    Problem Solver I
    Problem Solver I
    August 31, 2022

    Dear @David To 

    thank you for your reply. 
    Of course I used code “in between” that is displayed. 
    I contacted your Chat Support yesterday and we do not know why, but after some tweaking, it worked. 
    Code was correct.
    But it does work now what is most important. 

     

    Thank you! 

     

    Contributor I
    September 16, 2022

    This was very helpful! Thank you for posting a solution.

    Contributor I
    October 2, 2022

    I’m on BigCommerce and want to exclude digital products from showing in my abandoned cart email. I tried using {% if not event.extra.line_items.digital_items %} wrapped around the same text you show above but it doesn’t work. Well at least when I try to preview or send myself a preview, I get an error.

     

    I also tried wrapping my the text with the name of the product (we only sell 1 digital product) and that didn’t work either. I tried both {% if not event.Items == 'Shipping Protection' %} and {% if not item.product.name == 'Shipping Protection' %} and neither worked.

     

    Can anyone help me with this? Much appreciated.

     

    Thanks!

    David To
    Klaviyo Employee
    Klaviyo Employee
    October 6, 2022

    Hey @ajensen,

    I suspect the issue you’re running into may be the syntax you’re using is incorrect. Since the code discussed in this thread relate to the Shopify Checkout Started metric, the syntax would not translate to an email in a flow triggered by BigCommerce’s Started Checkout event. It may be helpful to take a look at some of the resources that were previously provided such as the About Using Event Variables to Personalize Flows and How to Build Dynamic Blocks in a Flow Email Help Center articles to learn how to properly use and pull the correct dynamic syntaxes for your use. 

    I think it would also be helpful if you provided the full if/else statement to see if others can lend some advise.

    David

    Contributor I
    January 20, 2023

    I tried following the code above but I couldn’t get it to work. Sometimes I got an error that I needed to fix the tags, sometimes I would put the code in and it would display the code text in the preview. I know the previews in Klaviyo wouldn’t show the hidden product because I just added the tag to the product, but I don’t think it should be showing the code text. Can anyone help here? I’m not sure what I’m doing wrong.

    David To
    Klaviyo Employee
    Klaviyo Employee
    January 23, 2023

    Hey @kellysandberg,

    Are you sure you’re putting those codes in the source code of the text box? A lot of times I see customers mistakenly add code directly into the text box instead of the source code which is visible to recipients. 

    David