# Update promotion Endpoint: PUT /api/promotion/{id} Version: v1 ## Path parameters: - `id` (integer, required) Promotion id ## Request fields (application/json): - `Requirements` (array) - `Requirements.Id` (integer) - `Requirements.RequirementType` (string) Requirement type can have one of the following values: BasketTotal, ProductFilter, ProductManufacturer, ProductCategory, ProductFlag, ProductPriceList, ProductType, DiscountCode, UniqueDiscountCode, CustomerFlag, CompanyFlag - `Requirements.DiscountCode` (string) - `Requirements.ValueType` (string) Read only value that is set depending on if OrderSum is set or not. Will be OrderSum if any OrderSum value is set and Quantity when not. - `Requirements.OrderSumType` (string) Read only vaue that is set depending on if OrderSum and/or OrderSumMax is set. Can be Above when only OrderSum is set, Below when only OrderSumMax or Between. - `Requirements.OrderSum` (number) - `Requirements.OrderSumMax` (number) - `Requirements.IsIncVat` (boolean) - `Requirements.ProductsIncluded` (string) Determines how rows in ProductList is handled, default value is "And". All rows need to be valid when set to "And". At least one row need to be valid when set to "Or". No row can be valid when set to "Not". - `Requirements.CustomerFlagId` (integer) - `Requirements.CustomerFlagName` (string) - `Requirements.IsCustomerFlagIncluded` (boolean) - `Requirements.SortOrder` (integer) - `Requirements.ProductList` (array) - `Requirements.ProductList.ManufacturerId` (integer) - `Requirements.ProductList.ManufacturerCode` (string) - `Requirements.ProductList.ManufacturerName` (string) - `Requirements.ProductList.CategoryId` (integer) - `Requirements.ProductList.CategoryCode` (string) - `Requirements.ProductList.CategoryName` (string) - `Requirements.ProductList.FlagId` (integer) - `Requirements.ProductList.FlagCode` (string) - `Requirements.ProductList.FlagName` (string) - `Requirements.ProductList.IsFlagInclusive` (boolean) - `Requirements.ProductList.PriceListId` (integer) - `Requirements.ProductList.PriceListCode` (string) - `Requirements.ProductList.PriceListName` (string) - `Requirements.ProductList.ProductTypeId` (integer) - `Requirements.ProductList.ProductTypeName` (string) - `Requirements.ProductList.ProductId` (integer) - `Requirements.ProductList.ProductHasVariants` (boolean) - `Requirements.ProductList.ProductName` (string) - `Requirements.ProductList.VariantProductId` (integer) - `Requirements.ProductList.VariantProductName` (string) - `Requirements.ProductList.PartNo` (string) - `Requirements.ProductList.Qty` (integer) - `Requirements.ProductList.Changed` (string) - `Requirements.ProductList.ChangedBy` (string) - `Requirements.MatchByEachPartNo` (boolean) - `Requirements.GenericQty` (number) - `Requirements.GenericQtyMax` (number) - `Effects` (array) - `Effects.EffectType` (string) Effect type can have one of the following values: DiscountBasket, ProductFilter, ProductManufacturer, ProductCategory, ProductFlag, ProductPriceList, ProductType, DiscountFreight, AddProduct, SelectProduct - `Effects.IsDiscount` (boolean) Price sale discount when true and Cost plus Value when false - `Effects.IsFixedPrice` (boolean) Fixed price discount when true and percentage when false - `Effects.Value` (number) Fixed price discount when IsFixedPrice is true, percentage discount when IsFixedPrice is false. - `Effects.IgnoreNonDiscountable` (boolean) - `Effects.DiscountMostExpensiveItems` (boolean) - `Effects.UseRequirementProducts` (boolean) - `Name` (string) - `DefaultName` (string) Read only inherited name - `IsNameInherited` (boolean) - `SubHeader` (string) - `DefaultSubHeader` (string) Read only inherited sub header - `IsSubHeaderInherited` (boolean) - `SubDescription` (string) - `DefaultSubDescription` (string) Read only inherited sub description - `IsSubDescriptionInherited` (boolean) - `DescriptionHeader` (string) - `DefaultDescriptionHeader` (string) Read only inherited description header - `IsDescriptionHeaderInherited` (boolean) - `Description` (string) - `DefaultDescription` (string) Read only inherited description - `IsDescriptionInherited` (boolean) - `ImageKey` (string) Example: "00000000-0000-0000-0000-000000000000" - `ImageUrl` (string) Read only full image url at CDN - `Code` (string) - `ExclusivityType` (string) Exclusive promotion type: NotExclusive, Exclusive, IgnoreExclusivity. Default is NotExclusive - `StartDate` (string) - `EndDate` (string) - `CountLeft` (integer) Read only value that shows count left when AllowedUsageCount is set - `AllowedUsageCount` (integer) - `UsageCount` (integer) Read only value that shows how many times this promotion has been used - `UniqueUserUsageCount` (integer) - `UniqueDiscountCodeCount` (integer) Read only value that shows count of unique discount codes - `UniqueDiscountCodeUsedCount` (integer) Read only value that shows count of used unique discount codes - `TotalOrder` (number) Read only value that shows total order value of orders where promotion was used - `TotalDiscount` (number) Read only value that shows total order discount of orders where promotion was used - `DiscountPercentage` (number) Read only value that shows discount percentage for rows where promotion was used - `MarginPercentage` (number) Read only value that shows total order margin of orders where promotion was used - `IsStackable` (boolean) - `IsProductReq` (boolean) - `ExcludeFromPriceCalculation` (boolean) - `Status` (string) Promotion status: Inactive, Active, Draft. Default is Inactive - `CurrencyCode` (string) - `StoppedDate` (string) Read only value that shows when a promotion was inactivated - `StoppedBy` (integer) Read only value that shows who inactivated promotion - `StoppedByName` (string) Read only value that shows who inactivated promotion - `Created` (string) Read only value that shows when promotion was created - `CreatedByName` (string) Read only value that shows who created this promotion - `Changed` (string) Read only value that shows when promotion was changed - `ChangedBy` (string) Read only value that shows who changed this promotion - `Cultures` (array) - `Cultures.CultureCode` (string) - `Cultures.IsTranslated` (boolean)