Описание методов (old)

Описание методов (old)

Запрос данных аккаунта (публичный)

/api/lite/pub/account_info

Документация обновляется.

 

Получение информации по предзаказу (публичный)

 /api/lite/pub/order

Документация обновляется.

 

Создание / обновление товарного предложения

/api/lite/offer

создает или обновляет (если задан sku.humanID) товарное предложение

 

Запрос:

{
     "sku": {    
                "id": "12345",  - опциональный параметр, только для обновления существующего предложения. значение генерируется при создании предложения.           
                "shortName": "краткое наименование",
                "fullName": "полное наименование",
                "article": "234234",
                "description": "описание"
            },  
     "price": 33.45,  
     "discountPrice": 20,
     "weight": 357,  - единица измерения: грамм
     "dimensions":{
                "height":12,  - единица измерения: сантиметр
                "width":20,  - единица измерения: сантиметр
                "depth":8  - единица измерения: сантиметр
                },
     "enabled":true,
     "pos": 123.456            
}
В ответ возвращается

Успех:

{
"success": true,

"humanId": "12345"

}

 

Ошибка: 

/api/lite/offer/pos

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Обновление позиции товарного предложения

/api/lite/offer/pos

Обновляет значение позиции для сортировки предложений в списке 

 

Запрос:

{
  "id": "1002",
  "pos": 123.456
}

 

 

Ответ:

{
  "success": true
}

 

Создание картинки к товарному предложению

/api/lite/offer/image

Загружает на сервер картинку и привязывает изображение к товару.

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

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

На стороне сервера:

В ответ возвращается информация о загруженной картинке:

 

Успех:

{
  "success": true,
  "image": {
    "orig": "https://img.kak2c.ru/g/d/123abc.jpg",
    "crop": "https://img.kak2c.ru/g/d/123abc_crop.jpg",
    "prev": "https://img.kak2c.ru/g/d/123abc_p.jpg",
    "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
    "pos": 123.456,
    "crop_p": [
      10,
      500,
      400,
      150
    ]
  }
}

Параметры:

 

Ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Загрузка картинки без привязки к предложению

 /api/lite/image

Загружает на сервер картинку в исходных размерах без сжатия.

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

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

На стороне сервера:

В ответ возвращается информация о загруженной картинке:

 

Успех:

{
  "success": true,
  "orig": "https://img.kak2c.ru/g/d/123abc.jpg"
}

Параметры:

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Обновление кропа картинки к товарному предложению

/api/lite/offer/image/crop

Обновляет параметры кропа (обрезки) у картинки товарного предложения.

 

Запрос:

{
  "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
  "crop_p": [
    10,
    500,
    400,
    150
  ]
}

 

В ответ возвращается результат операции, id обновленной картинки и новый url на кропнутое изображение и превью.

 

Пример успешного ответа:

{
  "success": true,
  "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
  "crop": "https://img.kak2c.ru/g/d/123abc_cropped.jpg",
  "prev": "https://img.kak2c.ru/g/d/123abc_preview.jpg"
}

 

 

В случае ошибки:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "Картинки с указанным id не существует"
    }
  ]
}

 

Удаление картинки у товарного предложения

/api/lite/offer/image

Для удаления метки, выполняется следующий POST запрос с указанием идентификатора картинки.

 

Пример запроса:

{  
   "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF" 
}

 

В ответ возвращается результат операции и id удаленной картинки.

 

Пример успешного ответа:

{
  "success": true,
  "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF"
}

 

В случае ошибки:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "Картинки с указанным id не существует"
    }
  ]
}

 

Обновление позиции картинки

/api/lite/offer/image/pos

Обновляет значение позиции для сортировки картинок в списке 

 

Запрос:

{
  "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
  "pos": 123.456
}


Ответ:

{
  "success": true
}

 

В случае ошибки:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Создание/обновление заказа

/api/lite/order

Создает новый заказ в системе Кактус или обновляет существующий.

Доставка выгружается как позиция в items (id = "delivery").

Цены позиций задаются в запросе.

 

Пример запроса:

