adobe / xdm

Experience Data Model
Creative Commons Attribution 4.0 International
245 stars 319 forks source link

Experience Cloud Product List Item Questions #80

Open trieloff opened 6 years ago

trieloff commented 6 years ago

Questions on product list item.

  1. Is the assumption correct that the most common example of a list where a product list item can show up is the shopping cart?
  2. Does it make sense to identify the list itself, by name or ID?
  3. Can the quantity of a product in a list be smaller than 0?
  4. Does the SKU link refer to a variant or master, as outlined in #79 ?
mhaack commented 6 years ago

Additional questions:

  1. what is the use case for "product list"? I think you be either totally generic for cart, product listing, search results, ... or dedicated object definitions for the list types
  2. what is product of productlistitem references to? The product or the variant? For a multi variant product like a t-shirt it must reference the variant
  3. name should be localized
  4. priceTotal is not enough, especially for a cart item list there are multiple relevant prices (net price, cross price, unit price, discounts, tax etc.)
  5. for a cart list there must be some kind of type for the entry item, like is this a regular product, a promotion product added automatically etc.
cdegroot-adobe commented 6 years ago

Some answers:

Is the assumption correct that the most common example of a list where a product list item can show up is the shopping cart?

  1. In general this is often a shopping list, but it is also an order list, which list or any other grouping of products offered to a customer. So they have specific prices, finding methods etc that can be unique.

Does it make sense to identify the list itself, by name or ID?

  1. Yes it may, I would like to understand the the set of use cases we want to enable more on this, the commerce team are working on that but I do not have an ETA.

Can the quantity of a product in a list be smaller than 0?

  1. I do not believe it would normally be less than zero, or even zero. It may represent a return, which would still not be a zero or sub zero value.

Does the SKU link refer to a variant or master, as outlined in #79 ?

  1. The SKU is normally a variant, not a master, but in some customer deployments we see the master is also a sale-able item. it is just marked as a master for grouping purposes.

what is the use case for "product list"? I think you be either totally generic for cart, product listing, search results, ... or dedicated object definitions for the list types

  1. It is the generic case. We are trying very hard not to mutate the list, but have it's context defined by the metric it is associated with (purchase, productView etc).

what is product of productlistitem references to? The product or the variant? For a multi variant product like a t-shirt it must reference the variant

  1. See answer #4, we do not see our customers uniformly adhere to "a master is not purchasable" though it seems the common pattern. In practice the cart management system will manage this constraint, not the schema.

name should be localized

  1. I would love us to have a localized spec for XDM. This is a much larger topic.

priceTotal is not enough, especially for a cart item list there are multiple relevant prices (net price, cross price, unit price, discounts, tax etc.)

  1. Agreed, we feel we can add those and that we are not yet in a position to determine the exact list. At least we do not have luck finding people who want to make a firm proposal in this area yet.

for a cart list there must be some kind of type for the entry item, like is this a regular product, a promotion product added automatically etc.

  1. Please make a proposal, we do have the Commerce team who can review and contribute as well.
trieloff commented 6 years ago

Does it make sense to identify the list itself, by name or ID?

Yes it may, I would like to understand the the set of use cases we want to enable more on this, the commerce team are working on that but I do not have an ETA.

Within XDM the use case is very simple: anything that has an @id can be referenced and theoretically be retrieved directly through an API. Things that do not have an @id can only be retrieved indirectly.

In the case of a product list: without an @id, it is only usable being embedded into an ExperienceEvent, i.e. there is no canonical persistence of any product list or shopping cart, because every ExperienceEvent has to send a new representation of the shopping cart.

mhaack commented 6 years ago

@trieloff What is an ExperienceEvent? For a shopping cart I think an @id will work, most commerce vendors allow to directly retrieve a shopping cart via API by using a cart id. What "version" of shopping cart they return is implementation detail. Some vendors always return a fresh representation of the shopping cart, some not (they require to trigger a re-calc action first).

trieloff commented 6 years ago

@mhaack https://github.com/adobe/xdm/blob/master/docs/reference/context/experienceevent.schema.md

The ExperienceEvent is an observed and recorded interaction or impression. Stuff like

would all become visible as ExperienceEvents

cdegroot-adobe commented 6 years ago

@mhaack , @trieloff

Are there open items you want resolved from this thread. If so highlight them and I will work on them, if not please close.

mhaack commented 6 years ago

Yes working with @martinbuergi to suggest some minor changes.