# Actualizar la promoción de bonificación Actualiza la promoción. NotaLos nuevos datos sustituirán a los antiguos. Si desea actualizar solo una parte de una promoción, deberá transferir también todos los datos requeridos en la solicitud. La promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario. La promoción puede aplicarse a todas las compras de un proyecto o a una compra que incluya artículos concretos. Endpoint: PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto. Example: 44056 - `promotion_id` (integer, required) ID de promoción. Identificador único de la promoción en el proyecto. Example: 111425 ## Request fields (application/json): - `attribute_conditions` (array) Condiciones para validar los atributos de usuario. Determina la disponibilidad de la promoción en función de si los atributos de usuario cumplen todas las condiciones especificadas. - `bonus` (array,null, required) - `bonus.quantity` (number) Cantidad del artículo. - `bonus.sku` (string) SKU del artículo. - `condition` (array,null, required) Conjunto de artículos que deben incluirse en la compra para aplicar una promoción. Si este parámetro es null, se aplicará una promoción a cualquier compra dentro de un proyecto. - `excluded_promotions` (array) Lista de ID de promociones a excluir al aplicar esta promoción. Example: [12, 789]. Example: [12,789] - `id` (integer) ID de promoción. Identificador único de la promoción en el proyecto. - `is_enabled` (boolean) Si la promoción está habilitada o no. Example: true - `limits` (object) Límites de la promoción. - `limits.per_user` (integer,null) Limitaciones de la promoción para un usuario independiente. - `limits.recurrent_schedule` (object,null) Periodo de actualización del límite. - `limits.recurrent_schedule.per_user` (object) Periodo de actualización del límite del usuario. - `limits.recurrent_schedule.per_user.day_of_month` (integer,null) Día del mes en que se actualizan los límites. Si no hay ningún día del mes seleccionado porque el mes es más corto, la actualización se producirá el último día del mes. No null solamente para el tipo de periodo de actualización del límite monthly. - `limits.recurrent_schedule.per_user.day_of_week` (integer,null) Día de la semana en que se actualizan los límites. En el cual 1 es lunes y 7 es domingo. No null solo para el tipo de periodo de actualización del límite weekly. - `limits.recurrent_schedule.per_user.displayable_reset_next_date` (string) Fecha y hora en que deben restablecerse los límites (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.displayable_reset_start_date` (string) Fecha y hora de la primera actualización del límite (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.interval_type` (string) Tipo de periodo de actualización recurrente. Enum: "daily", "weekly", "monthly" - `limits.recurrent_schedule.per_user.reset_next_date` (integer) Fecha y hora de actualización de los límites (Marca de tiempo Unix). Example: 1677553200 - `limits.recurrent_schedule.per_user.time` (string) Hora de actualización del límite en la zona horaria deseada (redondeo a horas). Example: "11:00:00+03:00" - `name` (object, required) Nombre de la promoción. Debe contener pares clave/valor en los cuales la clave es una configuración regional con el formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string). Example: {"de-DE":"Sommersaison Bonus","en-US":"Summer season bonus"} - `price_conditions` (array,null) Matriz de objetos con condiciones que establecen el rango de precios para aplicar la promoción. La promoción solo se aplica a los artículos cuyo precio cumple todas las condiciones de la matriz. Si transmite esta matriz, establezca el valor del objeto [condition](/es/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) en null. - `price_conditions.operator` (string, required) Operador de comparación para establecer el rango de precios para aplicar la promoción. Enum: "ge", "gt", "le", "lt", "eq", "ne" - `price_conditions.value` (string, required) Valor para determinar el rango de precios para aplicar la promoción. - `promotion_periods` (array) Periodos de validez de la promoción. Si se especifican varios periodos, es necesario tanto date_from como date_until. - `promotion_periods.date_from` (string, required) Fecha de inicio de la promoción especificada. Example: "2020-08-11T10:00:00+03:00" - `promotion_periods.date_until` (string,null) Fecha de finalización de la promoción especificada. Si se establece como null, la promoción es indefinida. Puede ser null solamente si se especifica un único periodo de validez. Example: "2020-08-11T20:00:00+03:00" ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (integer) Example: 1102 - `errorMessage` (string) Example: "[0401-1102]: Unprocessable Entity. The property `bonus` is required" - `statusCode` (integer) Example: 422 - `transactionId` (string) Example: "x-x-x-x-transactionId-mock-x-x-x" ## Response 204 fields