Описание метода

  1. Метод позволяет получить токен, использующийся для работы в системе,
  2. Для получения токена необходимо использовать пользователя Личного Кабинета,
  3. Создать пользователя возможно через интерфейс ЛК,
  4. Один и тот же пользователь может использоваться и для работы в UI, и для работы через API, но рекомендуется использовать для этих целей различными пользователями,
  5. Сессия живет 24 часа, все сессии меньше 24 часов удаляются, а если клиент в эти 24 часа обращается сессия обновит срок.

Запрос

POST api/login

Параметр Передается в Пример
username Body testapi@testapi.com
password Body testapi@testapi.com

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

curl --location --request POST 'https://lk-dev.sweetclub.ru/api/login' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=testapi@testapi.com' \
--data-urlencode 'password=testapi@testapi.com'

Ответ

Параметр Пример Комментарий
api_token 808bb056ebd9aecddfc83de71g Данный токен необходим для работы других методов API

Формат позитивного ответа:

{
    "api_token": "808bb056ebd9aecddfc83de71g"
}

Формат негативного ответа:

{
    "error": "Такой логин и/или пароль не существует!"
}

Назначение метода

Получение информации о проведенных продажах. Ни один параметр не обязателен. По умолчанию (без применения параметров) отдает 20 последних продаж.

Запрос

GET api/sale/list

Параметр Передается в Значение Пример Комментарий
Authorization Header token Bearer 0bce3a11199ff67bd636ec446e Используется для авторизации
sale_status Params [0, 1, all] all "1" -- только активные продажи,
"0" -- только отмененные продажи,
"all" -- все продажи (значение по умолчанию)
sort Params Str s.id Параметр используется в комбинации с параметром "order" и отражает, по какому полю будет идти сортировка. В настоящий момент поддерживается сортировка по полям:

- "s.id" -- ID продажи (в системе порядковая сквозная нумерация, данное значение используется по умолчанию)
- "s.total" -- сумма продажи,
- ".s.commission_total" -- сумма комиссии,
- "s.date_added" -- дата добавления записи.
order Params [ASC, DESC] ASC Параметр используется в комбинации с параметром "sort". По умолчанию "DESC".
limit Params Int 100 Максимальный лимит = "1000". По умолчанию = "20".
page Params Int 2 Номер страницы выдачи. По умолчанию "1".
date_start Params \y\y\y\y-\m\m-\d\d 2021-03-01 Фильтр даты "от"
date_end Params \y\y\y\y-\m\m-\d\d 2021-03-31 Фильтр даты "до"

Пример минимального запроса:

curl --location --request GET 'https://lk-dev.sweetclub.ru/api/sale/list' \
--header 'Authorization: Bearer 0bce3a11199ff67bd636er446f' \
--header 'Content-Type: multipart/form-data'

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

curl --location --request GET 'https://lk-dev.sweetclub.ru/api/sale/list?sale_status=all&sort=s.id&order=ASC&limit=100&page=1' \
--header 'Authorization: Bearer 0bce3a11199ff67bd636er446f' \
--header 'Content-Type: multipart/form-data'

Ответ

Возвращается массив продаж с краткой информацией по каждой продаже.

Поле Значение Пример Комментарий
sale_id Str "47740" ID продажи, может применяться в других методах API
name Str "Barbie Безе 1шт"
commission_percent Int 20
commission_total Float 19.8
total Float 99
currency_code Str "RUB"
date_added "\d\d\d\d-\m\m-\d\d \h\h:\m\m:\s\s" "2021-04-01 18:57:36"
status [1, 0] 1 Статус продажи. 1 -- активная продажа, 0 -- возвращенная.

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

[
    {
        "sale_id": "47740",
        "name": "Barbie Безе 2шт",
        "commission_percent": 20,
        "commission_total": 80,
        "total": 400,
        "currency_code": "RUB",
        "date_added": "2021-04-01 18:57:36",
        "status": "0"
    },
    {
        "sale_id": "47739",
        "name": "Enchantimals Безе 1шт",
        "commission_percent": 20,
        "commission_total": 20,
        "total": 100,
        "currency_code": "RUB",
        "date_added": "2021-04-01 18:55:12",
        "status": "1"
    }
]

Описание метода

Метод отдает детальную информацию по конкретной продаже.

Запрос

GET api/sale/info

