# Create discount promotion for item Creates a discount promotion for an item. Promotions provide a discount (%) on items. The discount will be applied to all prices of the specified items. Endpoint: POST /v3/project/{project_id}/admin/promotion/item Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) Project ID. You can find this parameter in your Publisher Account next to the name of the project. Example: 44056 ## Request fields (application/json): - `name` (object, required) Name of promotion. Should contain key/value pairs, where key is locale with format "^[a-z]{2}-[A-Z]{2}$", value is string. Example: {"en-US":"Promotion","ru-RU":"Акция"} - `promotion_periods` (array) Promotion validity periods. If multiple periods are specified, both date_from and date_until are required. - `promotion_periods.date_from` (string, required) Start date for the specified promotion. Example: "2020-08-11T10:00:00+03:00" - `promotion_periods.date_until` (string,null) End date for the specified promotion. If set to null, the promotion is indefinite. Can be null only if a single validity period is specified. Example: "2020-08-11T20:00:00+03:00" - `discount` (object, required) - `discount.percent` (string, required) Percent discount. The price of item will be decreased using a value calculated by using this percent and then rounded to 2 decimal places. Example: 10 - `items` (array, required) - `items.sku` (string, required) Item SKU. - `attribute_conditions` (array) Conditions for validating user attributes. Determine promotion availability based on whether user attributes match all specified conditions. - `price_conditions` (array,null) Array of objects with conditions that set the price range for applying the promotion. The promotion applies only to items whose price meets all the conditions in the array. If you pass this array, set the value of the [items](/api/shop-builder/operation/create-item-promotion/#!path=items&t=request) object to null. - `price_conditions.operator` (string, required) Comparison operator for setting the price range for applying the promotion. Enum: "ge", "gt", "le", "lt", "eq", "ne" - `price_conditions.value` (string, required) Value for determining the price range for applying the promotion. - `limits` (object) Promotion limits. - `limits.per_user` (integer,null) Promotion limitation for a separate user. - `limits.recurrent_schedule` (object,null) Limit refresh period. - `limits.recurrent_schedule.per_user` (object) User limit refresh period. - `limits.recurrent_schedule.per_user.interval_type` (string) Recurrent refresh period type. Enum: "daily", "weekly", "monthly" - `limits.recurrent_schedule.per_user.day_of_week` (integer,null) Day of the week when the limits refresh. Where 1 is Monday and 7 is Sunday. Not null only for weekly limit refresh period type. - `limits.recurrent_schedule.per_user.day_of_month` (integer,null) Day of the month when limits refresh. If there's no selected day of the month as it's shorter, then the refresh will occur on the last day of the month. Not null only for monthly limit refresh period type. - `limits.recurrent_schedule.per_user.time` (string) Time of limit refresh in the desired time zone (rounding to hours). Example: "11:00:00+03:00" - `limits.recurrent_schedule.per_user.reset_next_date` (integer) Date and time when limits refresh (Unix Timestamp). Example: 1677553200 - `limits.recurrent_schedule.per_user.displayable_reset_start_date` (string) Date and time of the first limit refresh (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.displayable_reset_next_date` (string) Date and time when limits should reset (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `excluded_promotions` (array) List of promotion IDs to exclude when applying this promotion. Example: [12, 789] Example: [12,789] - `is_enabled` (boolean) Whether promotion is enabled or not. Example: true ## Response 201 fields (application/json): - `promotion_id` (integer) Promotion ID. Unique promotion identifier within the project. ## Response 401 fields (application/json): - `statusCode` (integer) Example: 401 - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" ## Response 422 fields (application/json): - `statusCode` (integer) Example: 422 - `errorCode` (integer) Example: 1102 - `errorMessage` (string) Example: "[0401-1102]: Unprocessable Entity. The property `items` is required" - `transactionId` (string) Example: "x-x-x-x-transactionId-mock-x-x-x"