[Shopify] Post Purchase Review Flow Sending Second Email for Shipping Cost "product"

  • 10 September 2021
  • 10 replies

Badge +2



I feel like I have a pretty unique problem. I created a post purchase review flow from the Klaviyo template.


My payment provider on Shopify works in a way that when someone orders a product, it creates a separate Shopify order for the shipping. Our store offers free shipping starting from an order of 45€, so all orders below 45€, Shopify will create 2 orders for that customer (1 for the product itself and another for the shipping, which is up to 3.60€).


So my problem is, if someone orders something below 45€, it will count as 2 orders for that customer and Klaviyo will send 2 product review emails to that customer, one of which will be broken as it’s not a real order.

Here is a screenshot of how the preview of the shipping cost product review email:



How can I make it so that Klaviyo will ignore the separate shipping cost order and only send the actual product order. I don’t want it to send 2 emails where 1 is broken anyway.


I tried changing the trigger filters, for example where the value of the fulfilled item is at least 45€, but it still shows under the “waiting” tab, that customers who ordered below 45€ will get two product review emails. 

Here is a screenshot of the actual flow filter (mind you that Klaviyo is displaying the currency as $, but it’s actually €):


How can I make the filter work correctly?




Best answer by alex.hong 14 September 2021, 22:22

View original

10 replies

Userlevel 7
Badge +59

Hi @Anton - welcome to the community!  A few questions about your issue to try to figure out what’s going on:

  • Does the Shipping Order (added by your payment provider) happen to add a  “Shopify Tag” to the order, or use a different or separate Product Name for the shipping Order (example: Shipping Fee)? Or does it just copy the same product(s) name into the duplicated order?  
  • Does the duplicate Shipping order value include the original item cost, or just the shipping cost like you said: Up to 3.60€
  • Do both the Shipping Order and the original Order get marked as Fulfilled in Shopify?
  • Do you want reviews for people who make purchases under 46€?

From what I can see, it should work but you might be also filtering out any normal order that’s less than 46€. Can you go into your Analytics → Metrics → Fulfilled Order and click on the two timestamps of an Order  (and it’s duplicate) to show us what data is passed in both Fulfilled Order events?




Badge +2

Hi Joseph


Thank you for your reply. I will answer your questions in order:

  1. The “Shopify tag” you mention, do you mean the tag gets added inside of Shopify or Klaviyo? If in Klaviyo then I’m not sure how to check it and I would appreciate if you could let me know how I can do that. When I check the shipping order on Shopify, then I see that Shopify adds an “API-SHIPPING” tag, as seen in the screenshot below. For the actual product order Shopify doesn’t add any tag at all.
  2. The duplicate shipping order value is just the shipping fee. The “product” itself in the Shipping order is the name of the parcel machine the customer has chosen.
  3. Yes, both get marked as fulfilled.
  4. I would like to get reviews from everyone. I originally thought that if I include the $value filter above 45 then all the shipping orders get ignored by Klaviyo.

Thanks again

Badge +2

And here is a screenshot from analytics. I hope it explains. I took an example of a customer who ordered a product + paid shipping fee.


Userlevel 7
Badge +58

Hi @Anton ,


I think that @retention did a great job of asking clarifying questions for your problem and definitely helps give more insight into this post when future Community members have similar issues, so quick shoutout to retention for that! We love to see Community members helping others and hope to encourage a platform where that can always occur.

So it seems like through how a Shopify store works, when someone makes an order that is less than $45 and have to pay shipping, the shipping cost appears to be coming in as a separate order for you based on how your  checkout process and Shopify site is set up. To go about fixing your current problem, I would have suggest trying to create a flow filter to exclude orders containing that specific shipping product name. Does the shipping product has the same name across the board? If not you can also just include all variations of the name as part of the flow filter.

There wouldn't need to be any other filters you really need to address excluding the placed order event that only contains the shipping product. Which means that, you also would not need a product value filter. You can filter by product value, but I wouldn't suggest it. This is because if you filtered for any individual product under $45, then if you sell any products that were, for instance $10, it wouldn't be included in the flow


Hope this helped!



Badge +2

Hi @alex.hong ,


Thank you very much for your input! It seems like this is exactly the solution I am looking for.

So I tried applying your recommendations to the flow filter, but I am not sure that I am doing it correctly.

Here is a screenshot:

As you can see, I added both of the parcel machines our customers can choose between from. I am not sure that I did the excluding part correctly.


Person has “Fullfilled Order” where “Items” contains “[parcel 1 and parcel 2]” doesn’t equal 1 since starting this flow..


Is the “Fulfilled Order” correct or should I choose “Placed Order”. Am I doing this correctly or is there some better way to exclude those from the filter?


Thanks again!

Userlevel 7
Badge +58

Hi @Anton 


Glad I could help! Your solution looks great and is definitely a way to get around the problem. You are correct in the sense that it would be Fulfilled Order and not Placed. So in turn, your flow filter would be: fulfilled order where item contains (two shipping items), zero times in last (X) - this would just need to be a smaller time frame like 4 hours or something. I am unsure what the doesn’t equal 1 relates to, but it is not needed for the flow to work. 

Another, more streamlined solution would be to create a trigger filter, follow our documentation so that this flow filter and exclusion part is not needed; this would also evaluate it on triggering event itself. 


Hope this helped!



Badge +2

Thank you so much @alex.hong 


Your solution seems perfect for what I need. Really appreciate how helpful this community is :)

Badge +2

Hi again @alex.hong 


I just checked out the “Trigger Setup Preview” feature and discovered that something still seems to be wrong. It appears that people who paid for shipping will be ignored by Klaviyo and only people who ordered above 45€ will get the email.


Here is an example:


  1. Customer 1, who paid for product + shipping
  2. And customer 2, who didn’t have to pay for shipping:



As you can see, Klaviyo filters out everyone who paid for the shipping. I tried different time filters, 3 days, 3 hours etc but it changes nothing.


Thank you

Badge +2

Looks like I figured it out. It was way simpler than I thought haha. Since Shopify adds an “API-SHIPPING” tag to the shipping orders, I could just filter out the tag from the flow.



Userlevel 7
Badge +58

Hi @Anton !


Great to hear you found a solution! That’s amazing work and thank you for also sharing your steps with screenshots so that other Klaviyo Community members have access to it as well! Looking forward to seeing you more in the forums :)


Have a good day,