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 (if asVariant = 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.
Note

HTML or Text type parameters are normally not returned as they can be quite large. The exception is global text parametrics, see above.

Note

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.

Note

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.