# List products by promotion effect Lists all products by promotion effect ChooseProducts(2) or AddProduct(5). This allows the product detail page to display what comes with the main product as promoted products. Endpoint: GET /ListPromotionProducts Version: 1.1 ## Query parameters: - `productId` (integer, required) The main product to find promoted products for. - `statusSeed` (string, required) Accepts a comma separated string of Status internal ids. Lookup references in ListStatuses. - `storeSeed` (string) Accepts a comma separated string of store internal ids. The StoreOnHand property of the product will show the onHand values for supplied Stores if supplied. - `pricelistSeed` (string) A comma separated list of PriceList internal ids to use, if any. PriceLists supplied must be valid, either from the application's public priceList or any customer or company priceLists or any valid client priceLists. For clients configured to use priceListSeed exclusively in the API only the supplied priceLists will be used. If this is not configured, the supplied priceLists will be appended to the valid priceLists. If none is supplied, the default value for the application will be used in combination with any customer or company priceLists. This applies to both configurations. - `customerId` (string) Customer internal id. Checks for specific customer bound prices if provided. - `companyId` (string) Company internal id. Checks for specific company bound prices if provided. Note! customerId is mandatory in combination with companyId. - `sort` (string) Sort order as formatted [Property] [Asc/Desc] with comma as separator. Supported properties for sorting on the server are PopularityRank, Name, Price and SortOrder. - `cultureCode` (string) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application. - `currencyId` (string) Specifies in which currency to display prices. Uses Storm internal ids. If none is supplied, value is resolved from Application. - `asVariants` (string) Specifies if the output should be grouped as products or as variants. Default is false which returns a list of products. Set to true if variants are wanted. - `salesAreaId` (string) Specifies the SalesArea to use. Uses Storm internal ids. If none is supplied, primary SalesArea on Application will be used. ## Response 200 fields (application/json): - `PromotionId` (integer) This is the promotion internal id for which the Products are listed. - `EffectId` (integer) This is the effect internal id for which the Products are listed. - `Items` (array) This is the list of Products associated with the promotion and effect. - `Items.Id` (integer) Internal product id. - `Items.Name` (string) MaxLength: 255. - `Items.SubHeader` (string) MaxLength: 255. - `Items.Manufacturer` (object) - `Items.Manufacturer.Id` (integer) Internal id of manufacturer. - `Items.Manufacturer.PartNo` (string) MaxLength: 50. - `Items.Manufacturer.LogoPath` (string) MaxLength: 255. Obsolete! - Use ImageKey - `Items.Manufacturer.LogoKey` (string,null) A unique id for the image at our image server. Url for images are formed like http://[client specific CDN]/{LogoKey}. Preset, height and width can be sent as parameters. - `Items.Manufacturer.UniqueName` (string) A unique name that can be used in Urls and to get a Manufacturer. GetManufacturer and GetManufacturerByUniqueName gets the same Manufacturer. MaxLength: 255. - `Items.Image` (string) MaxLength: 255. Obsolete! - Use ImageKey - `Items.CampaignImage` (string) MaxLength: 255. Obsolete! - Use ImageKey with preset - `Items.LargeImage` (string) MaxLength: 255. Obsolete! - Use ImageKey with preset - `Items.ThumbnailImage` (string) MaxLength: 255. Obsolete! - Use ImageKey with preset - `Items.FlagIdSeed` (string) A comma separated list of flag internal ids. MaxLength: max. - `Items.Price` (number) Best price calculated from available pricelists, excluding VAT. - `Items.PriceRecommended` (number,null) The rule based price from a priceList, excluding VAT, if specified. - `Items.PriceCatalog` (number,null) The original price, excluding VAT, if specified. - `Items.VatRate` (number) A rate to multiply with price to get price inc VAT. 25% VAT equals a VatRate of 1.25. - `Items.RecommendedQuantity` (number,null) Indicates the default value used as quantity when buying the product. If IsRecommendedQuantityFixed is true, only multiples of this quantity should be allowed. - `Items.OnHand` (object) - `Items.OnHand.Value` (number) The aggregated value from all warehouses and locations in the current context (Web, Supplier or Store). - `Items.OnHand.IncomingValue` (number) The incoming quantity on the next delivery. - `Items.OnHand.NextDeliveryDate` (string,null) The next delivery data from supplier to client warehouse. - `Items.OnHand.LeadtimeDayCount` (integer,null) The number of days it takes to ship from the supplier. - `Items.OnHand.LastChecked` (string,null) When onHand info was last checked. Null if never. - `Items.OnHand.IsActive` (boolean) Indicate if the product is stocked in a store. - `Items.OnHand.IsReturnable` (boolean) Indicate if the product is returnable in a store. - `Items.OnHand.Info` (array) List of IdValues for the OnHand data for this sku warehouse location combination. This will always be null unless fetched with any of the ProductOnHand methods. - `Items.OnHand.Info.Id` (integer) The internal Id of the Entity. This Id might be different in different tiers such as Stage and Production. Use Code if hard coding is required. - `Items.OnHand.Info.Value` (string) The Value of the Entity. MaxLength: max. - `Items.OnHand.Info.Code` (string) The Code of the Entity, if existing. Use this value when hard coding is required. MaxLength: 255. - `Items.OnHandStore` (object) - `Items.OnHandSupplier` (object) - `Items.Key` (string) - `Items.Updated` (string,null) - `Items.ImageKey` (string,null) A unique id for the image at our image server. Url for images are formed like http://[client specific CDN]/{ImageKey}. Preset, height and width can be sent as parameters. - `Items.PopularityRank` (integer,null) A value used to sort items based on popularity. Lower values are more popular. - `Items.StatusId` (integer) - `Items.VariantName` (string) MaxLength: 255. - `Items.VariantImageKey` (string,null) - `Items.AdditionalImageKeySeed` (string) Seed formatted as TypeId[1]:Guid[1], TypeId[2]:Guid[2],.., TypeId[n]:Guid[n]. MaxLength: max. - `Items.GroupByKey` (string) A key that can be used to group items on product. It is equal to the ProductId for non-variants and equals 'v'+variantId for variants. Should only be used when fetching product lists as variants. MaxLength: int. - `Items.VariantFlagIdSeed` (string) A comma separated list of flag internal ids. Contains any variant specific flags when fetched in product list AsVariants. MaxLength: max. - `Items.PartNo` (string) Contains the partNo if the product is not a variant. This will be empty if the product has variants. MaxLength: 50. - `Items.PriceListId` (integer,null) Contains the priceList internal id if the product is not a variant. This will be empty if the product has variants. - `Items.SortOrder` (integer,null) A custom sort order that can be used when the product item is in a list. The sort order is defined for the primary category of the product item. - `Items.CategoryId` (integer,null) Obsolete! - Use CategoryIdSeed - `Items.ParametricListSeed` (string) ParametricListSeed contains a comma separated list of id-value pairs separated by colon. Ex: 4711:32,4712:5. Id is the ParametricId and Value is a ListValueId. Note that parametric values with string or html types are not included here since we cannot know if they contain any of the separators. Use ListParametricInfo to list all parametric info and ListParametricValues2 for all values as lookup when resolving parametric data. MaxLength: max. - `Items.ParametricMultipleSeed` (string) ParametricMultipleSeed contains a comma separated list of id-value pairs separated by colon. Ex: 4711:32,4712:5. Id is the ParametricId and Value is a MultipleValueId. Multiple values for the same parametric are repeated with the same id but different values. Note that parametric values with string or html types are not included here since we cannot know if they contain any of the separators. Use ListParametricInfo to list all parametric info and ListParametricValues2 for all values as lookup when resolving parametric data. MaxLength: max. - `Items.ParametricValueSeed` (string) ParametricValueSeed contains a comma separated list of id-value pairs separated by colon. Ex: 4711:32,4712:5. Id is the ParametricId and Value is the actual value depending on the parametric type. Note that parametric values with string or html types are not included here since we cannot know if they contain any of the separators. Use ListParametricInfo to list all parametric info and ListParametricValues2 for all values as lookup when resolving parametric data. MaxLength: max. - `Items.ParametricTextField` (array) Global text parametrics configured to to appear in lists. - `Items.VariantParametricSeed` (string) Contains all ParametricIds that distinguishes these variants for this product. Their specific values are found under ParametricListSeed, ParametricMultiSeed or ParametricValueSeed. Use ListParametricInfo to list all parametric info and ListParametricValues2 for all values as lookup when resolving parametric data. MaxLength: max. - `Items.UniqueName` (string) A unique name that can be used in Urls and to get a Product. GetProduct and GetProductByUniqueName gets the same Product. MaxLength: 500. - `Items.StockDisplayBreakPoint` (integer,null) A value that can be used for display logic regarding OnHand. - `Items.IsBuyable` (boolean) Indicates if the item is buyable or not. Will always be false if the status is closed. An exception will be thrown if IsBuyable is false and an attempt to buy the item is made. The property can be used to hide or show the buy-button. - `Items.SubDescription` (string) Sub description from Storm Admin. MaxLength: max. - `Items.Quantity` (number,null) The Quantity, if applicable. Null otherwise. This value will be set when it makes sense such as for included items in StructuralItems. - `Items.Type` (integer) Sku type for this product. Might not be valid if there are variants with different types. Then variants must be examined. Also see ListSkutypes. - `Items.CategoryIdSeed` (string) A comma separated list of category internal ids ordered so the primary category id is first. MaxLength: max. - `Items.IsRecommendedQuantityFixed` (boolean) If this is set to true only multiples of RecommendedQuantity should be allowed. - `Items.Synonyms` (string) Synonyms from the Product in Storm. Can be used when indexing the product in any search engine. MaxLength: 500. - `Items.VariantUniqueName` (string) A unique name that can be used in Urls and to get a Product. This is the variant's unique name. GetProduct and GetProductByUniqueName gets the same Product. MaxLength: 500. - `Items.IsSubscribable` (boolean) True if this product can be added in a Subscription. False otherwise. - `Items.UnitOfMeasurement` (string) Short unit of measurement from Storm Admin. MaxLength: 50. - `Items.UnitOfMeasurementCount` (number,null) Unit of measurement count - `Items.EanCode` (string) This will be the EAN code of the selected variant of the product if any. Variants will have this set. MaxLength: 50. - `Items.PriceStandard` (number,null) The standard price, excluding VAT, if specified. - `Items.IsDangerousGoods` (boolean) True if this product is considered as dangerous goods. False otherwise. - `Items.PriceIncVat` (number) The price including VAT calculated on the server side. Should be used to display prices including VAT. - `Items.ImageAltText` (string) Default image alt text