Skip to main content
Solved

Issue with Duplicate Items in Klaviyo Dynamic Block (Subscription Flow)


Forum|alt.badge.img+1

Hey everyone,
 

I’m experiencing an issue with my Klaviyo dynamic block in a subscription flow. When a customer orders a single item, the email displays the correct details. However, when they order multiple items, the dynamic block repeats every section in the blocks.

I’m using "event.items" in the row collection and "item" as the row alias.

Has anyone encountered this before? Is there something I might be missing in the setup? I’ve attached here my setup so you could help me investigate the issue.

1st photo - the code used in the row collection, row alias, and the event properties used in the dynamic sections
2nd photo - to show the preview of a customer ordered only 1 item and showing correctly
3rd photo - to show the duplicate blocks in the dynamic block and the event arrays in preview

1st photo - the code used in the row collection, row alias, and the event properties used in the dynamic sections
2nd photo - to show the preview of a customer ordered only 1 item and showing correctly
 
3rd photo - to show the duplicate blocks in the dynamic block and the event arrays in preview


 

Any advice on how to ensure the email correctly loops through all purchased items would be greatly appreciated!

Thanks in advance!

Best answer by JaneImpelido

Update: I’ve managed to resolve the issue myself! In case someone in the future will encounter the same problem. I’m leaving this piece of advice to help them resolve this issue.

The problem was that my entire dynamic block was set to ‘Dynamic’ which caused repeating instead of just the Order Details section.

What I Did:

  • I changed the subscription details, fulfillment info, referral code, and order number to ‘Static’ content instead of using ‘Dynamic’.
  • I used the content repeat function only for the Order Details section as ‘Dynamic’.

This ensured that the static information only appeared once, while the Order Details section repeated correctly for multiple items.

View original
Did this topic or the replies in the thread help you find an answer to your question?

3 replies

talhahussain
Problem Solver IV
Forum|alt.badge.img+8
  • Problem Solver IV
  • 76 replies
  • January 30, 2025

@JaneImpelido  please contact me to resolve this issue


Forum|alt.badge.img+1
  • Author
  • Problem Solver I
  • 8 replies
  • Answer
  • January 30, 2025

Update: I’ve managed to resolve the issue myself! In case someone in the future will encounter the same problem. I’m leaving this piece of advice to help them resolve this issue.

The problem was that my entire dynamic block was set to ‘Dynamic’ which caused repeating instead of just the Order Details section.

What I Did:

  • I changed the subscription details, fulfillment info, referral code, and order number to ‘Static’ content instead of using ‘Dynamic’.
  • I used the content repeat function only for the Order Details section as ‘Dynamic’.

This ensured that the static information only appeared once, while the Order Details section repeated correctly for multiple items.


emma.owens
Community Manager
Forum|alt.badge.img+9
  • Community Manager
  • 42 replies
  • January 30, 2025

Hi ​@JaneImpelido ! 

So when you have a table block set to dynamic, it is going to make both sections of that table dynamic, which will cause ‘ORDER DETAILS’ to be shown twice. A workaround for this would be to, rather than using a table block, insert a new section, then drag a column block into that section and select two columns. From there, drag a text block into each column. For the text block on the left, you can type in ORDER DETAILS and then make any styling changes you’d like. For the text block on the right, you can mimic a dynamic table by setting up content repeat rules, like so: 

 

From here, you will need to identify the correct Product Name variable, and then replace the row collection with the row alias. So for example, if your product name variable is {{ event.extra.line_items.0.name}}, you would want to change this to {{ item.name }} so that it repeats ALL items in a customers order! 

I hope this helps!