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

  • 27 November 2020
  • 13 replies
  • 7487 views

Userlevel 6
Badge +13

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!

 


13 replies

Userlevel 6
Badge +37

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

Badge

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.

Userlevel 6
Badge +37

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

Badge

Thanks @alex.hong 

I understand your point, it’s just that the “Placed Order” metric already contains all the exact same data points as the “Ordered Product” event. 

From https://developers.klaviyo.com/en/docs/guide-to-integrating-a-platform-without-a-pre-built-klaviyo-integration

Placed Order:

"Items": [{ "ProductID": "1111", "SKU": "WINNIEPOOH", "ProductName": "Winnie the Pooh", "Quantity": 1, "ItemPrice": 9.99, "RowTotal": 9.99, "ProductURL": "http://www.example.com/path/to/product", "ImageURL": "http://www.example.com/path/to/product/image.png", "Categories": ["Fiction", "Children"], "Brand": "Kids Books" }, { "ProductID": "1112", "SKU": "TALEOFTWO", "ProductName": "A Tale of Two Cities", "Quantity": 1, "ItemPrice": 19.99, "RowTotal": 19.99, "ProductURL": "http://www.example.com/path/to/product2", "ImageURL": "http://www.example.com/path/to/product/image2.png", "Categories": ["Fiction", "Classics"], "Brand": "Harcourt Classics" } ],

Ordered Product:

"properties": { "$event_id": "1234_WINNIEPOOH", "$value": 9.99, "OrderId": "1234", "ProductID": "1111", "SKU": "WINNIEPOOH", "ProductName": "Winnie the Pooh", "Quantity": 1, "ProductURL": "http://www.example.com/path/to/product", "ImageURL": "http://www.example.com/path/to/product/image.png", "Categories": [ "Fiction", "Children" ], "ProductBrand": "Kids Books" },

...There seems to be literally no reason why “Ordered Product” could not be derived programatically from the “Items” field in the “Placed Order” event (combined with the parent event_id)?

Have I missed something?

 

Chris

 

 

Userlevel 6
Badge +37

Hi @crobinuk,

Think of a customer ordering a product as one event as a whole. The placed order metric would give macro level detail and ordered product would give micro level details about that specific event.

If the integration you were building were to track info that a customer ordered, how would that integration know what they ordered and each detail of that item?

That is where placed order and ordered product work together to give you all that information. As mentioned in the original post by Julia, 

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. 

Ordered product calls generate new information regarding specific item data as opposed to a placed order metric that looks at the customer’s cart as a whole.

 

Thanks,

Alex

Badge

Am building a custom integration and struggling to understand why we need to post both “Placed Order” events as well as individual “Ordered Product” events when a customer places an order.

I would have expected Klaviyo to generate the “Ordered Products” events automatically, triggered by the “Placed Order” event.

There is no new information in these “Ordered Product” calls that couldn’t have been derived from the “Placed Order” call.

Am I missing something?

Userlevel 6
Badge +37

Hi @Kyle Sinko!
Glad I could clarify a bit!
To answer your question, it would depend on the segment definition for how items are called in. In regard to your example, when doing a Placed Order → Item → Contains product X,Y,Z each product is treated as an OR definition. Meaning that although multiple items are listed it would segment for all users who have ordered any of the items that contain X,Y,Z.

Hope that made sense!
Alex

Hi there @ThunderKatie  and @Kyle Sinko!

Hope to provide some info here!

The best way to do this is to utilize one of the following segment definitions: 
?name=inline-1702653327.png
?name=inline-702750095.png

You can create various segments using the AND and OR conjoining segment criteria. This would allow you to either group customers that have bought a series of products or create one segment of customers that have bought any of a specific number of items. Utilizing AND means a customer has to order all of the included products in order to join the segment.  Utilizing OR means a customer has to order only one of the included products in order to join the segment.  

Placed Order allows you to pull multiple items at one time, Ordered Product allows you to specify one product for the segment. 

Hope this helped!

Alex

Thanks for the clarification Alex!

Just a follow up question, you mention “Placed Order” allows you to pull multiple items at one time. This is what my unclearness revolves around. If I were to do this, how is it treated?

For example, do all the products listed have to be in the placed order? If someone places an order containing just one of the products, does that pass the criteria? Cheers

Userlevel 6
Badge +37

Hi there @ThunderKatie  and @Kyle Sinko!

Hope to provide some info here!

The best way to do this is to utilize one of the following segment definitions: 
?name=inline-1702653327.png
?name=inline-702750095.png

You can create various segments using the AND and OR conjoining segment criteria. This would allow you to either group customers that have bought a series of products or create one segment of customers that have bought any of a specific number of items. Utilizing AND means a customer has to order all of the included products in order to join the segment.  Utilizing OR means a customer has to order only one of the included products in order to join the segment.  

Placed Order allows you to pull multiple items at one time, Ordered Product allows you to specify one product for the segment. 

Hope this helped!

Alex

Has anyone tried using “Placed Order” to segment people who have ordered from a list of products?

If you select multiple items, will it only segment for people who have purchased ALL of those items, or will it segment for people who have purchased ANY of those items?

Trying to avoid using Ordered Product and adding a new filter separately for each product.

This is what I’m trying to figure out. Did you ever get an answer?

Badge

Has anyone tried using “Placed Order” to segment people who have ordered from a list of products?

If you select multiple items, will it only segment for people who have purchased ALL of those items, or will it segment for people who have purchased ANY of those items?

Trying to avoid using Ordered Product and adding a new filter separately for each product.

Userlevel 6
Badge +13

Hi @CheefDamien great question! That number is an average taken of your Placed Order Rate based on the time period selected.

The Placed Order Rate is calculated as the number of placed orders / the number of recipients.

Badge +1

When creating the new card for my Business Health Check dashboard, is the Avg. Daily Placed Order Rate based off total delivered emails or opened emails?

Reply