---
title: "Сохранить складские настройки магазина площадки"
method: PUT
path: "/api/v1/stock/marketplace-settings"
tags: ["Stock settings"]
---

# Сохранить складские настройки магазина площадки

`PUT /api/v1/stock/marketplace-settings`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/stock/marketplace-settings`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Заменяет настройки одного магазина целиком: не переданное поле, в том
числе порог остаточного срока, становится пустым. Собирает фулфилмент
(picking=fulfilment) — нужен внешний склад партнёра, приход на который
даёт его приёмка; собираем сами (picking=self) — только свой склад.
Невыкуп на склад исполнения (unredeemed_target=fulfilment_warehouse)
и сборка фулфилментом требуют выбранного склада. Неверная пара,
деактивированный склад или пустой магазин — 400; склад не найден —
404. С момента первого сохранения склада исполнения заказы магазина
отгружаются с этого склада проведёнными документами, а источник
себестоимости магазина может быть только складским. Проведённые
документы не меняются.

## Headers

- `X-Tenant` string, required

## Request body

- StockMarketplaceSettingsInput: Настройки магазина сохраняются целиком: не переданное поле становится пустым, supply_transit — false
  - `store_id` string, uuid, required
  - `fulfilment_warehouse_id` string, uuid
  - `picking` 'self' | 'fulfilment', required: Кто собирает заказ: self — мы, fulfilment — партнёр; fulfilment требует склада исполнения
  - `unredeemed_target` 'platform' | 'fulfilment_warehouse', required: Куда приходовать невыкуп; fulfilment_warehouse требует склада исполнения
  - `supply_transit` boolean: Товар в пути до приёмки площадкой: отправленное на площадку видно товаром в пути, пока она его не приняла
  - `min_shelf_life_pct` string, nullable: Порог остаточного срока поставок магазина, % срока: больше 0 и не больше 100, не точнее сотых
  - `min_shelf_life_days` integer, nullable: Порог остаточного срока поставок магазина в днях до «годен до»
  - `min_shelf_life_scale` StockShelfLifeStep[]: Шкала порога остаточного срока по общему сроку годности партии (ERP-2182): ступени по возрастанию границы up_to_months, у последней границы нет. Общий срок ровно на границе — ступень этой границы. Общий срок не определить (нет даты изготовления и срока в карточке) — партия порог не проходит: no_production_date
    - `up_to_months` integer, nullable, required: Граница общего срока, месяцев, включительно; у последней ступени — null (всё, что длиннее предыдущей)
    - `min_remaining_pct` string, nullable, required: Доля оставшегося срока, %: десятичная строка больше 0 и не больше 100, не точнее сотых
    - `min_remaining_days` integer, nullable, required: Дней до «годен до»

## Response `200`

Сохранённые настройки магазина

- StockMarketplaceSettings: Складские настройки одного магазина площадки. Магазин для склада — идентификатор из списка магазинов модуля marketplace
  - `store_id` string, uuid, required
  - `fulfilment_warehouse_id` string, uuid, required
  - `fulfilment_warehouse_name` string: Название склада исполнения; поля нет, если склад не выбран
  - `picking` 'self' | 'fulfilment', required: Кто собирает заказ: self — мы со своего склада, fulfilment — партнёр со своего внешнего склада
  - `unredeemed_target` 'platform' | 'fulfilment_warehouse', required: Куда приходуется невыкуп: platform — остаётся у площадки, fulfilment_warehouse — возвращается на склад исполнения
  - `supply_transit` boolean, required: Отправленное на площадку видно товаром в пути до её приёмки
  - `min_shelf_life_pct` string, nullable, required: Порог остаточного срока годности поставок магазина, % срока: десятичная строка. null — действует порог кабинета
  - `min_shelf_life_days` integer, nullable, required: Порог остаточного срока годности поставок магазина в днях до «годен до». null — действует порог кабинета
  - `min_shelf_life_scale` StockShelfLifeStep[], required: Шкала порога остаточного срока по общему сроку годности партии (ERP-2182): ступени по возрастанию границы up_to_months, у последней границы нет. Общий срок ровно на границе — ступень этой границы. Общий срок не определить (нет даты изготовления и срока в карточке) — партия порог не проходит: no_production_date
    - `up_to_months` integer, nullable, required: Граница общего срока, месяцев, включительно; у последней ступени — null (всё, что длиннее предыдущей)
    - `min_remaining_pct` string, nullable, required: Доля оставшегося срока, %: десятичная строка больше 0 и не больше 100, не точнее сотых
    - `min_remaining_days` integer, nullable, required: Дней до «годен до»
  - `updated_at` string, date-time, required
  - `contact_id` string, uuid
  - `contact_name` string: Название контрагента магазина
  - `contact_shelf_life` StockDocumentShelfLife: Порог остаточного срока годности, заданный в документе (ERP-1821). Только у отгрузки и перемещения. Поля нет — порог берётся лестницей «покупатель → кабинет» при проведении. Поле есть — действует оно; оба значения пусты — для этого документа порога нет. Правка (PATCH): поле не прислано — порог документа сохраняется; прислан объект — он заменяет прежний, в том числе порог магазина; прислан null — ручной порог снимается и документ возвращается на лестницу, а порог магазина (source store) null не снимает. У остальных видов документов поле отклоняется: 400 shelf_life_minimum_not_applicable.
    - `min_remaining_pct` string: Доля оставшегося срока, %: десятичная строка больше 0 и не больше 100
    - `min_remaining_days` integer: Дней до «годен до»
    - `scale` StockShelfLifeStep[]: Шкала порога остаточного срока по общему сроку годности партии (ERP-2182): ступени по возрастанию границы up_to_months, у последней границы нет. Общий срок ровно на границе — ступень этой границы. Общий срок не определить (нет даты изготовления и срока в карточке) — партия порог не проходит: no_production_date
      - `up_to_months` integer, nullable, required: Граница общего срока, месяцев, включительно; у последней ступени — null (всё, что длиннее предыдущей)
      - `min_remaining_pct` string, nullable, required: Доля оставшегося срока, %: десятичная строка больше 0 и не больше 100, не точнее сотых
      - `min_remaining_days` integer, nullable, required: Дней до «годен до»
    - `source` 'manual' | 'store' | 'contact': Кто записал порог. manual — человек; значение по умолчанию. contact — требование контрагента, только в ответе настроек магазина (ERP-2619). store — модуль маркетплейсов: требование контрагента магазина (ERP-2619), а у магазина без контрагента — порог самого магазина; присланное общей дверью значение store отклоняется (400 shelf_life_minimum_source_forbidden), правка сохраняет его, пока значения порога не тронуты

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю
- `500`: Внутренняя ошибка без раскрытия server-only деталей

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/a99574d597cc?raw)
