The product item data model
The result from a product list is a collection of ProductItem's. ProductItems provide a simplified view of a product compared to the Product entity returned by GetProduct
calls.
ProductItem
For information about the elements of ProductItem, read the Working with Products and Variants documentation here.
Product identifiers
The ProductItem
contains the same identifiers as the Product
entity, including Id
, PartNo
, Manufacturer/PartNo
, and UniqueName
. Identifiers are left empty for products with variants (asVariants=false), just like the Product
entity. The identifier GroupByKey
is used in certain situations when variants are listed. Learn more about this below when discussing variants.
Text information
Most text information is left out of the ProductItem
entity. You need to call GetProduct
to retrieve more. Only these are returned.
Name
VariantName
(ifasVariant
= true in the call)SubHeader
SubDescription
ParametricTextField
(all global text parametrics)Synonyms
Parametrics
The full parametric information is not returned as on the Product entity. Instead, comma-separated lists are returned, including:
ParametricValueSeed
(Format is Id1:Value1,Id2:Value2…) where Id is the parametric Id and value is the actual value of the product unless the parametric type is List or MultipleList. Learn more below.ParametricListSeed
(Format is Id1:ListValueId1,Id2:ListValueId2…)ParametricMultipleSeed
(Format is Id1:MultipleValueId1,Id1:MultipleValueId2,Id2:MultipleValueId3…)VariantParametricSeed
(Format is Id1:Id2:Id3…). This list contains only the IDs of the variant defining parametrics of the product. The respective values are under the other fields above. Read more about variants below.
HTML or Text type parameters are normally not returned as they can be quite large. The exception is global text parametrics, see above.
Use the method ListParametricInfo and ListParametricValues2 to retrieve cacheable data on the parametrics.
Product flags
Just like on the Product entity, the ProductItem's FlagIdSeed
contains a comma-separated list of flag IDs. However, if the item is a variant, VariantFlagIdSeed
contains the variant-specific flags. Otherwise, it is empty.
Images and files
The ProductItem
returns image information but no file information. To get files you must fetch a Product
entity by calling one of the GetProduct
-methods.
ImageKey
has the main image, VariantImageKey
has the variant's main image (if the item is a variant), and AdditionalImageKeySeed
contains more images by type and key pairs. If the type exists on both product and variant level, the variant image is returned.
Price information
Price fields in the Product
entity are also returned for ProductItem
, except for the cost fields.
On hand information
OnHand
, OnHandStore
and OnHandSupplier
are returned in ProductItem
as well.
Buying information
Same as for Product
, ProductItem
returns some fields to help you with implementing a buying behaviour. See the product documentation here.
In ProductItem
, variant information is handled differently than in Product
. Product
has a VariantCollection
, while ProductItem
does not. Details are discussed here.
ProductItem2
The more dynamic product listings uses ProductItem2.
ProductItem2
contains about the same data as ProductItem
, but several fields are optional and only returned if they are defined in the input parameter expand. Read the section here.