Импорт/экспорт
Импорт и экспорт номенклатуры, заказов, итд
- /api/lite/import/upload
- /api/lite/import/preview
- /api/lite/import/task
- /api/lite/import/process
- /api/lite/import/field_list
- /api/lite/export/sku
- /api/lite/import/templates/sku
- /api/lite/export/order
- Шаблоны подписок
- /api/lite/export/purchase_order
- /api/lite/import/order_field_list
- /api/lite/export/sku/movements/json
- /api/lite/export/sku/movements
- /api/lite/export/order/count
- /api/lite/import/templates/order
- /api/lite/export/order/now
- /api/lite/export/order/invoice
- api/lite/export/supply
- /api/lite/export/supply/count
/api/lite/import/upload
Загрузка файла номенклатуры (/api/lite/import/upload)
POST /api/lite/import/upload |
---|
/api/lite/import/upload
Используется заголовок запроса Content-type: multipart/form-data.
В качестве параметров запроса передается:
-
templateType - Тип шаблона (SKU, ORDER) - обязательный параметр. Для номенклатуры - значение SKU
- upfile - файл с номенклатурой
После успешной загрузки, возвращается идентификатор загруженного файла, fieldMatching - последнее актуальное сопоставление полей, header - распознанная первая строка, с автоматически примененным сопоставлением полей из fieldMatching, body - несколько первых строк файла с данными (начиная со второй строки), columnMatching - сопоставление номера столбца и распознанного ключа fieldMatching.
Положительный результат запроса:
{
"success":true,
"id":"1002",
"rowsCount":8,
"totalRows":9,
"lastParsedRow":8,
"headerRow":0,
"header":[
{
"matchedId":"id",
"title":"Код в Kak2c",
"id":"0"
},
{
"matchedId":"extId",
"title":"Внешний код",
"id":"1"
},
{
"matchedId":"article",
"title":"Артикул",
"id":"2"
},
{
"matchedId":"shortName",
"title":"Наименование",
"id":"3"
},
{
"matchedId":null,
"title":"Полное наименование",
"id":"4"
},
{
"matchedId":null,
"title":"Штрихкоды",
"id":"5"
},
{
"matchedId":"defaultImage",
"title":"URL картинки",
"id":"6"
},
{
"matchedId":null,
"title":"Код варианта",
"id":"7"
},
{
"matchedId":null,
"title":"Код родительского варианта",
"id":"8"
},
{
"matchedId":null,
"title":"Цвет",
"id":"9"
},
{
"matchedId":null,
"title":"Размер",
"id":"10"
},
{
"matchedId":"VAT",
"title":"Ставка НДС",
"id":"11"
},
{
"matchedId":null,
"title":"Количество (GLOBAL_DELIVERY)",
"id":"12"
},
{
"matchedId":null,
"title":"Количество (Tempoline)",
"id":"13"
},
{
"matchedId":"price",
"title":"Розничная цена",
"id":"14"
},
{
"matchedId":null,
"title":"Цена до скидки",
"id":"15"
},
{
"matchedId":null,
"title":"OZON",
"id":"16"
},
{
"matchedId":null,
"title":"GOODS",
"id":"17"
},
{
"matchedId":null,
"title":"BERU",
"id":"18"
}
],
"body":[
{
"rowNum":1,
"rowBody":{
"0":"1067",
"1":"300212295",
"2":"4620771200101-4",
"3":"#Спрут_экстра от сорняков, Спрут Экстра ВР, Октябрина Апрелевна 100 мл",
"4":"#Спрут_экстра от сорняков, Спрут Экстра ВР, Октябрина Апрелевна 100 мл",
"5":"4620771200100",
"6":"https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Solomin_field.JPG/1200px-Solomin_field.JPG",
"7":"20%",
"8":"0",
"9":"0",
"10":"",
"11":"",
"12":"",
"13":"100",
"14":"257.00",
"15":"",
"16":"",
"17":"",
"18":""
}
},
{
"rowNum":2,
"rowBody":{
"0":"1049",
"1":"300204695",
"2":"4620771201909-1",
"3":"#Садовый_вар дезинфекция ран, Октябрина Апрелевна 150 гр",
"4":"#Садовый_вар дезинфекция ран, Октябрина Апрелевна 150 гр",
"5":"4620771201893",
"6":"https://img2.wbstatic.net/big/new/9240000/9243894-1.jpg",
"7":"20%",
"8":"0",
"9":"0",
"10":"",
"11":"",
"12":"",
"13":"100",
"14":"77.00",
"15":"",
"16":"",
"17":"",
"18":""
}
}
],
"fieldMatching":{
"isNovelty":"новинка",
"available":"доступен",
"VAT":"ставка ндс",
"description":"описание",
"stockAvailable":"остаток",
"price":"цена",
"id":"id",
"extId":"внешний id",
"variantId":"ид варианта",
"barcode":"штрихкод",
"defaultImage":"url картинки",
"height":"высота",
"brandName":"бренд",
"stockReserved":"резерв",
"productId":"ид продукта",
"oldPrice":"старая цена",
"weight":"вес",
"isBestseller":"хит",
"article":"артикул",
"deleted":"удален",
"depth":"глубина",
"width":"ширина",
"countryOfOrigin":"страна производитель",
"shortName":"наименование",
"price$Цена до скидки":"цена: цена до скидки",
"price$Розничная цена":"цена: розничная цена",
"attribute$material":"атрибут: материал",
"feature$color":"свойство: цвет",
"feature$size":"свойство: размер"
},
"columnMatching":{
"0":"id",
"11":"VAT",
"1":"extId",
"2":"article",
"3":"shortName",
"14":"price",
"6":"defaultImage"
},
"importMethod":"UPDATE",
"replacePictures":false,
"searchField":"ID"
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/import/preview
Получить первые N строк загруженного файла (/api/lite/import/preview)
/api/lite/import/preview
параметр: id (Идентификатор загруженного файла)
например api/lite/import/preview?id=1001
параметр count (количество строк документа. Если не передан, то по умолчанию - 25)
например api/lite/import/preview?id=1001&count=10
Положительный результат запроса:
{
"success":true,
"id":"1001",
"rowsCount":1,
"totalRows":9,
"lastParsedRow":0,
"headerRow":0,
"header":[
{
"matchedId":"id",
"title":"Код в Kak2c",
"id":"0"
},
{
"matchedId":"extId",
"title":"Внешний код",
"id":"1"
},
{
"matchedId":"article",
"title":"Артикул",
"id":"2"
},
{
"matchedId":"shortName",
"title":"Наименование",
"id":"3"
},
{
"matchedId":null,
"title":"Полное наименование",
"id":"4"
},
{
"matchedId":null,
"title":"Штрихкоды",
"id":"5"
},
{
"matchedId":"defaultImage",
"title":"URL картинки",
"id":"6"
},
{
"matchedId":null,
"title":"Код варианта",
"id":"7"
},
{
"matchedId":null,
"title":"Код родительского варианта",
"id":"8"
},
{
"matchedId":null,
"title":"Цвет",
"id":"9"
},
{
"matchedId":null,
"title":"Размер",
"id":"10"
},
{
"matchedId":"VAT",
"title":"Ставка НДС",
"id":"11"
},
{
"matchedId":null,
"title":"Количество (GLOBAL_DELIVERY)",
"id":"12"
},
{
"matchedId":null,
"title":"Количество (Tempoline)",
"id":"13"
},
{
"matchedId":"price",
"title":"Розничная цена",
"id":"14"
},
{
"matchedId":null,
"title":"Цена до скидки",
"id":"15"
},
{
"matchedId":null,
"title":"OZON",
"id":"16"
},
{
"matchedId":null,
"title":"GOODS",
"id":"17"
},
{
"matchedId":null,
"title":"BERU",
"id":"18"
}
],
"body":[
{
"rowNum":1,
"rowBody":{
"0":"1067",
"1":"300212295",
"2":"4620771200101-4",
"3":"#Спрут_экстра от сорняков, Спрут Экстра ВР, Октябрина Апрелевна 100 мл",
"4":"#Спрут_экстра от сорняков, Спрут Экстра ВР, Октябрина Апрелевна 100 мл",
"5":"4620771200100",
"6":"https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Solomin_field.JPG/1200px-Solomin_field.JPG",
"7":"20%",
"8":"0",
"9":"0",
"10":"",
"11":"",
"12":"",
"13":"100",
"14":"257.00",
"15":"",
"16":"",
"17":"",
"18":""
}
}
],
"fieldMatching":{
"isNovelty":"новинка",
"brandName":"бренд",
"stockReserved":"резерв",
"productId":"ид продукта",
"oldPrice":"старая цена",
"available":"доступен",
"VAT":"ставка ндс",
"description":"описание",
"weight":"вес",
"isBestseller":"хит",
"stockAvailable":"остаток",
"article":"артикул",
"deleted":"удален",
"depth":"глубина",
"price":"розничная цена",
"width":"ширина",
"id":"код в kak2c",
"extId":"внешний код",
"countryOfOrigin":"страна производитель",
"variantId":"ид варианта",
"shortName":"наименование",
"barcode":"штрихкод",
"defaultImage":"url картинки",
"height":"высота"
},
"columnMatching":{
"0":"id",
"11":"VAT",
"1":"extId",
"2":"article",
"3":"shortName",
"14":"price",
"6":"defaultImage"
},
"importMethod":"UPDATE",
"searchField":"ID"
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/import/task
Список заданий(подробная информация по заданию) (/api/lite/import/task)
/api/lite/import/task
Положительный результат запроса:
{
"success": true,
"recordsTotal": 2,
"tasks": [
{
"success": true,
"date": "2020-07-13 18:58:57",
"id": "1002",
"processed": false,
"enqueued": false,
"rowsTotal": 9,
"emptyRowsCount":0,
"lastProcessedRow": 0,
"itemsProcessedCount": 0,
"itemsFailedCount": 0,
"progressPercentage": 0,
"failedRowsNum": "",
"itemsCreatedCount": null,
"itemsUpdatedCount": null,
"startTime": "2020-07-13 18:58:57",
"finishTime": null
},
{
"success": true,
"date": "2020-07-12 17:45:00",
"id": "1001",
"processed": true,
"enqueued": true,
"rowsTotal": 9,
"emptyRowsCount":0,
"lastProcessedRow": 9,
"itemsProcessedCount": 9,
"itemsFailedCount": 0,
"progressPercentage": 100,
"failedRowsNum": "",
"itemsCreatedCount": 0,
"itemsUpdatedCount": 9,
"startTime": "2020-07-13 16:44:12,
"finishTime": "2020-07-13 16:45:22
}
]
}
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/import/task?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
параметр: templateType=SKU тип заданий для отображения. Возможные варианты: [SKU, ORDER] Если не передан, то по умолчанию - SKU
параметр: id (Идентификатор задания, если передан, возвращается подробная информация по заданию)
например api/lite/import/task?id=1001
Положительный результат запроса:
{
"success": true,
"date": "2020-07-13 18:58:57",
"id": "1002",
"processed": false,
"enqueued": false,
"rowsTotal": 9,
"emptyRowsCount":0,
"lastProcessedRow": 0,
"itemsProcessedCount": 0,
"itemsFailedCount": 0,
"progressPercentage": 11,
"failedRowsNum": "",
"itemsCreatedCount": null,
"itemsUpdatedCount": null,
"startTime": null,
"finishTime": null,
"warehouseName": "Свой склад",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/f328ff56-ec93-4663-b747-7ee96957ca8e.xls",
"fieldMatching": {
"isNovelty": "новинка",
"brandName": "бренд",
"stockReserved": "резерв",
"productId": "ид продукта",
"oldPrice": "старая цена",
"available": "доступен",
"VAT": "ставка ндс",
"description": "описание",
"weight": "вес",
"isBestseller": "хит",
"stockAvailable": "остаток",
"article": "артикул",
"deleted": "удален",
"depth": "глубина",
"price": "розничная цена",
"width": "ширина",
"id": "код в kak2c",
"extId": "внешний код",
"countryOfOrigin": "страна производитель",
"variantId": "ид варианта",
"shortName": "наименование",
"barcode": "штрихкод",
"defaultImage": "url картинки",
"height": "высота"
},
"processingLog": [
{
"time":"2020-07-30 11:25:14",
"strNum":1,
"event":"Строка успешно обработана",
"level":"INFO"
},
{
"time": "2020-08-05 16:15:53",
"strNum": 2,
"event": "Обнаружена пустая строка",
"level": "WARNING"
},
{
"time": "2020-08-05 16:15:53",
"strNum": 3,
"event": "Не задано наименование для нового продукта.",
"level": "ERROR"
}
],
"importType" : "UPDATE", //"CREATE" Режим загрузки номенклатуры
"searchField" : "ID", //"EXTID" | "ARTICLE" | "BARCODE" Сопоставление номенклатуры
"replacePictures" : false, //Заменять изображения
"updateRests", : false //Загружать остатки
"clearEmptyValues" : false //Стирать значения, если они пустые
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Обновить настройки задания (/api/lite/import/task)
/api/lite/import/task
параметр: id (идентификатор задания)
например api/lite/import/task?id=1001
Пример запроса:
{
"id": "ed83074b-0072-43b0-a3fb-3f741cc8dc21", //Идентификатор загруженного файла
"warehouseName": "Свой склад", //Наименование склада
"fieldMatching" : {
"id":"Код в Kak2c",
"article":"Артикул",
"extId":"Внешний ИД",
"barcode":"Штрихкоды",
"shortName":"Наименование",
"description":"Полное наименование",
"vat":"Ставка НДС",
"stockAvailable":"Количество",
"price":"Цена",
"currency":"Валюта",
"picture":"URL картинки"
}, //Сопоставление полей
"importType" : "UPDATE", //"CREATE" Режим загрузки номенклатуры
"searchField" : "ID", //"EXTID" | "ARTICLE" | "BARCODE" Сопоставление номенклатуры
"replacePictures" : false, //Заменять изображения
"updateRests", : false //Загружать остатки
"clearEmptyValues" : false //Стирать значения, если они пустые
}
Положительный результат запроса:
{
"success": true,
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/import/process
Запустить обработку загруженного файла (/api/lite/import/process)
/api/lite/import/process
параметр: id (Идентификатор загруженного файла) обязательный
например api/lite/import/process?id=ed83074b-0072-43b0-a3fb-3f741cc8dc21
Положительный результат запроса:
{
"success": true,
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/import/field_list
Получить список возможных полей номенклатуры(/api/lite/import/field_list)
/api/lite/import/field_list
Положительный результат запроса:
{
"success": true,
"fields": {
"id": "ID",
"extId": "Внешний ID",
"shortName": "Наименование",
"article": "Артикул",
"barcode": "Штрихкод",
"brandName": "Бренд",
"vat": "Ставка НДС",
"defaultImage": "URL картинки",
"productId": "ID Продукта",
"productExtId": "Внешний ID продукта",
"weight": "Вес (кг)",
"width": "Ширина (см)",
"height": "Высота (см)",
"depth": "Глубина (см)",
"tnved": "ТНВЭД",
"type": "Тип",
"internationalDescription": "Международное описание товара",
"isBestseller": "Хит",
"isNovelty": "Новинка",
"description": "Описание",
"countryOfOrigin": "Страна производитель",
"stockTotal": "Остаток",
"stockReserved": "В резерве",
"available": "Доступен",
"price$Цена до скидки": "Цена: цена до скидки",
"price$Розничная цена": "Цена: розничная цена",
"feature$size": "Свойство: размер",
"feature$color": "Свойство: цвет"
}
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/export/sku
Список результатов экспорта(подробная информация по экспорту) (/api/lite/export/sku)
/api/lite/export/sku
Положительный результат запроса:
{
"success": true,
"recordsTotal": 2
"exportResults": [
{
"success": true,
"id": "1001",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileID": "fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileSize": "122 KB",
"rowsCount": 296,
"startTime": "2020-08-27 15:48:25",
"finishTime": "2020-08-27 15:48:26",
"cloudUploadFinishTime": "2020-08-27 15:48:27"
},
{
"success": true,
"id": "1000",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/452e74b0-3660-4c80-bfcb-78034097b720.xls",
"fileID": "452e74b0-3660-4c80-bfcb-78034097b720.xls",
"fileSize": "122 KB",
"rowsCount": 296,
"startTime": "2020-08-27 15:27:53",
"finishTime": "2020-08-27 15:27:54",
"cloudUploadFinishTime": "2020-08-27 15:27:55"
}
]
}
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/export/sku?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
параметр: id (Идентификатор результата, если передан, возвращается подробная информация по результату)
например /api/lite/export/sku?id=1001
Положительный результат запроса:
{
"success": true,
"id": "1001",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileID": "fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileSize": "122 KB",
"rowsCount": 296,
"startTime": "2020-08-27 15:48:25",
"finishTime": "2020-08-27 15:48:26",
"cloudUploadFinishTime": "2020-08-27 15:48:27"
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Инициировать экспорт товаров (/api/lite/export/sku)
/api/lite/export/sku
Пример запроса:
{
"warehouse":null, //ИД Склада(фильтр)
"exportStock":true, //Выгружать остатки
"exportPrice":true, //Выгружать цены
"exportFeatures":true, //Выгружать свойства
"exportAttributes":true, //Выгружать атрибуты
"exportPictures":true, //Выгружать картинки
"exportArchive":false //Выгружать архивные товары
}
Положительный результат запроса:
{
"success": true,
"id": "1000",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileID": "fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileSize": "122 KB", //Размер файла(строка)
"rowsCount": 296, //Количество строк в файле
"startTime": "2020-08-27 15:48:25", //Время начала подготовки файла
"finishTime": "2020-08-27 15:48:26", //Время окончания подготовки файла
"cloudUploadFinishTime": "2020-08-27 15:48:27" //Время окончания загрузки в облако
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/import/templates/sku
Получение шаблона импорта номенклатуры (с вариантами)
/api/lite/import/templates/sku
В ответ возвращается в бинарном виде с типом application/octet-stream xls файл для выгрузки в браузер пользователю
В файл записываются первые 10 товаров аккаунта
Можно задавать ему название "ItemTemplate.xls"
Успех:
application/octet-stream
Ошибка:
status 500
{
"timestamp": "2020-04-03T10:38:46.343+0000",
"status": 500,
"error": "Internal Server Error",
"message": "12345",
"path": "/api/lite/settings/templates/items"
}
/api/lite/export/order
Список результатов экспорта заказов(подробная информация по экспорту) (/api/lite/export/order)
/api/lite/export/order
Положительный результат запроса:
{
"success": true,
"recordsTotal": 2
"exportResults": [
{
"success": true,
"id": "1001",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileID": "fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileSize": "122 KB",
"rowsCount": 296,
"startTime": "2020-08-27 15:48:25",
"finishTime": "2020-08-27 15:48:26",
"cloudUploadFinishTime": "2020-08-27 15:48:27"
"requestJson":"{\"fromDate\":\"2020-09-25 20:31:00\",\"exportTechData\":false,\"orderType\":\"CUSTOM\",\"orderSubType\":\"KAK2C_SUBSCRIPTION\",\"exportItems\":false,\"searchDateType\":\"CREATE_DATE\",\"toDate\":\"2020-12-01 20:31:07\",\"exportTags\":true,\"extendedAddress\":false,\"exportPackages\":false}",
"processed":true,
"rowsTotal":987,
"itemsProcessedCount":987,
"itemsFailedCount":0,
"processingLog":[]
},
{
"success": true,
"id": "1000",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/452e74b0-3660-4c80-bfcb-78034097b720.xls",
"fileID": "452e74b0-3660-4c80-bfcb-78034097b720.xls",
"fileSize": "122 KB",
"rowsCount": 296,
"startTime": "2020-08-27 15:27:53",
"finishTime": "2020-08-27 15:27:54",
"cloudUploadFinishTime": "2020-08-27 15:27:55"
"processed":true,
"rowsTotal":987,
"itemsProcessedCount":987,
"itemsFailedCount":0,
"processingLog":[]
}
]
}
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/export/order?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
параметр: id (Идентификатор результата, если передан, возвращается подробная информация по результату)
например /api/lite/export/order?id=1001
Положительный результат запроса:
{
"success": true,
"id": "1001",
"fileUrl": "https://storage.yandexcloud.net/images-k2c/fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileID": "fd5d5bc5-9792-4fee-be5e-51dd93e853ea.xls",
"fileSize": "122 KB",
"rowsCount": 296,
"startTime": "2020-08-27 15:48:25",
"finishTime": "2020-08-27 15:48:26",
"cloudUploadFinishTime": "2020-08-27 15:48:27"
"processed":true,
"rowsTotal":987,
"itemsProcessedCount":987,
"itemsFailedCount":0,
"processingLog":[]
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Инициировать экспорт заказов (/api/lite/export/order)
(асинхронный запрос)
/api/lite/export/order
Пример запроса:
{
"searchDateType":"CREATE_DATE", //TAKEOUT_DATE, DELIVERY_DATE, RETURN_DATE - Метод отбора (по дате создания/отгрузки/доставки/возврата)
"fromDate":"2020-08-01 00:00:00", //Дата от
"toDate":"2020-10-01 00:00:00", //Дата до
"extendedAddress":true, //Выгрузить адрес по частям
"exportTags":true, //Выгрузить метки
"exportItems":true, //Данные по товарам (Может значительно замедлить экспорт, выполняется запрос регистров, ограничение в 1000 записей)
"exportPackages":true, //Данные по транспортным местам
"exportPackedItems": true, //Данные по упакованным товарам
"exportTechData":true, //Технические данные
"orderType":"CUSTOM", //STANDARD | KAKTUS_DOSTAVKA_V2 У обычных заказов - STANDARD
"orderSubType":"KAK2C_SUBSCRIPTION", //У обычных заказов он null.
"ids":["49379964-0003-2", "49379964-0003-3"], //Если требуется выгрузить заказы с указанными HumanId
"city":"Новосибирск",
"deliveryInfos":["f7c887bc-2161-a53e-0c98-8180f458b79d"], //Список служб доставки
"orderTags":["Метка"], //список ИМЁН меток (не гуидов!)
"promocode":"ajaton3000",
"statuses":["ORDER_INFO_REQUIRE_PAYMENT"], //Список статусов заказа
"variantId":"982880" //sku humanId
}
"orderSubType" - Отбор по подтипу заказа. У обычных заказов он null. Отбор моно проводить как по совокупности (тип + подтип), так и по отдельности (тип или подтип). Если тип и подтип не заданы, возвращаются все заказы в заданном промежутке дат (fromDate, toDate). Если задан orderSubType == "KAK2C_SUBSCRIPTION", название и количество колонок xls документа может изменится, для отображения данных по подпискам.
Положительный результат запроса:
{
"id": "1000",
"itemsFailedCount": 0,
"itemsProcessedCount": 0,
"processed": false,
"processingLog": [],
"requestJson": "{\"fromDate\":\"2023-07-04 16:17:46\",\"searchDateType\":\"TAKEOUT_DATE\",\"toDate\":\"2023-07-05 16:17:46\",\"exportTags\":true}",
"success": true
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Шаблоны подписок
Создание/редактирование шаблона подписок
/api/lite/product/subscription/parse
Создаёт структуру шаблона подписок по заданному шаблону. Все заданные товары должны существовать в кактусе до загрузки шаблона.
Если тип оплаты recurrent:
- Стоимость товара-подписки становится равной сумме первых отправлений
- Стоимость остальных отправлений становится 0
Если тип оплаты all_in_moment:
- Стоимость товара-подписки становится равен сумме всех отправлений
Передаваемые параметры:
Имя | Тип | Описание |
file | MultipartFile | Файл (.XLS) для парсинга. Пример файла . Возможные значения в payment_method: RECURRENT и ALL_IN_MOMENT |
productId | String | productId товара-подписки |
variantId | String | variantId товара-подписки |
startDate (optional) | String | Дата с которой начинается первое отправление. Если не задано, берётся текущая |
При удачном парсинге возвращает структуру шаблона:
{
"success": true,
"productId": "1002",
"variantId": "1002",
"type": "SUBSCRIPTION",
"onlinePaymentType": "recurrent",
"useShipmentDelayInterval": true,
"items": [
{
"productId": "1002",
"variantId": "1006",
"count": 1,
"subscriptionShipmentNum": 1,
"shipmentDelayIntervalDays": 30,
"subscriptionStartDate": "2020-09-10",
"itemPrice": 120.0
},
{
"productId": "1002",
"variantId": "1007",
"count": 1,
"subscriptionShipmentNum": 1,
"shipmentDelayIntervalDays": 30,
"subscriptionStartDate": "2020-09-10",
"itemPrice": 120.0
},
{
"productId": "1002",
"variantId": "1008",
"count": 1,
"subscriptionShipmentNum": 2,
"shipmentDelayIntervalDays": 20,
"subscriptionStartDate": "2020-09-30",
"itemPrice": 150.0
},
{
"productId": "1002",
"variantId": "1009",
"count": 1,
"subscriptionShipmentNum": 2,
"shipmentDelayIntervalDays": 20,
"subscriptionStartDate": "2020-09-30",
"itemPrice": 150.0
},
{
"productId": "1002",
"variantId": "1010",
"count": 1,
"subscriptionShipmentNum": 3,
"shipmentDelayIntervalDays": 20,
"subscriptionStartDate": "2020-10-20",
"itemPrice": 250.0
}
]
}
Пример ошибки:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Update SubscriptionTemplate not implemented yet!\n"
}
]
}
Получение информации о шаблоне
/api/lite/product/subscription
Передаваемые параметры:
Имя | Тип | Описание |
id | String | productId товара-подписки |
Пример успешного ответа:
{
"success": true,
"productId": "1002",
"variantId": "1002",
"type": "SUBSCRIPTION",
"onlinePaymentType": "recurrent",
"useShipmentDelayInterval": true,
"items": [
{
"productId": "1002",
"variantId": "1006",
"count": 1,
"subscriptionShipmentNum": 1,
"shipmentDelayIntervalDays": 30,
"subscriptionStartDate": "2020-09-10",
"itemPrice": 120.0
},
{
"productId": "1002",
"variantId": "1007",
"count": 1,
"subscriptionShipmentNum": 1,
"shipmentDelayIntervalDays": 30,
"subscriptionStartDate": "2020-09-10",
"itemPrice": 120.0
},
{
"productId": "1002",
"variantId": "1008",
"count": 1,
"subscriptionShipmentNum": 2,
"shipmentDelayIntervalDays": 20,
"subscriptionStartDate": "2020-09-30",
"itemPrice": 150.0
},
{
"productId": "1002",
"variantId": "1009",
"count": 1,
"subscriptionShipmentNum": 2,
"shipmentDelayIntervalDays": 20,
"subscriptionStartDate": "2020-09-30",
"itemPrice": 150.0
},
{
"productId": "1002",
"variantId": "1010",
"count": 1,
"subscriptionShipmentNum": 3,
"shipmentDelayIntervalDays": 20,
"subscriptionStartDate": "2020-10-20",
"itemPrice": 250.0
}
]
}
/api/lite/export/purchase_order
Инициировать экспорт заказа поставщику (/api/lite/export/purchase_order?id=1016)
(синхронный запрос)
/api/lite/export/purchase_order?id=1016
{
"success": true,
"id": null,
"fileUrl": "https://storage.yandexcloud.net/items-export-kak2c/export_takein_max@panshinteam.com_26.10.2020_16-09-15.xls",
"fileID": "export_takein_max@panshinteam.com_26.10.2020_16-09-15.xls",
"fileSize": "8 KB",
"rowsCount": 12,
"startTime": "2020-10-26 16:09:14",
"finishTime": "2020-10-26 16:09:15",
"cloudUploadFinishTime": "2020-10-26 16:09:16"
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/import/order_field_list
Получить список возможных полей заказа(/api/lite/import/order_field_list)
/api/lite/import/order_field_list
Положительный результат запроса:
{
"success": true,
"fields": {
"id": "ID заказа",
"date": "Дата заказа",
"fullName": "ФИО покупателя",
"phone": "Телефон",
"paymentMethodCode": "Способ оплаты",
"paymentStatus": "Заказ оплачен",
"email": "Email",
"post": "Индекс",
"pvzNum": "Код пункта выдачи",
"country": "Страна",
"fullAddress": "Полный адрес",
"region": "Регион",
"area": "Район",
"city": "Город",
"settlement": "Населенный пункт",
"street": "Улица",
"house": "Дом",
"block": "Корпус",
"flat": "Квартира",
"deliveryCode": "Код способа доставки",
"variantId": "ID товара",
"variantExtId": "Внешний ID товара",
"article": "Артикул",
"barcode": "Штрихкод",
"price": "Цена",
"quantity": "Количество",
"vat": "Ставка НДС"
}
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/export/sku/movements/json
Получить движения по товару в json формате (/api/lite/export/sku/movements/json?id=MA001)
(синхронный запрос)
/api/lite/export/sku/movements/json?id=MA001
{
"success": true,
"humanId": "MA001",
"article": "MA001",
"shortName": "Мастера рисунка и живописи. Випуск 1",
"extId": null,
"extId2": null,
"barcodes": "977253178460500001",
"movements": [
{
"success": true,
"period": "2020-09-30 03:09:21",
"humanId": "1000",
"documentType": "TAKE_IN_FACT",
"operationType": "PLUS",
"amountAvailable": 194,
"amountReserved": 0,
"sourceDocHumanId": null,
"sourceDocType": null,
"warehouseName": "Tempoline - Украина"
},
{
"success": true,
"period": "2020-11-10 06:11:44",
"humanId": "1580",
"documentType": "TAKE_OUT_PACKING",
"operationType": "MINUS",
"amountAvailable": 1,
"amountReserved": 1,
"sourceDocHumanId": "9098-1715",
"sourceDocType": "ORDER",
"warehouseName": "Tempoline - Украина"
}
]
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/export/sku/movements
Получить движения по товару в xls файле (/api/lite/export/sku/movements?id=MA001)
(синхронный запрос)
/api/lite/export/sku/movements?id=MA001
{
"success": true,
"id": null,
"fileUrl": "https://ycloud.kak2c.ru/items-export-kak2c/export_movement_info@centauria.com.ua_18.11.2020_18-05-26.xls",
"fileID": "export_movement_info@centauria.com.ua_18.11.2020_18-05-26.xls",
"fileSize": "190 KB",
"rowsCount": 1169,
"startTime": "2020-11-18 18:05:26",
"finishTime": "2020-11-18 18:05:26",
"cloudUploadFinishTime": "2020-11-18 18:05:26"
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/export/order/count
Подсчитать кол-во заказов (/api/lite/export/order/count)
/api/lite/export/order/count
Пример запроса:
{
"searchDateType":"CREATE_DATE", //TAKEOUT_DATE, DELIVERY_DATE, RETURN_DATE - Метод отбора (по дате создания/отгрузки/доставки/возврата)
"fromDate":"2020-08-01 00:00:00", //Дата от
"toDate":"2020-10-01 00:00:00", //Дата до
"extendedAddress":true, //Выгрузить адрес по частям
"exportTags":true, //Выгрузить метки
"exportItems":true, //Данные по товарам (Может значительно замедлить экспорт, выполняется запрос регистров, ограничение в 1000 записей)
"exportPackages":true, //Данные по транспортным местам
"exportTechData":true, //Технические данные
"orderType":"CUSTOM", //STANDARD | KAKTUS_DOSTAVKA_V2 У обычных заказов - STANDARD
"orderSubType":"KAK2C_SUBSCRIPTION", //У обычных заказов он null.
"ids":["49379964-0003-2", "49379964-0003-3"] //Если требуется выгрузить заказы с указанными HumanId
"city":"Новосибирск",
"deliveryInfos":["f7c887bc-2161-a53e-0c98-8180f458b79d"], //Список служб доставки
"orderTags":["Метка"], //список ИМЁН меток (не гуидов!)
"promocode":"ajaton3000",
"statuses":["ORDER_INFO_REQUIRE_PAYMENT"], //Список статусов заказа
"variantId":"982880" //sku humanId
}
"orderSubType" - Отбор по подтипу заказа. У обычных заказов он null. Отбор моно проводить как по совокупности (тип + подтип), так и по отдельности (тип или подтип). Если тип и подтип не заданы, возвращаются все заказы в заданном промежутке дат (fromDate, toDate). Если задан orderSubType == "KAK2C_SUBSCRIPTION", название и количество колонок xls документа может изменится, для отображения данных по подпискам.
Положительный результат запроса:
{
"success": true,
"count": 2274, //Число заказов в выборке
"limit": 3000 //Максимальное кол-во заказов, которое может быть выгружено в эксель
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/import/templates/order
Получение шаблона импорта заказов
/api/lite/import/templates/order
В ответ возвращается в бинарном виде с типом application/octet-stream xls файл для выгрузки в браузер пользователю
В файл записываются первые 10 товаров аккаунта
Можно задавать ему название "orderTemplate.xls"
Успех:
application/octet-stream
Ошибка:
status 500
{
"timestamp": "2020-04-03T10:38:46.343+0000",
"status": 500,
"error": "Internal Server Error",
"message": "12345",
"path": "/api/lite/settings/templates/order"
}
/api/lite/export/order/now
Экспеорт выбранного заказа в Excel (/api/lite/export/order/now)
/api/lite/export/order/now
Параметр id - номер заказа
Положительный результат запроса:
{
"success": true,
"recordsTotal": 1,
"exportResults": [
{
"success": true,
"id": null,
"fileUrl": "https://storage.yandexcloud.net/items-export-kak2c/export_orders_info@hot-wave.ru_28.07.2021_09-29-24.xls",
"fileID": "export_order_4247-2840",
"fileSize": null,
"rowsCount": null,
"startTime": null,
"finishTime": null,
"processed": null,
"rowsTotal": 1,
"itemsProcessedCount": null,
"itemsFailedCount": null
}
]
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/export/order/invoice
Экспорт инвойса по номеру заказа (/api/lite/export/order/invoice)
/api/lite/export/order/invoice
Параметр id - номер заказа
Положительный результат запроса:
{
"success": true,
"recordsTotal": 1,
"exportResults": [
{
"success": true,
"id": null,
"fileUrl": "https://storage.yandexcloud.net/items-import-kak2c/tl_invoice_test@tempo.ru_31.08.2021_17-34-51.pdf",
"fileID": "export_invoice_2502-123458",
"fileSize": null,
"rowsCount": null,
"startTime": null,
"finishTime": null,
"processed": null,
"rowsTotal": 1,
"itemsProcessedCount": null,
"itemsFailedCount": null
}
]
}
Отрицательный результат запроса:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
api/lite/export/supply
Список результатов экспорта поставок (подробная информация по экспорту) (/api/lite/export/supply)
api/lite/export/supply
Положительный результат запроса:
{
"exportResults": [
{
"id": "1136",
"itemsFailedCount": 0,
"itemsProcessedCount": 0,
"processed": false,
"processingLog": [],
"requestJson": "{\"fromDate\":\"2023-06-03 15:29:54\",\"exportItems\":\"true\",\"suppliers\":[\"8a65065d-7b68-57a7-692d-8d8db78b38cc\"],\"toDate\":\"2023-06-03 15:29:54\",\"statuses\":[\"NEW\"],\"ids\":[]}",
"success": true
},
{
"cloudUploadFinishTime": "2023-06-03 19:01:57",
"fileID": "d39741e3-2338-4875-9309-75f7aeceb121.xls",
"fileSize": "32 KB",
"fileUrl": "https://storage.yandexcloud.net/items-export-kak2c/d39741e3-2338-4875-9309-75f7aeceb121.xls",
"finishTime": "2023-06-03 19:01:41",
"id": "1135",
"itemsFailedCount": 0,
"itemsProcessedCount": 46,
"processed": true,
"processingLog": [],
"requestJson": "{\"exportItems\":true,\"suppliers\":[\"b1b74b49-dd24-999d-c1f7-31a7d3afa6e7\",\"11430b37-7f78-1202-f6cf-e4b460d81aca\"],\"statuses\":[]}",
"rowsCount": 46,
"rowsTotal": 46,
"startTime": "2023-06-03 19:01:36",
"success": true
}
]
}
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/export/supply?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
параметр: id (Идентификатор результата, если передан, возвращается подробная информация по результату)
например /api/lite/export/supply?id=1001
Положительный результат запроса:
{
"cloudUploadFinishTime": "2023-06-05 11:07:00",
"fileID": "4b205bee-cff2-43e4-adf6-8b44da45ed83.xls",
"fileSize": "10 KB",
"fileUrl": "https://storage.yandexcloud.net/items-export-kak2c/4b205bee-cff2-43e4-adf6-8b44da45ed83.xls",
"finishTime": "2023-06-05 11:07:00",
"id": "1001",
"itemsFailedCount": 0,
"itemsProcessedCount": 11,
"processed": true,
"processingLog": [],
"requestJson": "{\"fromDate\":\"2022-06-03 15:29:54\",\"exportItems\":\"true\",\"suppliers\":[],\"toDate\":\"2023-06-03 15:29:54\",\"statuses\":[\"NEW\"],\"ids\":[]}",
"rowsCount": 11,
"rowsTotal": 11,
"startTime": "2023-06-05 11:06:57",
"success": true
}
Отрицательный результат запроса:
Пример ошибки:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Инициировать экспорт поставок (/api/lite/export/supply)
(асинхронный запрос)
/api/lite/export/supply
Пример запроса:
{
"exportItems": "true", //Данные по товарам (Может значительно замедлить экспорт, выполняется запрос регистров, ограничение в 1000 записей)
"statuses": ["NEW"], //InfoStatus поставки
"suppliers": ["8a65065d-7b68-57a7-692d-8d8db78b38cc"], //Id поставщика
"fromDate": "2022-06-03 15:29:54", //Дата от
"toDate": "2023-06-03 15:29:54", //Дата до
"ids": [] //Если требуется выгрузить заказы с указанными HumanId
}
Положительный результат запроса:
Пример
{
"success": true,
"id": "1001",
"fileUrl": null,
"fileID": null,
"fileSize": null,
"rowsCount": null,
"startTime": null,
"finishTime": null,
"cloudUploadFinishTime": null
}
Отрицательный результат запроса:
Пример ошибки
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
/api/lite/export/supply/count
Подсчитать кол-во поставок (/api/lite/export/supply/count)
api/lite/export/supply/count
Пример запроса:
{
"exportItems": "true", //Данные по товарам (Может значительно замедлить экспорт, выполняется запрос регистров, ограничение в 1000 записей)
"statuses": ["NEW"], //InfoStatus поставки
"suppliers": ["8a65065d-7b68-57a7-692d-8d8db78b38cc"], //Id поставщика
"fromDate": "2022-06-03 15:29:54", //Дата от
"toDate": "2023-06-03 15:29:54", //Дата до
"ids": [] //Если требуется выгрузить заказы с указанными HumanId
}
Положительный результат запроса:
{
"success": true,
"count": 2274, //Число поставок в выборке
"limit": 3000 //Максимальное кол-во поставок, которое может быть выгружено в эксель
}
Отрицательный результат запроса:
Пример ошибки
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}