Создание локаций
POST /v1/location/create
/v1/location/createСоздаёт локации в системе Витрины с указанием их типа: склад, точка выдачи или пункт самовывоза — для различных сценариев доставки. При этом одна локация может сочетать несколько свойств одновременно.
Если в одном запросе передано несколько записей с одинаковым значением merchant_location_id, при обработке учитывается только последняя запись, а все предыдущие игнорируются.
Создание и активация локации на стороне Витрины выполняются асинхронно. В ответе метода возвращаются location_id и текущий статус создания, который в дальнейшем можно отслеживать с помощью метода location/list.
Тело запроса
Список локаций для создания. Максимальное количество локаций в одном запросе — 200.
LocationCreateItem
Показать свойстваСкрыть свойства
LocationCreateItem
Используется для маппинга точки в системе мерчанта на Витрину.
Типы локации. Набор задаётся при создании и определяет допустимую схему данных и валидацию полей.
CLICK_AND_COLLECT одновременно является складом и пунктом вывоза — не нужно дублировать её отдельным складом.
WAREHOUSE: склад
PICKUP_POINT: пункт выдачи
CLICK_AND_COLLECT: пункт самовывоза (Click & Collect)
Название локации.
Адрес в текстовом формате. Формат: «196653, Россия, г. Санкт-Петербург, г. Колпино, ул. Октябрьская, д. 77/27, подъезд 1, этаж 3, кв. 12».
Комментарий к доставке или адресу.
Широта.
Долгота.
Принадлежность точки к сети мерчанта/партнёра. Используется витриной для отображения бренда точки выдачи/самовывоза покупателю.
CDEK: СДЭК
RUSSIAN_POST: Почта России
BOXBERRY: Boxberry
YANDEX: Яндекс Доставка
5POST: 5Post
DPD: DPD
HERMES: Hermes
IML: IML
TOP_DELIVERY: Top Delivery
OZON: Ozon
KSE: КСЕ
STRIZH: Стриж
DL: Деловые Линии
PEK: ПЭК
SBL: Сберлогистика
MVIDEO: М.Видео
Идентификатор локации у провайдера доставки.
Тип пункта выдачи.
PICKUP_POINT: пункт выдачи
POSTAMAT: постамат
Доступные способы оплаты на точке.
ALREADY_PAID: предоплаченные заказы
CARD: оплата картой
CASH: оплата наличными
Число дней хранения заказа на точке.
Предельные габариты и вес заказа для точки (ВГХ, см и кг).
Показать свойстваСкрыть свойства
Максимальная длина заказа, см.
Максимальная ширина заказа, см.
Максимальная высота заказа, см.
Максимальный вес заказа, кг.
Инструкция как добраться для отображения на витрине.
Дополнительные услуги пункта выдачи.
FITTING: возможна примерка
Расписание работы.
LocationCreateRequestWorkingSchedule
Показать свойстваСкрыть свойства
LocationCreateRequestWorkingSchedule
День недели.
MONDAY: понедельник
TUESDAY: вторник
WEDNESDAY: среда
THURSDAY: четверг
FRIDAY: пятница
SATURDAY: суббота
SUNDAY: воскресенье
Расписание на день.
Показать свойстваСкрыть свойства
Время начала, формат «00:00».
Время окончания, формат «00:00».
Перерыв, формат «13:00–14:00».
Время, после которого отсчёт слота доставки начнётся со следующего дня. Формат «16:30». Если пустое — не применяется.
Индивидуальное расписание на определённые даты. К примеру, праздничные дни (при отличии от working_schedule).
LocationCreateRequestIndividualSchedule
Показать свойстваСкрыть свойства
LocationCreateRequestIndividualSchedule
Дата, формат «YYYY-MM-DD».
Расписание на дату.
Показать свойстваСкрыть свойства
Время начала, формат «00:00».
Время окончания, формат «00:00».
Перерыв, формат «13:00–14:00».
Время, после которого отсчёт слота доставки начнётся со следующего дня. Формат «16:30». Если пустое — не применяется.
Признак работы в дату.
Признак приёма возвратов.
Успешный ответ
200A successful response. application/json
Результаты по каждой локации из тела запроса create (порядок соответствует массиву locations в запросе).
Итог по одной локации из batch create: location_id — id в системе витрины (пустая строка, если не создано); name — название из запроса; errors — ошибки валидации по полям, при успехе []. Поле issue в ответе create не передаётся.
Итог по одной локации из batch create: location_id — id в системе витрины (пустая строка, если не создано); name — название из запроса; errors — ошибки валидации по полям, при успехе []. Поле issue в ответе create не передаётся.
Показать свойстваСкрыть свойства
Идентификатор локации в системе витрины; пустая строка, если операция для этой позиции не выполнена.
Идентификатор локации продавца.
Название локации из запроса.
Статус локации после операции create.
DRAFT: создан
PENDING: в обработке
ACTIVE: включена, доступна к выбору
QUARANTINE: карантин
FAILED: не прошёл модерацию
ARCHIVED: перенесён в архив
Ошибки валидации по полям; пустой массив при успехе. Коды только из LocationMutationValidationErrorCode.
Ошибка валидации/бизнеса поля для scope «LocationMutation». Допустимые field: locations[].merchant_location_id, address_tail, latitude/longitude, working_schedule, location_types, …. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.
Ошибка валидации/бизнеса поля для scope «LocationMutation». Допустимые field: locations[].merchant_location_id, address_tail, latitude/longitude, working_schedule, location_types, …. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.
Показать свойстваСкрыть свойства
Путь к полю. Ожидаемые: locations[].merchant_location_id, address_tail, latitude/longitude, working_schedule, location_types, ….
Код ошибки.
REQUIRED: Поле отсутствует или пустое, но обязательно
INVALID_TYPE: Неверный JSON-тип
INVALID_FORMAT: Неверный формат значения
INVALID_ENUM: Значение не из допустимого набора
REQUIRED_ONE_OF: Нужен хотя бы один из набора полей
CONDITIONALLY_REQUIRED: Поле обязательно при выполнении условия
INVALID_TIME: Не формат HH:MM
INVALID_TIME_RANGE: Некорректный диапазон времени
INVALID_ADDRESS_FORMAT: Адрес не соответствует шаблону
INVALID_LATITUDE: Широта вне диапазона
INVALID_LONGITUDE: Долгота вне диапазона
SCHEMA_MISMATCH: Поля не соответствуют схеме сущности
MIN_VALUE: Значение ниже минимума
MAX_VALUE: Значение выше максимума
NEGATIVE_VALUE: Отрицательное значение недопустимо
TOO_MANY_ITEMS: Превышен лимит элементов
NOT_FOUND: Сущность не найдена (уточняется полем field)
CONFLICT: Конфликт состояния
STOREFRONT_RULE_VIOLATION: Отклонено бизнес-правилом витрины (детали в message)
Текст для клиента. Для STOREFRONT_RULE_VIOLATION — описание правила.
Ошибки
400Некорректный запрос application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.
401Ошибка авторизации application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.
429Превышен лимит запросов application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.
500Внутренняя ошибка сервера application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.