Date of change: 1st February 2020

Old schema

Prior to this change, Product Added and Product Removed events included the product as a single element in an array of objects. Although this is consistent with Checkout events, this did not follow Segment's ecommerce spec, and is difficult to use in Segment destinations when the fields are nested in an array. It also didn't make sense conceptually, since the event is always for a single product.

{
  event: "Product Removed",
  properties: {
    products: [
      {
        id: 'ABC',
        name: 'Purple Socks',
        quantity: 1,
      }
    ]
  }
}

New schema

Product Added and Product Removed events now include the product properties in the general properties.

A products array is still included, but now contains the last known contents of the cart. If you want to trigger abandoned cart emails, this passes the last contents of the cart before it was abandoned to the email marketing destination.

For example, a user whose last event was Product Removed for a pair of socks may still have 2x t-shirts in their cart, and so the products array would contain t-shirt with quantity of 2, and an email can be sent to the user saying ‘Do you still want to buy the t-shirts?’

e.g.

{
  event: "Product Removed",
  properties: {
    id: 'ABC',
    name: 'Purple Socks',
    quantity: 1,
    products: [
      {
        id: 'DEF',
        name: 'White t-shirt',
        quantity: 2,
      }
    ]
  }
}

Action you need to take

Any destinations with triggers or reports configured to use the old product properties in the old array format will need to be updated to use the new schema.