Параметр Передается в Пример Комментарий
Authorization Header Bearer 0bce3a11199ff67bd636ec446e
sale_id Params 47743 Номер продажи. Получить номер можно методами api/sale/list и api/sale/add

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

curl --location --request GET 'https://lk-dev.sweetclub.ru/api/sale/info?sale_id=47743' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--header 'Content-Type: multipart/form-data'

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

{
    "delivery": {
        "address": "1-й Колобовский переулок, 27/3 ст3",
        "delivery_date": "2021-04-02 00:00:00",
        "sale_id": "47744",
        "type": "Доставка",
        "type_id": "2",
        "date_added": "2021-04-02 12:48:39",
        "date_modified": "2021-04-02 12:48:39"
    },
    "sale_info": {
        "id": "47744",
        "internal_order": "31415926525897932384626",
        "client_id": "0",
        "delivery_id": null,
        "comment": "комментарий",
        "commission_percent": 20,
        "commission_total": 100,
        "currency_code": "RUB",
        "name": "АЛАДДИН худ. м/ф Торт на заказ 1шт",
        "total": 500,
        "status": "1",
        "sale_channel": "Выставка/Ярмарка",
        "sale_channel_id": "1",
        "production_date": "2021-03-30 00:00:00",
        "date_added": "2021-04-02 12:48:39",
        "date_modified": "2021-04-02 12:48:39",
        "products": [
            {
                "id": "115507",
                "name": "АЛАДДИН худ. м/ф",
                "licensor": "Disney",
                "licensor_id": "1",
                "brand": "АЛАДДИН худ. м/ф",
                "brand_id": "2",
                "unit": "шт",
                "unit_id": "1",
                "type": "Торт на заказ",
                "type_id": "1",
                "quantity": "1.0000 шт",
                "production_date": "2021-03-30 00:00:00",
                "price": 500,
                "total": 500
            }
        ]
    }
}

Расшифровка ответа:

Поле Пример значения Комментарий
delivery Объект с информацией о доставке (Она может быть задана при продаже)
delivery.address 1-й Колобовский переулок, 27/3 ст3
delivery.delivery_date 2021-04-02 00:00:00
delivery.sale_id 47744
delivery.type Доставка
delivery.type_id 2
delivery.date_added 2021-04-02 12:01:58
delivery.date_modified 2021-04-02 12:01:58
sale_info Детали продажи
sale_info.id 47743 ID продажи в Системе SweetClub
sale_info.internal_order 31415926525897932384626 Номер, использующийся в системе учета производителя
sale_info.client_id 0
sale_info.delivery_id null
sale_info.comment комментарий
sale_info.commission_percent 20
sale_info.commission_total 100 Итоговая сумма комиссии по данной продаже. Может содержать копейки
sale_info.currency_code RUB
sale_info.name АЛАДДИН худ. м/ф Торт на заказ 1шт
sale_info.total 500 Итоговая сумма продажи
sale_info.status 1 Статус продажи (1 = активна, 0 = отменена)
sale_info.sale_channel Выставка/Ярмарка
sale_info.sale_channel_id 1
sale_info.production_date 2021-03-30 00:00:00
sale_info.date_added 2021-04-02 12:01:58
sale_info.date_modified 2021-04-02 12:01:58
products Массив продуктов в данной продаже. Содержит минимум один объект
sale_info.products.id 115506 ID продукта в Системе SweetClub
sale_info.[].products.name АЛАДДИН худ. м/ф
sale_info.[].products.licensor Disney
sale_info.[].products.licensor_id 1
sale_info.[].products.brand АЛАДДИН худ. м/ф
sale_info.[].products.brand_id 2
sale_info.[].products.unit шт
sale_info.[].products.unit_id 1
sale_info.[].products.type Торт на заказ
sale_info.[].products.type_id 1
sale_info.[].products.quantity 1.0000 шт Штуки и упаковки будут всегда целочисленными, весовой товар может быть дробным
sale_info.[].products.production_date 2021-03-30 00:00:00
sale_info.[].products.price 500 Стоимость 1 единицы или килограмма
sale_info.[].products.total 500 Итоговая стоимость данного товара

Описание метода

Метод регистрации продажи в Системе.

Запрос

POST api/sale/add

