Rest API Данные по выбранным документам - datawizio/pythonAPI GitHub Wiki

Ресурс /olap-report/ POST

Данные по документам. С помощью ресурса /olap-report/ можно получить данные по выбранным документам ( чеки, остатки, заказы, получения от поставщиков, перемещение с магазина в магазин/склад, документы инвентаризации, оприходования/списания в результате инвентаризации), сгруппировать результат по дате, продуктам, магазинам (магазин отправителя, магазин получателя для документа перемещения с магазина в магазин/склад), брэндам, категориям, поставщикам и отфильтровать по дате и магазинам.

POST-параметры:

Название параметра Тип параметра Доступные значения Значение по умолчанию Описание Обязательный параметр
format строка "json", "api" "json" Формат ответа сервера Нет
documents строка "doc_type", "group_by", "agg" - Идентификатор документа, по которому выводить информацию Да
shops id или список id - Все магазины Идентификатор магазинов, по которым будет осуществляться выборка Нет
date_from datetime, строка {%Y-%m-%d} - Дата последней подгрузки клиента - 30 дней Начальная дата выборки Нет
date_to datetime, строка {%Y-%m-%d} - Дата последней подгрузки клиента Конечная дата выборки Нет
join булевый - False Объединение таблиц в одну Нет

Параметры поля documents:

Название параметра Тип параметра Доступные значения Значение по умолчанию Описание Обязательный параметр
group_by строка или список строк "date", "shop", "product", "product_name", "product_brand_id", "product_brand_name", "product_producer_name", "product_producer_id", "product_category_name", "product_category_id", "shop-cid" - Параметр по которому будут группироваться данные Да
agg "ключ" : "значение" "agg_column" : "agg_func" - Агрегатор данных Да
agg_column строка "qty (stock_qty и fact_qty для stocktaking)", "price (original_price для inventory)", "total_price (stock_total_price для inventory)", "margin_price_total(для receipts)" - Параметры "ключа" для агрегатора данных Да
agg_func строка "sum", "mean", "max", "min", "count" - Параметры "значения" для агрегатора данных Да

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

Название поля Тип поля Обязательно присутствует в ответе Описание
receipts список нет Документ по которому осуществлялась выборка
date строка нет Дата, за которую осуществилась выборка
receipts_qty число нет Количество чеков
receipts_price число нет -
receipts_margin_price_total строка нет Прибыль по чеках
shop число нет Идентификатор магазина, по которому осуществлялась выборка
receipt число нет Номер чека
receipts_total_price число нет Оборот категории
receipts_receipts_qty число нет -
receipts_original_price число нет -
product__name строка нет Имя товара
product__brand__name строка нет Имя брэнда
product число нет -
product__brand__id число нет ID брэнда
product__producer__id число нет ID производителя
product__producer__name строка нет Имя производителя
product__category__id число нет ID категории продукта
product__category__name строка нет Имя категории продукта
shop_cid число нет -
inventory список нет Документ по которому осуществлялась выборка
inventory_qty число нет Количество остатков
inventory_stock_total_price число нет Общая цена остатков
inventory_original_price число нет Собестоимость остатков
purchases список нет Документ по которому осуществлялась выборка
purchases_qty число нет Количество заказов
purchases_price число нет Цена заказа
purchases_total_price число нет -
receives список нет Документ по которому осуществлялась выборка
receives_qty число нет Количество поставок
receives_price число нет Стоимость поставки
receives_total_price число нет Общая стоимость поставок
relocates список нет Документ по которому осуществлялась выборка
shop_receiver строка нет Магазин в который переместили
relocates_qty число нет -
relocates_price число нет -
relocates_total_price число нет -
supplier_refunds список нет Документ по которому осуществлялась выборка
supplier_refunds_qty число нет Количество возвратов поставок
supplier_refunds_price число нет -
supplier_refunds_total_price число нет -
stocktaking список нет Документ по которому осуществлялась выборка
stocktaking_stock_qty число нет -
stocktaking_fact_qty число нет -
incoming список нет Документ по которому осуществлялась выборка
incoming_qty число нет -
incoming_price число нет -
incoming_total_price число нет -
losses список нет Документ по которому осуществлялась выборка
losses_qty число нет -
losses_price число нет -
losses_total-price число нет -

Структура объекта /olap_report/ :

{
    documents: {
      "doc_type": {
        "group_by": ["group_by_column", ..],
          "agg": {
            "agg_column": "agg_func",
            ...,
          },
      ...
    }
}

Пример работы с ресурсом

Команда: POST https://api.datawiz.io/api/v1/olap-report/

Суффиксы ( аналог параметра format ) :
  • .json - получить ответ с сервера в формате JSON
  • .api - получить ответ с сервера в формате HTML (тестовая платформа)
Пример POST-параметров :
{
  "receipts": {
    "group_by": ["date"],
    "agg": {
      "qty": "sum",
      "price": "sum",
      "total_price": "sum",
      "profit": "sum"
    }
  },
  "shops": [1,2,3],
  "date_from": "2018-03-23",
  "date_to": "2018-03-25"
}
Ответ сервера:

HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: POST, OPTIONS
{
    "results": {
        "receipts": [
            {
                "date": "2018-03-25",
                "receipts_qty": 11438.692,
                "receipts_price": 274991.0998,
                "receipts_total_price": 200185.3836
            },
            {
                "date": "2018-03-23",
                "receipts_qty": 13341.864,
                "receipts_price": 334983.9234,
                "receipts_total_price": 239404.1748
            },
            {
                "date": "2018-03-24",
                "receipts_qty": 13530.844,
                "receipts_price": 335788.225,
                "receipts_total_price": 257349.3462
            }
        ]
    }
}
⚠️ **GitHub.com Fallback** ⚠️