{
    "order": {
        "comment": "",
        "confirmStatus": "NEED_CONFIRM",
        "paymentStatus": "NOT_PAID",
        "paymentMethodCode": "online",
        "totalOrderSum": 1212,
        "delivery": {
            "receiver": {
                "name": "Олег",
                "surname": "Коробов",
                "patronymic": "",
                "phone": "9153112255",
                "alternativePhone": "",
                "email": "korobov.oleg@gmail.com"
            },
            "deliveryCode": "courier",
            "timeFrom": "10:30",
            "timeTo": "20:00",
            "desiredDeliveryDate": "2018-10-18",
            "deliveryComment": "",
            "address": {
                "regionFias":"18133adf-90c2-438e-88c4-62c41656de70",
                "areaFias":"b502ae45-897e-4b6f-9776-6ff49740b537",
                "cityFias":"",
                "settlementFias":"",
                "country": "RU",
                "region": "Москва",
                "area": "",
                "city": "Москва",
                "settlement": "",
                "street": "Боровское ш.",
                "house": "20",
                "block": "",
                "building": "",
                "flat": "120",
                "fullAddress": "",
                "zip": ""
            },
            "pickupPointId": ""
        },
        "items": [
            {
                "num":1,
                "id": "48488",
                "quantity": 1,
                "price": 1212
            }
        ]
    }
}

 

В ответ возвращается

успех:

{
"success": true,

"orderId": "12345"

}

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Заказ → обновление контактной информации получателя

/api/lite/order/receiver

Возможность обновить только контактную информацию

 

Запрос:

{
     "orderId": "1234", 
     "name": "Олег",
     "surname": "Коробов",
     "patronymic": "",
     "phone": "9153112255",
     "alternativePhone": "",
     "email": "korobov.oleg@gmail.com"
            
}

 

В ответ возвращается

успех:

{
"success": true

}

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Заказ → обновление товарной части

/api/lite/order/items

Возможность обновить только табличную часть заказа

Необходимо в запросе передать новое желаемое состояние табличной части в виде непустого перечня позиций

 

Запрос:

{
    "orderId": "1234",  
    "items": [
            {
                "num":1,
                "id": "48488",
                "quantity": 1,
                "price": 1212
            }
        ]
            
}

 

В ответ возвращается

успех:

{
"success": true

}

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Заказ → отменить

 /api/lite/order/cancelled

Производит отмену заказа. 

 

Пример запроса 

{ 
"orderId":"1029" 
}

 

В ответ возвращается

успех:

{
"success": true

}

 

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Заказ → пометить оплаченным получателем

/api/lite/order/payment

Ставит статус оплаты покупателем.

 

Пример запроса 

{ 
"orderId":"1029" 
}

 

В ответ возвращается

успех:

{
"success": true

}

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Заказ → снять пометку оплаты заказа получателем

/api/lite/order/payment

Снимает статус оплаты покупателем.

 

Пример запроса 

{ 
"orderId":"1029" 
}

 

 

В ответ возвращается

успех:

{
"success": true
}

 

 

ошибка: 

{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}

 

Пример ошибки:

Документация обновляется.

Заказ → получить акт приема передачи

/api/lite/order/takeout_list

Получение печатной формы в pdf для указанного списка заказов

Печатная форма возвращается в формате base64.

 

Пример ошибки:

{
  "orders": ["1001", "1002", "1003"]
}

 

Успех:

{
  "success": true,  
  "content" : "base64data"
     
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "Текст ошибки"
    }
  ]
}

 

Оплатить доставку заказа/заказов

 /api/lite/order_delivery_payment

Производит списание средств за доставку указанных заказов. 

После успешного списания - создает заявку на сбор курьером на указанную дату. Если заявка уже есть - новая не создается. Если на указанную дату заявку оформить уже нельзя (опоздал) - автоматом создается заявка на ближайшую возможную дату.

{
  "orders": ["1005", "1008"],
  "date": "2018-01-01", - обязательные для всех способов отгрузки кроме Своих курьеров
  "timeFrom": "09:00", - см выше
  "timeTo": "14:00", - см выше
  "courierId": "aa23s" - обязательный только для способа отгрузки Свои курьеры  
}

 

Успех:

Возвращается дата и интервал запрошенного приезда курьера.