Параметр Передается в Пример Комментарий
Authorization token Bearer 0bce3a11199ff67bd636ec446e Передается в header
brand_id form 2 Доступные бренды, по которым можно производить продажи можно получить из метода api/brand/list
product_type form 1 Доступные для бренда варианты можно получить из метода api/brand/info, потом можно сохранить эти данные у себя, они меняются крайне редко
product_quantity form 1 Количество произведенной продукции (может быть float 0.7, но только для весового товара)
product_unit form 1 Шт = 1, Кг = 2, Набор = 3
product_in_unit form 10 Число продуктов в наборе (имеет смысл только если product_unit = 3)
product_price form 500 Стоимость 1 единицы продукта
sale_channel_id form 1 Канал продаж. Доступные для бренда варианты можно получить из метода api/brand/info, потом можно сохранить эти данные у себя, они меняются крайне редко
production_date form 2021-03-30 Дата производства
delivery_date form 2021-04-02 Дата доставки
not_production_date form 0 Если указать этот параметр, то дата производства будет равна 0, используется для товаров, где есть надпись "Дату производства смотри на упаковке".
internal_order form 31415926525897932384626 Внутренний номер, использующийся в учете товара производителем
comment form комментарий Комментарий
delivery_type_id form 2 Способ доставки: 1 = самовывоз, 2 = доставка
delivery_address form Москва, ул. Краснознаменская, 27/3 ст3 Адрес доставки

Пример минимального корректного запроса:

curl --location --request POST 'https://lk-dev.sweetclub.ru/api/sale/add' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--form 'brand_id="2"' \
--form 'product_type="1"' \
--form 'product_quantity="1"' \
--form 'product_unit="2"' \
--form 'product_price="500"' \
--form 'sale_channel_id="1"' \
--form 'production_date="2021-03-30"' \
--form 'delivery_date="2021-04-02"'

Пример запроса со всеми возможными полями:

curl --location --request POST 'https://lk-dev.sweetclub.ru/api/sale/add' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--form 'brand_id="2"' \
--form 'product_type="1"' \
--form 'product_quantity="1"' \
--form 'product_unit="2"' \
--form 'product_in_unit="1"' \
--form 'product_price="500"' \
--form 'sale_channel_id="1"' \
--form 'production_date="2021-03-30"' \
--form 'delivery_date="2021-04-02"' \
--form 'not_production_date="0"' \
--form 'internal_order="31415926525897932384626"' \
--form 'comment="комментарий"' \
--form 'delivery_type_id="2"' \
--form 'delivery_address="Москва, ул. Краснознаменская, 27/3 ст3"' \
--form 'delivery_at="2021-04-02"'

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

{
    "sales_id": [
        47744
    ],
    "success": "Заказ создан",
    "error": []
}

Расшифровка ответа:

Поле Пример значения Комментарий
sales_id [47744] Массив из ID созданных продаж

Описание метода

Метод получения списка активных брендов и их ID. Для получения детальной информации по бренду необходимо использовать метод api/brand/info. Бренды, отсутствующие на данный момент в ответе недоступны для проведения продажи.

Запрос

GET api/brand/list

Параметр Передается в Пример Комментарий
Authorization token Bearer 0bce3a11199ff67bd636ec446e Передается в header

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

curl --location --request GET 'https://lk-dev.sweetclub.ru/api/brand/list' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--header 'Content-Type: multipart/form-data'

Ответ

Поле Тип данных Пример Комментарий
brand_id 1 По данному ID можно будет применить запрос вида api/brand/info&brand_id=1. Сейчас используется числовой ID, но стоит воспринимать его как строку, т.к. возможно применение UUID или иного формата в будущем.
brand_name 101 ДАЛМАТИНЕЦ Человекочитаемое название

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

[
    {
        "brand_id": "1",
        "brand_name": "101 ДАЛМАТИНЕЦ"
    },
    {
        "brand_id": "2",
        "brand_name": "АЛАДДИН худ. м/ф"
    },
    {
        "brand_id": "3",
        "brand_name": "АЛИСА В ЗАЗЕРКАЛЬЕ фильм 2016г"
    },
    {
        "brand_id": "4",
        "brand_name": "АЛИСА В СТРАНЕ ЧУДЕС худ. м/ф"
    }
]

Описание метода

Метод выдает информацию по конкретному бренду, включая информацию, необходимую для проведения продажи.

Запрос

GET api/brand/info&brand_id=1

