Skip to main content
Julia.LiMarzi
Klaviyo Employee
Klaviyo Employee
November 27, 2020

Placed order vs. Ordered Product Events: What's the difference?

  • November 27, 2020
  • 17 replies
  • 27119 views

If you have an ecommerce integration added to your Klaviyo account, you’ll see both Placed Order and Ordered Product events in your account. But what is the difference and why does Klaviyo include both?

Placed Order

Every order in your e-commerce store will generate one Placed Order event for the entire order. This event will include all line items, the value of the order, the categories or collections the products are from, item count, and other important information that pertains to the entire order. Placed Order value will equate to the total order value, including shipping and any applied discounts.

Ordered Product

On the other hand, Ordered Product events occur for each individual item ordered. These events don’t include information about the overall order, but have more detailed information about the individual item purchased, such as sku, or different variations and product attributes. The information included in this event will vary based on your ecommerce platform. 

If a customer orders one product from your shop, you will see one Placed Order and one Ordered Product event. However, if another customer orders 3 different products from your shop, there will be one Placed Order event and 3 Ordered Product events. The Ordered Product value will equate to the total value of the item purchased, with no shipping costs or discounts included.

Why Both?

Having both event metrics allows you to look at your data in different ways and trigger different flows. Placed Order is great for look at order level data, understanding average order value, and triggering Order Confirmation emails. Ordered Product is good for understanding which products are most popular and creating product specific cross-sell and up-sell flows. 

Have any other questions about these two metrics? Post them below and let’s discuss!

 

This topic has been closed for replies.

17 replies

alex.hong
Klaviyo Alum
March 7, 2022

Hi @crobinuk,

The reasoning why we separate these metrics is because the Placed Order event is a Multi-item metric, and Ordered Product is a single-item metric. There are different benefits to each, such as the ability to filter the Ordered Product event by event data that is nested too far to use when filtering Placed Order event (i.e. filtering by Product ID or SKU if they want to send a Flow to everyone who purchases a specific Product ID / SKU). We can only filter Flows and Segments by top-level properties, not nested event data so the single-item event enables us to filter on different data.

There also needs to be separate calls for each separate event / we cannot push multiple events into Klaviyo in a single API call so that is the reasoning for the two.

 

Hope that cleared things up,

Alex

March 8, 2022

Thanks @alex.hong 

 

Totally understand Klaviyo’s internal limitations on processing the data / nesting, my query is about populating the data in the first place.

I still can’t see any reason why the data for “Ordered Products” couldn’t automatically get populated by Klaviyo when processing a “Placed Order” event, but I guess it works this way for legacy reasons. It’s just a shame that SO much data is being duplicated, lots of unnecessary packets being sent.

alex.hong
Klaviyo Alum
March 9, 2022

Hi @crobinuk,

My pleasure. 

Since it sounds like you are trying to pass custom events, you wouldn't technically need to pass ordered product events if you don't want to since Klaviyo won't automatically "unpack" a placed order event for you.

I saw some more info regarding this in a related post:

I think another reason why Klaviyo wouldn't perform the unpacking and trigger Ordered product events based on a Placed order event is due to how much additional data and more details a customer can include in their ordered product payload if they want since they are on a custom event. In most cases the ordered product event will pass similar details but not always based on how customers have things set up.

 

All the best,

Alex

Contributor III
September 15, 2022

Hi there! 

I’m trying to segment a replenishment flow based on what product variant a customer purchased.

I’m using the ‘Placed order’ metric to trigger the flow and am cautious about switching to ‘Ordered product’ instead as I fear that would trigger multiple flows per order. 

Are we able to edit what information is pulled through from Shopify for the ‘Placed order’ metric so that it contains variant information as well as just item names? 

Thanks!

alex.hong
Klaviyo Alum
September 15, 2022

Hello @SarahCopyClub,

You can definitely set up a filter/segment 'Placed order' events by specific variant IDs. In order to set up a post-purchase email for a specific product variant, you will want to use the "Ordered Product" metric for your Flow trigger. Then, you can filter and target Ordered Product events based on the following criteria:
 

  • $value: The total value of the item purchased; no shipping costs or discounts included
  • Name: The name or title of the ordered product in Shopify, e.g., t-shirt
  • Variant Name: The name or title of the product variant in Shopify, e.g., red, size medium t-shirt
  • SKU: The SKU of the product variant, e.g., REDMEDIUMTSHIRT
  • ProductID: The ID associated with the product in your store
  • Quantity: The total quantity ordered of the product
  • Collections: The complete set of collections or categories applied to the product, e.g., t-shirts, men's and sale
  • Tags: Any tags applied to the product in your store
  • Variant Option: <OptionName>: the name and value of any variant options for the variant ordered, e.g., Variant Option: Size would be Medium and Variant Option: Color would be Red
  • Attribute: <AttributeName>: the name and value of any product attributes for the product ordered, e.g., Attribute: Season would be Spring


Here are more details on setting up an "Ordered Product" metric-based Flow for specific products:


Please note that all of the data that you are able to use off of Shopify events is pushed over to Klaviyo from Shopify. We have no control over what data syncs over, we just accept whatever Shopify chooses to send.

Contributor III
October 4, 2022

Hey @alex.hong, thanks so much for this, that’s really helpful! 

I’ve now followed your steps to do the post-purchase flow using the ‘Ordered product’ metric. 

All noted re. your comment about data coming from Shopify. However, different metrics display different filtering options in Klaviyo, even though all the data is clearly coming through from Shopify. Can I make more filters appear for certain metrics? 

 e.g. I need to create segmented Abandoned Cart flows based on product variant too, but don’t have the ‘Variant’ filter option for the ‘Checkout Started’ metric. Do you have a potential workaround? 

 

Thanks!

alex.hong
Klaviyo Alum
October 4, 2022

Hi @SarahCopyClub ,

Unfortunately, the data that contains variant is nested too deep into the Checkout Started event and you couldn't use it in a segment or a trigger filter. Long story short, we're only able to use the top tier data in a segment definition / filter. For instance the Items / Collections attribute are usable:

?name=inline-1481978487.png

Whereas the variant data is nested too deep here:

?name=inline1982353110.png

You might find a way to amend your checkout started events into Shopify and put the variant data at the top-tier.