If any supported optional fields are provided, we will treat them as a full
override when looking up product information from the catalog. Thus, it is
important to ensure that the overriding fields are accurate and
complete.
All other product fields are ignored and instead populated via catalog
lookup after event ingestion.
Quantity of the product associated with the user event.
For example, this field will be 2 if two products are added to the shopping
cart for purchase-complete event. Required for add-to-cart and
purchase-complete event types.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eProductDetail\u003c/code\u003e class, part of the Retail v2 API, provides detailed product information for user events.\u003c/p\u003e\n"],["\u003cp\u003eVersion 2.12.0 is the latest release, with a range of versions back to 1.0.0 available for reference.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eProductDetail\u003c/code\u003e class implements multiple interfaces including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eProductDetail\u003c/code\u003e includes properties for \u003ccode\u003eProduct\u003c/code\u003e information, which is a required field with optional overrides, and \u003ccode\u003eQuantity\u003c/code\u003e, which represents the number of products in an event.\u003c/p\u003e\n"]]],[],null,[]]