Параметр Передается в Пример Комментарий
Authorization token Bearer 0bce3a11199ff67bd636ec446e Передается в header

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

curl --location --request GET 'https://lk-dev.sweetclub.ru/api/brand/info?brand_id=1' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--header 'Content-Type: multipart/form-data'

Ответ

Поле Пример Комментарий
brand_id 1 ID соответсвует поисковому запросу
brand_name 101 ДАЛМАТИНЕЦ
licensor_name Disney
licensor_id 1
sale_channels Массив каналов продаж, доступных для данного бренда
sale_channels.sale_channel_id 1 ID канала продаж необходим для проведения продажи
sale_channels.name Выставка/Ярмарка
product_type Массив видов продукта, доступных для данного бренда
product_type.title Безе
product_type.value 4 ID типа продукта необходим для проведения продажи
product_type.units Массив единиц измерения, доступных для данного вида продукта
product_type.units.title шт
product_type.units.value 1 ID единицы измерения необходим для проведения продажи

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

[
    {
        "brand_id": "1",
        "brand_name": "101 ДАЛМАТИНЕЦ",
        "licensor_name": "Disney",
        "licensor_id": "1",
        "sale_channels": [
            {
                "sale_channel_id": "1",
                "name": "Выставка/Ярмарка"
            },
            {
                "sale_channel_id": "2",
                "name": "Детский/тематический парк"
            }
        ],
        "product_type": [
            {
                "title": "Безе",
                "value": "4",
                "units": [
                    {
                        "title": "шт",
                        "value": "1"
                    },
                    {
                        "title": "кг",
                        "value": "2"
                    },
                    {
                        "title": "набор",
                        "value": "3"
                    }
                ]
            },
            {
                "title": "Вафельная печать",
                "value": "15",
                "units": [
                    {
                        "title": "шт",
                        "value": "1"
                    }
                ]
            }
        ]
    }
]

Описание метода

Метод отдает массив возможных причин для возврата продукции. Список вариантов меняется крайне редко, поэтому можно воспользоваться методом один раз и сохранить ID причин возвратов себе как константы.

Запрос

GET api/refund/reasons

Параметр Передается в Пример Комментарий
Authorization token Bearer 0bce3a11199ff67bd636ec446e Передается в header

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

curl --location --request GET 'https://lk-dev.sweetclub.ru/api/refund/reasons' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--header 'Content-Type: multipart/form-data'

Ответ

Поле Тип данных Пример Комментарий
return_reasons.name Str Провел продажу два и более раз
return_reasons.return_reason_id Str 4 Используется в методе api/refund/add

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

{
    "return_reasons": [
        {
            "return_reason_id": "4",
            "name": " Провел продажу два и более раз"
        },
        {
            "return_reason_id": "2",
            "name": "Другое (укажите в комментарии)"
        },
        {
            "return_reason_id": "5",
            "name": "Клиент отказался от заказа"
        },
        {
            "return_reason_id": "3",
            "name": "Не правильно указаны данные"
        }
    ]
}

Описание метода

Метод возврата ранее проведенной продажи. После возврата продажа более не учитывается при выставлении счета за месяц.

Запрос

POST api/refund/add

Параметр Передается в Пример Комментарий
Authorization token Bearer 0bce3a11199ff67bd636ec446e Передается в header
sale_id Form 47749 Номер продажи, подлежащий возврату
return_reason_id Form 3 ID причины возврата. Полный список причин можно получить методом api/refund/reasons
comment Form Случайно ввела неверную цену Комментарий необязателен, но может быть рассмотрен нашими менеджерами для улучшения сервиса

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

curl --location --request POST 'https://lk-dev.sweetclub.ru/api/refund/add' \
--header 'Authorization: Bearer 3fa2dec643cbf182dd1e241e71' \
--form 'sale_id="47749"' \
--form 'return_reason_id="3"' \
--form 'comment="Случайно ввела неверную цену"'

Ответ

Поле Тип данных Пример Комментарий
error Object "sale_id": "Возврат не произведен. Не корректный sale_id" Возвращается в случае невозможности провести операцию
success Str Возврат произведен. Если вернулось поле, то этого уже достаточно для подтверждения успеха. Текст поля может отличаться от приведенного в примере.

Пример позитивного ответа:

{
    "success": "Возврат произведен."
}

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

{
    "error": {
        "sale_id": "Возврат не произведен. Не корректный sale_id"
    }
}