Looking at your question, there's actually a misunderstanding here. Klaviyo does collect arrays of cart items, not just the first item. You can access all items in the cart for your upsell logic.
For Checkout Started events (Shopify), you have access to multiple data arrays:
Items - Simple array of product names$extra property with full product informationFor Added to Cart events, you get:
ItemNames, Categories, and Tags for all items currently in cartTo reference all items in your flow emails, you'll want to use dynamic blocks with arrays:
event.Items or event.extra.line_itemsYour upsell logic can iterate through all cart items to check if the Regimen is present. You'd use the dynamic table feature to loop through all items and apply conditional logic based on product names, SKUs, or tags.
From our experience: Most abandoned cart personalization issues stem from not knowing about the dynamic block functionality rather than data limitations. The cart data is definitely there!
If you're still only seeing the first item, it might be a setup issue with how you're accessing the data rather than a Klaviyo limitation.