{
  "success": true,
  "date": "2018-01-01",
  "timeFrom": "09:00",
  "timeTo": "14:00"
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Отменить оплату доставки заказа/заказов

/api/lite/order_delivery_payment

Пока не реализуем этот метод.

Вариант:

Производит отмену списания с баланса доставки указанных заказов, если по ним не было статусов от GD по сбору. Если какие то статусы по заказу поступали от GD - значит они уже забрали груз - тогда все заказы данного реестра отгрузки автоматом помечаются отгруженными и вернуть сумму по ним нельзя. 

 

Оформить вызов курьера

/api/lite/courier_call

Создает заявку на сбор курьером на указанную дату. Если заявка уже есть - возвращает ошибку, что заявка уже есть.

 

Пример ошибки:

{
  "date": "2018-01-01",
  "timeFrom": "09:00",
  "timeTo": "14:00"
}

 

Успех:

{
  "success": true
}

 

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Отменить вызов курьера

/api/lite/courier_call

Отменяет заявку на вызов курьера, если заявка на эту дату и интервал есть. если заявки нет - возвращает ошибку.

Пример ошибки:

{
  "date": "2018-01-01",
  "timeFrom": "09:00",
  "timeTo": "14:00"
}

 

Успех:

{
  "success": true
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Получить список транзакций

/api/lite/transaction

Получение списка транзакций баланса аккаунта.

 

Пример ошибки:

{
  "transactions":[
        {
            "date": "2019-03-01 17:53:23.538",
            "sum": 1500.50,
            "documentId": "1003",
            "documentType": "PAYMENT",
            "description": "Пополнение баланса по счету", // из справочника         
            "orderId": null
        },
        {
            "date": "2019-03-02 19:57:23.538",
            "sum": -265.57,
            "documentId": "1050",
            "documentType": "ORDER_PAYMENT_DOC_FACT",
            "description": "Оплата доставки заказа 1024 (доставка)", // в скобках - справочник статей расхода: доставка, страховка, наложенный платеж           
            "orderId": "1024"
        }
    ]
}

 

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Получить список транзакций по заказу

 /api/lite/order/transaction

Получение списка транзакций баланса оплаты доставки и услуг указанного заказа

запрос должен содержать параметр orderId с номером заказа, например

?orderId=1020

 

Результат запроса:

{
  "transactions":[  
        {
            "date": "2019-03-02 19:57:23.538",
            "sum": -265.57,
            "documentId": "1050",
            "documentType": "ORDER_EXPENSE_PAYMENT_DOC",
            "description": "Списание по расходам на оплату услуг заказа 1020 (доставка)",
            "orderId": "1020"
        },  
        {
            "date": "2019-03-02 19:57:23.538",
            "sum": 265.57,
            "documentId": "1052",
            "documentType": "ORDER_PAYMENT_DOC_FACT",
            "description": "Оплата доставки заказа 1020 (доставка)",            
            "orderId": "1020"
        }
         
    ]
}

 

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Создать счет на оплату и получить информацию для оплаты

/api/lite/payment

 

Запрос:

{
    "sum" : "222"
}

 

Ответ:

{
    "success": true,
    "errors": [],
    "redirectData": {
        "data": {
            "entries": [
                {
                    "num": 0,
                    "name": "MERCHANT",
                    "value": "kaktwocr"
                },
                {
                    "num": 1,
                    "name": "ORDER_REF",
                    "value": "25567175-8d84-e371-90fa-8a6e86a69aa4"
                },
                {
                    "num": 2,
                    "name": "ORDER_DATE",
                    "value": "2019-03-11 17:09:35"
                },
                {
                    "num": 3,
                    "name": "ORDER_PNAME[]",
                    "value": "Пополнение баланса аккаунта №6419855"
                },
                {
                    "num": 4,
                    "name": "ORDER_PCODE[]",
                    "value": "balance"
                },
                {
                    "num": 5,
                    "name": "ORDER_PRICE[]",
                    "value": "222.00"
                },
                {
                    "num": 6,
                    "name": "ORDER_QTY[]",
                    "value": "1"
                },
                {
                    "num": 7,
                    "name": "ORDER_VAT[]",
                    "value": "0"
                },
                {
                    "num": 8,
                    "name": "PRICES_CURRENCY",
                    "value": "RUB"
                },
                {
                    "num": 9,
                    "name": "DESTINATION_CITY",
                    "value": ""
                },
                {
                    "num": 10,
                    "name": "DESTINATION_STATE",
                    "value": ""
                },
                {
                    "num": 11,
                    "name": "DESTINATION_COUNTRY",
                    "value": ""
                },
                {
                    "num": 12,
                    "name": "PAY_METHOD",
                    "value": "CCVISAMC"
                },
                {
                    "num": 13,
                    "name": "ORDER_PRICE_TYPE[]",
                    "value": "GROSS"
                },
                {
                    "num": 14,
                    "name": "ORDER_HASH",
                    "value": "6fe466d056fcc82836a861c322070381"
                },
                {
                    "num": 15,
                    "name": "BILL_FNAME",
                    "value": "Петр"
                },
                {
                    "num": 16,
                    "name": "BILL_LNAME",
                    "value": "Петров"
                },
                {
                    "num": 17,
                    "name": "BILL_EMAIL",
                    "value": "abc3@abc.ru"
                },
                {
                    "num": 18,
                    "name": "BILL_PHONE",
                    "value": "111111"
                },
                {
                    "num": 19,
                    "name": "BILL_COUNTRYCODE",
                    "value": "RU"
                },
                {
                    "num": 20,
                    "name": "BACK_REF",
                    "value": ""
                },
                {
                    "num": 21,
                    "name": "LANGUAGE",
                    "value": "RU"
                },
                {
                    "num": 22,
                    "name": "CURRENCY",
                    "value": "RUB"
                }
            ],
            "url": "https://sandbox.payu.ru/order/lu.php"
        },
        "paymentProvider": "PAYU"
    }
}

 

Для работы в песочнице PayU использовать карты из https://secure.payu.ru/docs/integration-sandbox/ru/

 

Пример формы, которую нужно сгенерировать на клиенте:

<html>
    <head></head>
    <body>
        <form name="example" method="POST" action="https://sandbox.payu.ru/order/lu.php">
            <input type="hidden" name="MERCHANT" value="kaktwocr">
            <input type="hidden" name="ORDER_REF" value="25567175-8d84-e371-90fa-8a6e86a69aa4">
            <input type="hidden" name="ORDER_DATE" value="2019-03-11 17:09:35">
            <input type="hidden" name="ORDER_PNAME[]" value="Пополнение баланса аккаунта №6419855">
            <input type="hidden" name="ORDER_PCODE[]" value="balance">
            <input type="hidden" name="ORDER_PRICE[]" value="222.00">
            <input type="hidden" name="ORDER_QTY[]" value="1">
            <input type="hidden" name="ORDER_VAT[]" value="0">
            <input type="hidden" name="PRICES_CURRENCY" value="RUB">
            <input type="hidden" name="DESTINATION_CITY" value="">
            <input type="hidden" name="DESTINATION_STATE" value="">
            <input type="hidden" name="DESTINATION_COUNTRY" value="">
            <input type="hidden" name="PAY_METHOD" value="CCVISAMC">
            <input type="hidden" name="ORDER_PRICE_TYPE[]" value="GROSS">
            <input type="hidden" name="ORDER_HASH" value="6fe466d056fcc82836a861c322070381">
            <input type="hidden" name="BILL_FNAME" value="Петр">
            <input type="hidden" name="BILL_LNAME" value="Петров">
            <input type="hidden" name="BILL_EMAIL" value="abc3@abc.ru">
            <input type="hidden" name="BILL_PHONE" value="111111">
            <input type="hidden" name="BILL_COUNTRYCODE" value="RU">
            <input type="hidden" name="BACK_REF" value="">
            <input type="hidden" name="LANGUAGE" value="RU">
            <input type="hidden" name="CURRENCY" value="RUB">
            <button type="submit">Оплатить</button>
        </form>
    </body>
</html>

 

Получить список своих курьеров

/api/lite/own_courier

Получение списка своих курьеров.

Пример ошибки:

{
  "couriers":[
        {
            "id": "123456abc",
            "fullName": "Василий",
            "phone": "+7(901)1122121"
        },
        {
            "id": "123457abc",
            "fullName": "Петр",
            "phone": "+7(901)1122122"
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Создать/обновить своего курьера

/api/lite/own_courier

Создание или обновление (если задан id) своего курьера

Пример запроса:

{
  "id": "123456abc",
  "fullName": "Василий",
  "phone": "+7(901)1122121"
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Удаление курьера

/api/lite/own_courier

Для удаления курьера, выполняется следующий POST запрос с указанием идентификатора курьера.

 

Пример запроса:

{  
   "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF" 
}


В ответ возвращается результат операции

Пример успешного ответа:

{
  "success": true 
}

В случае ошибки:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "курьера с указанным id не существует"
    }
  ]
}

 

Заказ - отметить доставку

/api/lite/delivery_result

Для доставки своими курьерами - простановка результата доставки: доставлен/отказ/утеря.

Пример запроса:

{
  "orderId": "123456abc",
  "result": "DELIVERED", //LOST,RETURNING,RETURNED
  "comment": "abcd"
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Ответ:

Документация обновляется.

 

Пример ошибки:

Документация обновляется.

 

Записать данные собственного аккаунта Робокасса

/api/lite/settings/payment/robokassa

Записать данные аккаунта робокасса для прямого зачисления оплат заказов покупателей.

 

Пример запроса:

{
  "merchantId": "abcd",
  "accountSecret": "abcd",
  "accountSecret2": "abcd"
}

 

Результат запроса:

{
  "success":true,
  "accountId": "abcd",
  "resultUrl": "abcd",  - основной адрес приема ipn уведомлений (только оплаченные)
  "failUrl": "abcd", - адрес приема ipn уведомлений (только неоплаченные/отказ покупателя)
  "successesUrl": "abcd"  - адрес редиректа в магазин после оплаты  
}

 

Ошибка:

Документация обновляется.

 

Получить макет витрины(публичный)

 /api/lite/pub/settings/template

Получение макета витрины магазина аккаунта, в формате, предназначенном для ui витрины

 

Результат запроса:

{
  "templates" : [
        {
            "id": "123456",
            "isDefault": true,
            "htmlContent": "<html>...."
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Получить макеты витрин

/api/lite/settings/template

Получение перечня макетов витрин магазинов аккаунта, в формате, предназначенном для ui конструктора витрины

Для получения одного макета по id - использовать параметр в url вида ?id=123456

 

Результат запроса:

{
  "templates" : [
        {
            "id": "123456",
            "isDefault": true,
            "content": "contentData...."
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

 

Создать/обновить макет витрины

/api/lite/settings/template

Создание/обновление данных о макете витрины в формате для ui конструтора

 

Пример запроса:

{       
        "id": "123456",  // при наличии параметра - обновляет существующий макет по его id
        "isDefault": true,
        "content": "contentData....",
        "htmlContent": "html content Data"
}

 

Результат запроса:

{
        "success": true,
        "id": "123456"
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Удалить макет витрины

/api/lite/settings/template

Удаление одного макета. Использовать параметр в url вида     ?id=123456

 

Результат запроса:

{
   "success": true
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Получить общие макеты витрин

/api/lite/settings/template/general

Получение перечня стандартных макетов витрин магазинов в формате, предназначенном для ui конструктора витрины

Для получения одного макета по id - использовать параметр в url вида     ?id=123456

 

Результат запроса:

{
  "templates" : [
        {
            "id": "123456",
            "isDefault": true,
            "content": "contentData...."
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Получить общие шаблоны блоков витрин

/api/lite/settings/template/block

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

Для получения одного блока по id - использовать параметр в url вида     ?id=123456

 

Результат запроса:

{
    "blocks": [
        {
            "id": "f4173840-f409-424d-a000-24542b391c5d",
            "name": "block name",
            "content": "contentData...."
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Получить заявки на сбор

/api/lite/gather

Получение списка заявок на сбор, сортировка - свежие по полю date - сначала

 

Результат запроса: 

{
    "gathers": [
        {
            "success": true,
            "comment": null,
            "id": "1000-GD",
            "date": "2019-03-07 12:37:18",          
            "desiredDate": "2019-03-15",
            "desiredHourStart": "09:00",
            "desiredHourEnd": "14:00",
            "status": "AWAITING_CARGO",   //CREATED,CARGO_SHIPPED,HOLD,CANCELED
            "trackingNumber": "100039439"
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

 

Получить варианты курьерских пакетов

/api/lite/pub/courier_pack

Получение списка доступных типов курьерских пакетов с размерами 

 

Результат запроса:

{
    "courier_packs": [
        {
            "success": true,
            "type": "PACKET", // PAPERBOX
            "sizeType": "S",  // M/L
            "cargoWeight": 1500,  // максимальный вес содержимого в граммах           
            "dimensions": {
                "height": 12,
                "width": 20,
                "depth": 8
            }
        }
    ]
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

 

Создать пользователя для Expert

 /api/lite/settings/go-expert

Метод только для админов системы. Генерирует для аккаунта Lite нового пользователя чтобы под ним можно было рабоатть в интерфейсе Expert.

Логин равен логину исходного аккаунта (тенанта) + суффикс "-expert", например: manager@shop.ru-expert

Пароль равен паролю исходного аккаунта. При смене пароля исходного пользователя - expert логин останется с прошлым паролем.

Параметр URL:     ?с=123    - проверочный код.

 

Результат запроса:

{
      "success": true
}

 

Ошибка:

{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "текст ошибки"
    }
  ]
}

/api/lite/pub/settings/catalog

Получение текущего основного каталога

/api/lite/pub/settings/catalog

 

Пример успешного ответа:

{
  "success": true,
  "name": "Каталог 1",
  "code": "1000",
  "items": [
    {
    "title": "Смартфоны iPhone",
    "code": null,
    "collectionId": "1026",
    "defaultImage": "https://items.s1.citilink.ru/811882_v03_s.jpg",
    "items": null
    }
]
}

Методы API для системы "Кактус"

api/lite/courier_callЧасть методов представлена из "надстройки" – Кактус Лайт (/api/lite/*), часть методов относится к работе подсказок (/api/prompter/*), а часть к работе механизма по доставкам.

Необходимо во всех вызовах, содержащих /pub, /dlv, /prompter, кроме регистрации и авторизации, (например /api/lite/pub/order) указывать имя текущего домена в заголовках запроса (Header) в параметре Domain. Если в вызове нет /pub, /dlv, /prompter -  (например /api/lite/offer) - то нужно указывать токен доступа, полученный в методе регистрации/авторизации.

 

Запрос Метод Авторизация Описание Разработано Комментарии для бэкенда
Создание нового аккаунта Кактус Lite POST /api/lite/pub/register нет public  
Запрос на сброс пароля Кактус Lite POST /api/lite/pub/password_reset нет public  
Сброс пароля POST /api/lite/pub/password_reset_confirm нет

 

public, защита по временному токену сброса пароля

 

 
Методы для автоподсказок по вводу адресов

Подсказка населенного пункта

GET /api/prompter/location нет По переданной части населенного пункта, возвращает варианты возможных населенных пунктов  
Подсказка полного адреса GET /api/prompter/address нет По переданной части адреса, возвращает варианты адресов  
Методы для работы CMS составляющий Кактус Лайт
Запрос данных аккаунта
(публичный)
GET /api/lite/pub/account_info

нет

По указанному имени домена получает информацию об аккаунте - только данные для публичного использования. Например, настройки виджета.

Также используется для проверки домена на доступность.

 

для проверки доступности домена и его присвоения есть отдельный метод:

/api/lite/settings/domainAlias - работает по токену доступа

 

-публичные настройки виджета: порог бесплатной доставки

2

Получение информации по заказу GET /api/lite/pub/order нет По указанному домену и номеру заказа, возвращает текущее состояние заказа и публичную информацию

-по новой dto заказа

?требуется маппинг инфостатусов заказа и статусов lite

6

Получение информации по предзаказу GET /api/lite/pub/preorder нет Получает информацию по предзаказу (метод доступен только если заказ еще в состоянии предзаказа)  

-по новой dto заказа

2

Проверка адреса сбора на возможность обслуживания GET /api/lite/pub/check_pickup_location нет

По указанному населенному пункту (код по базе ФИАС), возвращает возможность указание данного адреса как точки сбора.

в кактусе - нетенантная таблица с фиас кодами доступных городов сбора и опциональными часами сбора

залить данные от gd

 

8

Список товарных предложений/предложение GET /api/lite/pub/offer нет

Возвращает список товаров + цены + фото

-добавить фото

 

 

 

1

Создание заказа для виджета POST /api/lite/pub/order нет Для указанного домена, возможность оформить заказ из виджета обычному покупателю

-по новой dto

4

Методы для административного интерфейса Кактус Лайт
Авторизация POST /api/lite/auth

Создает новую пользовательскую сессию, получая токен.

С данным токеном возможно последующее обращение к API.

 
Запрос данных аккаунта
(админский)
GET /api/lite/account_info session token

Возвращает сведения о текущем аккаунте – имя аккаунта, баланс, настройки и т.п.

 
Информация о датах приезда курьера GET /api/lite/pickup_dates session token

Возвращает информацию о датах приезда курьера за указанный период.

 

 

-в кактусе из настроек заявок на сбор выбираются ближайшие доступные дни. с учетом города сбора и доступного времени сбора - стоит скопировать реализацию настроек в части календаря в нетенантую область чтобы можно было разом для всех учетных записей лайта править

 

часы сбора и географию брать в той же таблице как в методе /api/lite/pub/check_pickup_location

5

Перечень уведомлений для пользователя GET /api/lite/notifications session token Возвращает информацию об уведомлениях для пользователя. Либо по с фильтрацией по последним (с глубиной выборки), либо по определенному ID сообщения.  

отложили

Сводка по аккаунту GET /api/lite/brief_report session token

Возвращает срез отчетности по аккаунту.

Например, информация о заказах (общая).

  -рефакторинг в отдельный сервис имеющихся методов отчетов DevApiController:

reportGetOrderCount, reportGetOrderMeanBill, reportGetOrderSum

-вызов этих методов из апи лайта

8

Запрос списка заказов / определенного заказа

GET /api/lite/order session token

Возвращает информацию о списке заказов, или о конкретном заказе. Возможно задавать фильтрацию, а также требуемый набор полей.

-по новой dto или ее расширенной версии для админа магазина

-фильтрация по статусам, меткам, строке(номер заказа, телефон покупателя, фио покупателя)

-набор полей, задаваемый в запросе пока не делаем

4

Сохранение настроек точки сбора POST /api/lite/settings/pickup session token

Сохраняет информацию об адресе и контактах для сбора заказов

 
Проверка доступности домена 3 уровня GET /api/lite/settings/domainAlias session token Проверка свободного желаемого домена 3 уровня  
Обновление домена 3 уровня POST /api/lite/settings/domainAlias session token Обновление текущего домена 3 уровня (помимо автосозданного)  
Сохранение настроек уведомлений POST /api/lite/settings/user_notification session token

Сохраняет настройки уведомлений пользователя о событиях

  отложили
Запрос настроек виджета чекаута GET /api/lite/settings/checkout   Выводит настройки виджета чекаута  
Сохранение настроек работы виджета чекаута POST /api/lite/settings/checkout session token

Сохраняет настройки виджета чекаута

-добавить тенантую сущность настроек виджета с указанными полями

 

 

 

 

 

2

Список товарных предложений/предложение GET /api/lite/offer session token

Возвращает список товаров + цены + фото

 
Создание / обновление товарного предложения POST /api/lite/offer session token

Обновление полей товара, цен, веса, отображения в каталоге

 

 

 

 

 

 

 

 

3

Создание/удаление картинки к товару

POST /api/lite/offer/image

DELETE /api/lite/offer/image

session token создание картинки к товару с ресайзом / удаление указанной картинки

-интеграция с хранилищем картинок + ресайз картинок

 

8

Обновление параметров кропа картинки к товару POST /api/lite/offer/image/crop session token Обновляет параметры кропа (обрезки) картинки  
Создание/редактирование/удаление метки

POST /api/lite/tag

DELETE /api/lite/tag

session token Редактирование меток для заказов

 

4

Получение списка меток GET /api/lite/tag session token Получить все созданные метки заказов 1
Создание заказа POST /api/lite/order session token

Возможность создать новый заказ.

Также, возможность создать заказ в статусе “Предзаказ”, когда только указана табличная часть, а все остальное должен заполнить покупатель

-если полный заказ: копия метода публичного создания заказа

-если предзаказ: не проверять данные заказа не относящиеся к табличной части в OrderDocManager (по наличию домена определить что учетка - лайт и не проверять)

 

3

Заказ → обновление контактной информации получателя

POST /api/lite/order/receiver session token

Имя, телефон, email

 

-используется новая dto заказа

-обрабатывается только та ее часть которая относится к указанным данным: в заказе не обновлются никакие иные поля

 

2

Заказ → обновление товарной части POST /api/lite/order/items session token Обновить только товарную часть заказа  

-аналогично

2

Заказ → упаковать POST /api/lite/order/packing session token Помечает заказ упакованным

-вызывается быстрая упаковка в одно место

4

Заказ → распаковать DELETE /api/lite/order/packing session token Удаляет упаковку заказа

-распроводит все имеющиеся упакованные места

2

Заказ → пометить оплаченным получателем POST /api/lite/order/payment session token Помечает заказ полностью оплаченным

-ставит статус PAID в заказе

1

Заказ → снять пометку оплаты заказа получателем DELETE /api/lite/order/payment session token

Удаляет оплату заказа

(warning)имеется ввиду отметка об оплате заказа со стороны покупателя (расчеты между покупателем и пользователем системы), не путать с оплатой доставки заказа (расчеты между пользователем системы и Кактус Лайт) - для этого есть отдельный метод.

-ставит статус PAID в заказе

0

Заказ → установить метку на заказе POST /api/lite/order/tag session token Устанавливает метку на заказ 2
Заказ → снять метку с заказа DELETE /api/lite/order/tag session token Снимает метку с заказа 2
Заказ → получить инвойс + стикер к заказу GET /api/lite/order/invoice_and_stiker session token Получает инвойс для заказа (также содержит стикер)

-dlv - сделать слепленную ПФ (инвойс + стикер), добавить в enum запроса ПФ

-кактус: вызывать при упаковке места ПФ с указанным enum

-по вызову данного метода апи - возвращение base64 с данными ПФ

3

Оплатить доставку заказа/заказов POST /api/lite/order_delivery_payment session token

Блокирует средства с баланса для указанного перечня заказов.

 

-реализовать регистр баланса аккаунта (16)

-документ оплаты со статусами подготовлен (средства блокируются) и оплачен (средства списаны)

?требуется описание схемы работы

Отменить оплату доставки заказа/заказов DELETE /api/lite/order_delivery_payment session token Отменяет оплату заказа   ?требуется описание схемы работы
Оформить вызов курьера POST /api/lite/courier_call session token Создает в системе заявку на вызов курьера   - не делаем. заявка на вызов курьера автоматом делается при успешной оплате доставки указанных заказов в методе order_delivery_payment
Отменить вызов курьера DELETE /api/lite/courier_call session token Удаляет заявку на вызов курьера  

-удаляет по humanId

2

Получить список транзакций GET /api/lite/transaction session token С фильтрацией по дате, номеру заказу (или номеру трекинга)   ?требуется описание схемы работы
Создать счет на оплату и получить информацию для оплаты POST /api/lite/payment session token

Создает новый счет к оплате на указанную сумму, затем возвращает данные для последующей оплаты (PayU)

  ?требуется описание схемы работы
Методы для работы с доставкой (в большей степени требуются для работы чекаута)
Получить тарифы и способы доставки для указанного населенного пункта GET /api/dlv/tariffs нет с фильтрацией по городу (guid ФИАС) - запрос тарифа от точки сбора до указанной точки

-добавить fias код в сущность адреса

-авторизация по домену

-добавить проксирование в кактусе с возможностью на лету

в тарифы добавить процентную и фиксированную часть из настроек виджета данного клиента

4

Получить список пунктов выдачи заказов GET /api/dlv/delivery_points нет

с фильтрацией по городу (guid ФИАС) / по курьерской службе, получает доступный список пунктов выдачи заказов.

Возможно запрашивать краткий и полный списки, с фильтрацией по ID пункта выдачи.

-авторизация по домену

-прокси до dlv по методу запроса постаматов и фильтром по городу (фиас), коду постамата

4

 

/api/lite/pub/order

Получение информации по заказу (публичный)

/api/lite/pub/order

Метод получает информацию о заказе, доступную покупателю. например по ссылке из email

Обязательный параметр: query - содержащий номер (id) заказа.

например, ?id=FF6Z-000017

 

Результат запроса

Найденный заказ, по форамату аналогичный методу добавления заказа (POST /api/lite/pub/order)

{
    "orders": [
        {
            "success": true,
            "comment": "",
            "id": "FF6Z-000017",
            "date": "2019-06-25 16:48:36",
            "updateTs": "2019-06-25 16:48:44.180",
            "confirmStatus": "APPROVED",
            "paymentStatus": "NOT_PAID",
            "status": "NEW",
            "paymentMethodCode": "no-cod",
            "trackingNumber": null,
            "customData": null,
            "totalOrderSum": 3715,
            "delivery": {
                "deliveryCode": "GLOBAL_DELIVERY",
                "timeFrom": "09:00",
                "timeTo": "20:00",
                "desiredDeliveryDate": null,
                "deliveryComment": "",
                "pickupPointId": "",
                "address": {
                    "country": "Россия",
                    "countryCode": "RU",
                    "region": "Москва",
                    "area": null,
                    "city": "Москва",
                    "settlement": null,
                    "street": "",
                    "house": "",
                    "block": "",
                    "building": "",
                    "flat": "",
                    "fullAddress": "Москва",
                    "fullCity": null,
                    "rawData": null,
                    "zip": "",
                    "regionFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                    "areaFias": null,
                    "cityFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                    "settlementFias": null
                },
                "receiver": {
                    "name": "Тест4",
                    "surname": "",
                    "patronymic": "",
                    "phone": "9151321211",
                    "alternativePhone": "",
                    "email": ""
                },
                "type": "COURIER",
                "courier": "Global Delivery",
                "trackingLink": "https://global-delivery.ru/monitoring/",
                "logoUrl": "https://app.kak2c.ru/VAADIN/themes/valo-oms/img/logos/delivery-resized/global_delivery.png"
            },
            "items": [
                {
                    "num": 1,
                    "id": "1001",
                    "quantity": 8,
                    "price": 237,
                    "name": "Lavazza Passionale",
                    "img": "https://img.kak2c.ru/i/c/H/lQS7nFGe_c.png?1561052854",
                    "variants": null
                },
                {
                    "num": 2,
                    "id": "1002",
                    "quantity": 5,
                    "price": 289,
                    "name": "Lavazza Bio Organic",
                    "img": "https://img.kak2c.ru/i/C/f/jhqOneIC_c.png?1561052854",
                    "variants": null
                },
                {
                    "num": 3,
                    "id": "delivery",
                    "quantity": 1,
                    "price": 374,
                    "name": "Доставка",
                    "img": null,
                    "variants": null
                }
            ],
            "tags": [],
            "packings": null,
            "expenses": null,
            "needCustomerPayment": false,
            "customerPaymentInProcess": false,
            "promocode": "testpercent",
            "promocodeAppliedDiscount": 1169,
            "c": "29726802-015c-3c2b-14d2-9f84e1a8be9a"
        }
    ]
}

 

Копия /api/lite/file/image

Закачка картинки в облако

/api/lite/file/image

Закачка картинки в облако и получение url

Одновременно выполняет ресайз картинки в несколько разрешений, аналогично методу POST /api/lite/products/image


Принимает файл в виде multipart запроса в параметре upfile.

Хедер - только Authorization


Пример из Postman:

image-1592078071688.png

Пример ответа:

{
    "success": true,
    "url": "https://storage.yandexcloud.net/images-k2c/66ac26ec-08b2-4d4a-ae22-44c182847984.jpg",
    "id": "66ac26ec-08b2-4d4a-ae22-44c182847984.jpg"
}