3.3. Описание фида по наличию и ценам

Общие сведения

Схема “Закажи и забери” позволяет клиенту заказать товары продавца в конкретном магазине, а затем оперативно получить заказ.

Продавцы, работающие с Мегамаркетом по схеме “Закажи и забери” должны передавать Мегамаркету следующую информацию:

  1. Файл с полным ассортиментом товаров (XML-фид)
  2. Файл с информацией об остатках и ценах (json-файл)
  3. Файл с информацией о магазинах, где клиент может получить свой заказ (json-файл)

Данный документ описывает файл с информацией об остатках и ценах

Информация об остатках и ценах передается в 2 потока:

  • полный перечень товарных предложений Продавца
  • перечень изменившихся товарных предложениях с момента формирования предыдущего файла с изменениями


Требования к файлу с остатками и ценами

Общие требования

Формат файла

json. Файлы с объёмом более 100 мегабайт должны быть запакованы в zip-архив без пароля

Расположение файла

В папке на sftp-сервере продавца. Ссылка на папку передаётся в Мегамаркет

Защита доступа к ftp-серверу продавца

Обязательная авторизация. Логин и пароль для доступа передаются в Мегамаркет

Протокол передачи

sftp

Кодировка файла

UTF-8 без BOM

Формат перевода строки

CR (U+000D)

Максимальный размер файла

500 мб

Частота выгрузки полной информации об остатках и стоимости

По мере изменения информации об остатках и стоимости, но не реже раза в 24 часа и не чаще раза за 1 час.

Частота выгрузки изменений остатков и стоимости

По мере изменения информации об остатках и стоимости между выгрузкой фида с полной информации, но не чаще раза за 5 минут

Срок хранения файлов на сервере

Не менее 7 дней с даты публикации


Требования к названию файла

Название файла содержит общую информацию о выгрузке и должен генерироваться в формате merchantId_stocks_type_dateTime. Zip-архив и json должны иметь одинаковые названия

Название

Описание

Возможные значения

Пример заполнения

merchantId

id мерчанта в Мегамаркете

Целочисленное значение больше нуля

123

stocks

Указание на то, что файл содержит именно информацию об остатках

stocks

stocks

type

Указание на то, содержит ли файл полную информацию об остатках (full) или информацию об остатках, которые изменились с момента последней выгрузки (diff)

full, diff

full

dateTime

Дата и время, на которые предоставлена информация в файле

Дата и время с указанием часового пояса. Использование двоеточия в качестве разделителя неприемлемо

2018-10-24T12-00-00+03-00


Примеры названий файлов:

  • 45_stocks_full_2018-10-24T12-00-00+03-00.zip
  • 45_stocks_full_2018-10-24T12-00-00+03-00.json
  • 157_stocks_diff_2018-10-24T12-15-00+03-00.zip
  • 157_stocks_diff_2018-10-24T12-15-00+03-00.json

Разделитель T должен быть обязательно латинской буквой, иначе фид не обработается корректно.

Примечание:

type = full - это полное обновление базы с текущей информацией об остатках.

type = diff - это обновление определенных записей. В diff передается актуальное количество остатков на данный момент.

Описание полей

Все поля в файле с остатками и ценами являются обязательными

Порядковый номер вложенностиНазвание параметраТип данныхОбязательныйОписание
1.

fileAttributes

ObjectДаСодержит технические параметры продавца
1.1merchantIdIntegerДаИдентификатор продавца по системе Мегамаркета
1.2typeStringДаТип фида. Diff или Full
1.3dateTimeStringДа

Время формирования фида в формате:

YYYY-MM-DDTHH-MM-SS±hh-mm
Использование двоеточия в качестве разделителя неприемлемо

2.outletsArrayДаМассив содержащий информацию о торговых точках продавца
2.1outletIdStringДаИдентификатор торговой точки по системе продавца
2.2offersArrayДаМассив содержащий информацию о предложениях
2.2.1offerIdStringДаУникальный идентификатор предложения по системе продавца
2.2.2quantityIntegerДаКоличество штук товара для предложения
2.2.3priceFloat/IntegerДаЦена предложения. Принимает в двух типах данных. Для отображения на платформе Мегамаркет цена конвертируется в тип данных Integer с округлением до рубля вниз.
2.2.4oldPriceFloat/IntegerНет

Старая цена. Она будет перечеркнутой, а значения из price будет над старой ценой.

Условия отображения:

  1. Старая цена (“oldPrice”) должна быть больше базовой цены (“price”).
  2. Разница между старой (“oldPrice”) и базовой ценой (“price”) должна составлять от 5% до 90%.

Примечание

Типизация строгая:
  • merchantId, quantity, price - integer
  • outletId, offerId - string
Пример json
{
    "fileAttributes": {
        "merchantId": 1192,
        "type": "full",
        "dateTime": "2019-07-15T00-42-13+03-00"
    },
    "outlets": [{
            "outletId": "100559",
            "offers": [{
                    "offerId": "5133560",
                    "quantity": 1,
                    "price": 84990,
					"oldPrice":100000
                },
                {
                    "offerId": "РС055007",
                    "price": 198,
                    "quantity": 100
                },
                {
                    "offerId": "РС201005",
                    "price": 252,
                    "quantity": 450
                }
            ]
        }
    ]
}