Импорт/экспорт

Импорт и экспорт номенклатуры, заказов, итд

/api/lite/import/upload

Загрузка файла номенклатуры  (/api/lite/import/upload)

POST /api/lite/import/upload

/api/lite/import/upload

Используется заголовок запроса Content-type: multipart/form-data.

В качестве параметров запроса передается:

После успешной загрузки, возвращается идентификатор загруженного файла, 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
}
"orderType" -  отбор по типу заказа. Если не передан, то возвращаются все типы.
"orderSubType" - Отбор по подтипу заказа. У обычных заказов он null.  Отбор моно проводить как по совокупности (тип + подтип), так и по отдельности (тип или подтип). Если тип и подтип не заданы, возвращаются все заказы в заданном промежутке дат (fromDate, toDate). Если задан orderSubType == "KAK2C_SUBSCRIPTION", название и количество колонок xls документа может изменится, для отображения данных по подпискам.
Для экспорта обычных заказов, orderType должен быть передан "STANDARD", а orderSubType можно не передавать, либо передать null.
Для экспорта подписок, "orderSubType": "KAK2C_SUBSCRIPTION", а "orderType": "CUSTOM".

Положительный результат запроса: 

Пример
{
    "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:

Если тип оплаты 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

Параметр 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
}
"orderType" -  отбор по типу заказа. Если не передан, то возвращаются все типы.
"orderSubType" - Отбор по подтипу заказа. У обычных заказов он null.  Отбор моно проводить как по совокупности (тип + подтип), так и по отдельности (тип или подтип). Если тип и подтип не заданы, возвращаются все заказы в заданном промежутке дат (fromDate, toDate). Если задан orderSubType == "KAK2C_SUBSCRIPTION", название и количество колонок xls документа может изменится, для отображения данных по подпискам.
Для экспорта обычных заказов, orderType должен быть передан "STANDARD", а orderSubType можно не передавать, либо передать null.
Для экспорта подписок, "orderSubType": "KAK2C_SUBSCRIPTION", а "orderType": "CUSTOM".

Положительный результат запроса: 

Пример
{
    "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": "текст ошибки"
    }
  ]
}