Выгрузка остатков
Сервис МойСклад предоставляет средства для выгрузки остатков.
Выгрузка остатков может быть осуществлена двумя путями: через веб-сервис и через REST-сервис.
Веб-сервис
Веб-сервис выгрузки остатков доступен по адресу: https://online.moysklad.ru/ws/stock?wsdl
Веб-сервис позволяет запрашивать данные по остаткам путем обращения к методам - stockByGood, stockByConsignment и stockForGood.
stockByGood - возвращает коллекцию объектов, каждый из которых содержит агрегированную информацию об остатке по отдельному товару. При вызове этого метода могут быть переданы параметры фильтрации:
| Название | Формат | Назначение | Значение по умолчанию |
|---|---|---|---|
| moment | строка в формате yyyyMMddHHmmss, где yyyy - это год, MM - это месяц в году (от 1 до 12), dd - это день месяца (от 1 до 31), HH - это час дня (от 0 до 23), mm - это минуты часа (от 0 до 59), ss - это секунды минуты (от 0 до 59) | момент времени, на который необходимо получить остатки | текущий момент времени |
| goodId | строка | идентификатор товара или папки товаров, по которым необходимо получить остатки | нет |
| goodName | строка | название товара или часть названия товаров, по которым необходимо получить остатки | нет |
| storeId | строка | идентификатор склада, в рамках которого необходимо получить остатки | нет |
| stockMode | строка, допустимы только значения из перечисления (развернуто ниже) | позволяет задать ограничение по численному значению остатка | нет |
| includeAboardOperations | логический переключатель, допускаются значение true или false | определяет - должны ли быть включены в подсчет остатков непроведенные документы, по умолчанию непроведенные документы в подсчет остатков не включены | нет |
Допустимые значения параметра stockMode:
ALL_STOCK - все товары
POSITIVE_ONLY - только положительные остатки
POSITIVE_INCLUDING_RESERVE_ONLY - только положительные остатки, с учетом резерва
NEGATIVE_ONLY - только отрицательные значения
NON_EMPTY - отрицательные и положительные значения
UNDER_MINIMUM_BALANCE_ONLY - ниже неснижаемого остатка
USE_RESERVES - с учетом резерва
stockByConsignment - возвращает коллекцию объектов, каждый из которых содержит агрегированную информацию об остатке по отдельной серии, что позволяет учитывать характеристики при получении остатков. Параметры метода совпадают с ранее описанным методом stockByGood.
stockForGood - позволяет получить расшифровку остатков по выбранному товару с детализацией остатков по документам и складам. При обращении к этому методу могут быть указаны параметры:
| Название | Формат | Назначение | Значение по умолчанию |
|---|---|---|---|
| moment | строка в формате yyyyMMddHHmmss, где yyyy - это год, MM - это месяц в году (от 1 до 12), dd - это день месяца (от 1 до 31), HH - это час дня (от 0 до 23), mm - это минуты часа (от 0 до 59), ss - это секунды минуты (от 0 до 59) | момент времени, на который запрошена детализация остатков | текущий момент времени |
| goodId | строка | идентификатор товара, по которому запрошена детализация остатков | нет, пустое значение не допускается - обязательно должен быть указан идентификатор существующего товара |
| storeId | строка | идентификатор склада, по которому запрошена детализация остатков | нет |
slotReport - для заданного склада возвращает коллекцию объектов, каждый из которых содержит агрегированную информацию об остатке по отдельной серии и месте хранения (ячейки). При вызове этого метода могут быть переданы параметры фильтрации:
| Название | Формат | Назначение | Значение по умолчанию |
|---|---|---|---|
| storeId | строка | идентификатор склада, по которому запрошена детализация остатков | нет, пустое значение не допускается - обязательно должен быть указан идентификатор существующего склада |
| goodIds | массив строк | идентификаторы товаров, по которым запрошена детализация остатков. | нет |
REST-сервис
В рамках REST-сервиса выгрузки остатков доступны следующие ресурсы:
Получение остатков по товарам или сериям:
- https://online.moysklad.ru/exchange/rest/stock/xml
- https://online.moysklad.ru/exchange/rest/stock/json
Ниже приведены параметры обращения к ресурсу:
| Название | Формат | Назначение | Значение по умолчанию |
|---|---|---|---|
| moment | строка в формате yyyyMMddHHmmss, где yyyy - это год, MM - это месяц в году (от 1 до 12), dd - это день месяца (от 1 до 31), HH - это час дня (от 0 до 23), mm - это минуты часа (от 0 до 59), ss - это секунды минуты (от 0 до 59) | момент времени, на который необходимо получить остатки | текущий момент времени |
| goodId | строка | идентификатор товара или папки товаров, по которым необходимо получить остатки | нет |
| goodName | строка | название товара или часть названия товаров, по которым необходимо получить остатки | нет |
| storeId | строка | идентификатор склада, в рамках которого необходимо получить остатки | нет |
| stockMode | строка, допустимы только значения из перечисления (развернуто ниже) | позволяет задать ограничение по численному значению остатка | нет |
| includeAboardOperations | логический переключатель, допускаются значение true или false | определяет - должны ли быть включены в подсчет остатков непроведенные документы, по умолчанию непроведенные документы в подсчет остатков не включены | нет |
| showConsignments | логический переключатель, допускаются значение true или false | определяет группировку результатов - если true, то группировка осуществляется по сериям (что позволяет отображать характеристики), если false, то группировка результатов осуществляется по товарам | нет |
Получение расшифровки остатков по указанному товару:
- https://online.moysklad.ru/exchange/rest/stock-for-good/xml
- https://online.moysklad.ru/exchange/rest/stock-for-good/json
Ниже приведены параметры обращения к ресурсу:
| Название | Формат | Назначение | Значение по умолчанию |
|---|---|---|---|
| moment | строка в формате yyyyMMddHHmmss, где yyyy - это год, MM - это месяц в году (от 1 до 12), dd - это день месяца (от 1 до 31), HH - это час дня (от 0 до 23), mm - это минуты часа (от 0 до 59), ss - это секунды минуты (от 0 до 59) | момент времени, на который запрошена детализация остатков | текущий момент времени |
| goodId | строка | идентификатор товара, по которому запрошена детализация остатков | нет, пустое значение не допускается - обязательно должен быть указан идентификатор существующего товара |
| storeId | строка | идентификатор склада, по которому запрошена детализация остатков | нет |
Получение остатков на складе с детализацией по сериям и местам хранения (ячейкам):
- https://online.moysklad.ru/exchange/rest/slot/xml
- https://online.moysklad.ru/exchange/rest/slot/json
Ниже приведены параметры обращения к ресурсу:
| Название | Формат | Назначение | Значение по умолчанию |
|---|---|---|---|
| storeId | строка | идентификатор склада, по которому запрошена детализация остатков | нет, пустое значение не допускается - обязательно должен быть указан идентификатор существующего склада |
| goodId | массив строк [0..50] | идентификаторы товаров, по которым запрошена детализация остатков. Массив задается так: goodId=<ID1>&goodId=<ID2>&...&goodId=<ID50> | нет |
В случае незаданного параметра storeId сервис вернет ошибку httpcode=400 (неверный запрос).
Для работы с перечисленными сервисами требуется BASIC-авторизация. Пользователь, с именем и паролем которого будет происходить обращение к сервису, должен быть наделен правами на работу в основном приложении.
Кириллическое имя пользователя и пароль при входе с BASIC-авторизацией работать не будут, так как в этом случае UTF-8 строка с именем и паролем интерпретируются как ASCII. Чтобы обойти это ограничение BASIC-авторизации, вы можете использовать вместо имени пользователя почтовый адрес, указанный при регистрации учетной записи. Если почтовый адрес указан в более чем одной учетной записи пользователя, то в качестве логина его использовать уже нельзя.
Обновления
Вы можете всегда увидеть описание последних изменений в API в специальном форуме - https://moysklad.zendesk.com/forums/20732298-api При необходимости Вы можете подписаться на рассылку новых статей из этого форума и получать информацию об обновлениях по почте.