NAV Navbar
Logo poster
PHP

Введение

На платформе Poster вы можете создавать любые приложения, например:

Возможности платформы

Как начать работу

Если вы пишете приложение только для себя или знакомитесь с платформой, используйте токен “Личная интеграция” в вашем аккаунте в разделе Доступ → Интеграции.

Если вы пишете приложение для клиентов Poster вам нужно создать Poster app. Poster app — это профиль приложения в постер. От его имени вы будете работать с системой и сможете опубликовать и продавать в ваше приложение в нашем каталоге.

Как создать приложение

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

  1. Краткое описание и цель приложения
  2. Какие возможности платформы вы будете использовать. Работа с API, приложение на POS терминале или в админ. панели.
  3. Название аккаунта в котором вы будете тестировать. Если аккаунта нет, создайте его.

После модерации мы добавим ваше приложение в систему и выдадим секретные данные:

Авторизация в API

Для авторизация приложений используется протокол OAuth2. В результате авторизации приложение получает access_token, с которым будет делать запросы к API.

Шаг 1

Перейти из приложения на сайт Poster по адресу:

https://joinposter.com/api/auth?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code

Если вы уже знаете логин аккаунта используйте:

https://{account}.joinposter.com/api/auth?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code

Параметр Значение
client_id ID приложения в системе Poster
redirect_uri Адрес приложения, куда возвращаться из системы Poster после первого шага авторизации. Данный адрес должен точно совпадать с тем, что указан в настройках приложения в системе Poster.
response_type Строка со значением code

Шаг 2

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

После подтверждения о передачи данных пользователь будет перенаправлен обратно в приложение по адресу: redirect_uri?code=code&account=account

Параметр Значение
code 32 символьный код, использующийся для идентификации приложения на последнем шаге авторизации,
account логин заведения в системе Poster, который необходимо использовать для отправки всех последющих запросов к API Poster.

Шаг 3

Пример ответа при успешной авторизации

{
    "access_token": "95811300988791ea5f20b5f82876b134",
    "user": {
        "id": "123",
        "name": "Сергей"
     }
}

Последний этап авторизации — получение access_token. Для этого приложение должно отправить POST-запрос по следующему адресу: https://{account}.joinposter.com/api/auth/access_token

Где account — это логин заведения в системе Poster, полученный от Poster во время обратного редиректа.

POST параметры запроса /api/auth/access_token

Параметр Значение
client_id Id приложения в системе Poster
client_secret Секретный код приложения выданные при регистрации
grant_type Строка со значенем — authorization_code
redirect_uri Адрес на который пользователь будет перенаправлен после авторизации. Данный адрес должен точно совпадать с тем, что указан в настройках приложения в системе Poster.
code 32 символьный код который вы получили на 2м шаге авторизации

Параметры ответа на запрос

Параметр Значение
access_token Заветный токен который открывает доступ к API
user Объект с информацией о пользователе

Отправка запросов

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

<?php
function sendRequest($url, $type = 'get', $params = [], $json = false)
{
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

  if ($type == 'post' || $type == 'put') {
    curl_setopt($ch, CURLOPT_POST, true);

    if ($json) {
      $params = json_encode($params);

      curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Content-Length: ' . strlen($params)
      ]);

      curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    } else {
      curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
    }
  }

  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Poster (http://joinposter.com)');

  $data = curl_exec($ch);
  curl_close($ch);

  return $data;
}

$url = 'https://api-demo.joinposter.com/api/clients.getGroup' 
    . '?format=json'
    . '&token=4164553abf6a031302898da7800b59fb'
    . '&group_id=1';

$group = sendRequest($url);

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

{
  "response":{
    "client_groups_id":"1",
    "client_groups_name":"Постоянный посетитель",
    "loyalty_type":"1",
    "client_groups_discount":"10",
    "birthday_bonus":"5000",
    "count_groups_clients":"125"
  }
}

Обмен данных с Poster происходит с помощью GET или POST https-запросов.

Общий формат адреса для всех https-запросов

https://{account}.joinposter.com/api/{method}?format={format}&token={token}&param1=val1&param2=val2

Параметры адреса для всех https-запросов

Параметр Описание
account Логин аккаунта в Poster
method Название метода API, например, clients.getGroups
format Формат выдачи ответа: xml или json
token Токен, что выдан приложению системой Poster, для идентификации всех отправляемых запросов
param, val Имена и значения параметров

Ответ приходит в указанном формате и содержит объект верхнего уровня error либо response. Объект error уточняется параметрами code и message. Например:

“error”: {“code”: 11, “message”: “Bad access token”}

Со списком всех ошибок вы можете ознакомиться в тут.

Отправка групповых запросов

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

<?
$url = 'https://api-demo.joinposter.com/api/batch.send' 
  . '?format=json'
  . '&token=745d516e1b9320ed85b84d5bfda14148';

$methods = [
  'data' => [
    [
        'url' => 'finance.getTaxes'
    ],
    [
        'url' => 'clients.getGroup?group_id=1'
    ],
    [
        'url' => 'clients.createGroup',
        'params' => [
            'client_groups_name'        => 'Постоянный посетитель',
            'loyalty_type'              => 1,
            'client_groups_discount'    => 10,
            'birthday_bonus'            => 50.00
        ],
    ],
  ],
];

$results = sendRequest($url, 'post', $methods, true);

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

[
  {
    "url":"finance.getTaxes",
    "method":"get",
    "params":{
    },
    "result":{
      "response":[
        {
          "tax_id":"2",
          "country":"ua",
          "tax_name":"НДС",
          "tax_value":"18",
          "type":"1",
          "fixed":"0",
          "fiscal":"1",
          "fiscal_program":"0",
          "delete":"0"
        },
        {
          "tax_id":"3",
          "country":"ua",
          "tax_name":"Без налога",
          "tax_value":"0",
          "type":"1",
          "fixed":"0",
          "fiscal":"0",
          "fiscal_program":"0",
          "delete":"0"
        }
      ]
    }
  },
  {
    "url":"clients.getGroup?group_id=1",
    "method":"get",
    "params":{
    },
    "result":{
      "response":{
        "client_groups_id":"1",
        "client_groups_name":"Постоянный посетитель",
        "client_groups_discount":"0",
        "loyalty_type":"1",
        "birthday_bonus":"0",
        "count_groups_clients":"139"
      }
    }
  },
  {
    "url":"clients.createGroup",
    "method":"post",
    "params":{
      "client_groups_name":"Постоянный посетитель",
      "loyalty_type":"1",
      "client_groups_discount":"10",
      "birthday_bonus":"50"
    },
    "result":{
      "response":7
    }
  }
]

В случае, если необходимо подряд отправить несколько запросов на получение или изменение данных, рекомендуем воспользоваться POST-запросом batch.send. Он принимает в качестве параметров json-строку, как тело POST-запроса.

HTTP запрос

POST https://{account}.joinposter.com/api/batch.send

GET-параметры запроса batch.send

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен

POST-параметры запроса batch.send

Запрос состоит из массива data, который в свою очередь содержит следующие параметры:

Параметр Описание
url Название api-метода, например, finance.getTaxes. А также, если необходимо, get-параметры запроса, но без обязательных для обычных запросов параметров format и token.
params Опциональный список параметров для осуществление вызова api-метода через POST-запрос

Если для конкретного api-метода список параметров params будет отсутствовать, то он будет вызван с помощью GET-запроса. Если params указать, то будет отправлен POST-запрос.

Параметры ответа batch.send

Ответ группового запроса также является массивом, где каждый элемент содержит следующие параметры:

Параметр Описание
url Название вызванного api-метода
method HTTP-метод, который использовался при вызове: get или post
params Список post-параметров, что отправлялся при вызове api-метода
result Ответ сервера для вызванного api-метода

Вебхуки

Пример обработки вебхука:

<?php
    // client_secret вашего приложения
    $secretKey = 'fe2bc8e865d8fc2236968ee53c3b2bd5'; 
    // приводим к нужному формату входные данные 
    $postJSON = file_get_contents('php://input');
    $postData = json_decode($postJSON, TRUE);

    $verify_original = $postData['verify'];
    unset($postData['verify']);

    $verify = [
        $postData['account'], 
        $postData['object'], 
        $postData['object_id'], 
        $postData['action']                
    ];
    // если есть дополнительные параметры
    if (isset($postData['data'])) {
        $verify[] = $postData['data'];
    }
    $verify[] = $postData['time'];
    $verify[] = $secretKey;

    // создаем строку для верификации запроса клиентом
    $verify = md5(implode(';', $verify));
    // проверяем валидность данных 
    if ($verify != $verify_original) {
        exit;
    }
    // Если не ответить на запрос Poster продолжит слать Webhook
    echo json_encode(array('status' => 'accept'));

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

Описание входящих параметров:

Параметр Описание
object Тип сущности
object_id Первичный ключ объекта
action Действие выполненное над объектом: added – добавлен, changed — измененен, removed — удален, transformed — трансформация (например, техкарты в товар и наоборот)

Мы присылаем изменения по следующим типам сущностей:

Сущность Описание
product Товар
dish Тех. карта
prepack Полуфабрикат
ingredient Ингредиент
workshop Цех
category Категория товара или тех. карты
ingredients_category Категория ингредиента
stock Состояние товара или ингредиента на складе
client Клиент
clients_group Группа клиента
promotion Акция
promotion_accumulation Сумма акций
promotion_prize Приз акции
incoming_order Онлайн-заказ

Для разных сущностей доступны разные события:

stock: Состояние товара или ингредиента на складе

Доступно событие — changed

Объект дополнительных данных data имеет здесь соответствующую структуру:

Параметр Описание
type Тип, принимает значение: 1 — полноценный ингредиент, 2 — товар, 3 — модификатор, 4 — производимая техкарта, 5 — производимый полуфабрикат
element_id Первичный ключ объекта
storage_id Первичный ключ объекта склада
Value_relative Изменение количества позиции на складе
value_absolute Конечное значение количества позиции на складе

incoming_order: Онлайн-заказ

Доступно событие: changed. Событие срабатывает при изменении статуса заказа с “новый” на “применен” или “отклонен”.

Авторизация в админ. панели

Пример verify

<?php
$poster_client_id = 1;
$poster_client_secret = "as1dl823koa2sd0123mda3sdj7m12dda9s1d";

$data = [
    'client_id'     => $poster_client_id, 
    'client_secret' => $poster_client_secret, 
    'code'          => $code,
];
$data['verify'] = md5(implode(':', $data));

Ответ при успешной обработке запроса:

{
  "user_id": 1, 
  "account_name": "vladimir", 
  "currently_payed": "1", 
  "mask": "123", 
  "type": "123"
}

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

{
  "error":34,
  "message":"Поле client_id обов'язкове для заповнення", 
  "field": "client_id"
}
{
  "error":143,
  "message":"Requested code's application doesn't exist", 
  "field":"client_id"
}
{
  "error":142,
  "message":"Verify code is not correct", 
  "field": "verify"
}

Для добавления приложения в админ. панель, оно должно быть зарегистрировано в системе Poster. Кроме обычных параметров которые есть у любого приложения, указывается адрес страницы веб-приложения, который будет открываться в окне iframe, например, http://example.com/

Просле загрузки iframe, генерируется код авторизации и прибавляется к адресу страницы, например:

http://example.com/?code={code}

Чтобы получить информации об аккаунте необходимо отправить HTTP запрос:

POST https://joinposter.com/api/auth/manage

POST праметры запроса: /api/auth/manage

Параметр Описание
client_id Id приложения
code Код, используемый в при вызове зарегистрированного адреса
verify md5 из cконкатенированных client_id, client_secret и code, с разделителем в виде двоеточия

Параметры ответа: /api/auth/manage

Параметр Описание
user_id Id пользователя внутри аккаунта
account_name Строка с названием аккаунта
currently_payed Оплачен ли аккаунт: true — оплачен, false – нет
mask 123-битовая маска пользователя аккаунта
type Число — тип пользователя аккаунта

Список кодов ошибок

Ошибка Описание
34 Отсутствие обязательных полей
143 Не верный client_id
142 Неправильный verify

window.addEventListener(‘load’, function () { top.postMessage({hideSpinner: true}, ‘*’) }, false);

dash: Статистика

Методы для работы с разделом статистики. Все методы данного раздела начинаются с «dash».

dash.getAnalytics: Статистика по продажам

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

<?php

$url = 'https://api-demo.joinposter.com/api/dash.getAnalytics' 
    . '?format=json'
    . '&token=4164553abf6a031302898da7800b59fb'
    . '&dateFrom=20171009'
    . '&dateTo=20171012'
    . '&interpolate=week'
    . '&type=waiters';

$data = sendRequest($url);

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

{
  "response":{
    "data":[
      "169255.7100",
      "160327.7300",
      "48259.0100",
      "1470.0000"
    ],
    "data_hourly":[
      "36520.2400",
      "17785.4500",
      "19163.5600",
      "12688.5200",
      0,
      0,
      0,
      0,
      "13747.4500",
      "19465.3900",
      "8701.5900",
      "12727.5300",
      "12029.0000",
      "18482.3600",
      "18391.7200",
      "25149.2900",
      "23136.1600",
      "15255.1100",
      "14300.2800",
      "17448.0000",
      "28419.3000",
      "23969.5500",
      "19392.5800",
      "22539.3700"
    ],
    "data_weekday":[
      0,
      "169255.7100",
      "160327.7300",
      "48259.0100",
      "1470.0000",
      0,
      0
    ],
    "counters":{
      "revenue":"379312.4500",
      "profit":"315131.6900",
      "transactions":"248",
      "visitors":"744",
      "average_receipt":1535.6779352227,
      "average_time":"125.76268347"
    }
  }
}
<?php

$url = 'https://api-demo.joinposter.com/api/dash.getAnalytics'
    . '?format=json'
    . '&token=4164553abf6a031302898da7800b59fb'
    . '&dateFrom=20171009'
    . '&dateTo=20171012'
    . '&interpolate=week'
    . '&type=waiters';

$data = sendRequest($url);

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

{
  "response":[
    {
      "user_id":"2",
      "name":"Максим",
      "sum":"5248550",
      "profit":"4505024",
      "revenue":"5522290",
      "clients":"42",
      "middle_time":"1871214.0370"
    },
    {
      "user_id":"6",
      "name":"Антон",
      "sum":"5873540",
      "profit":"5187174",
      "revenue":"6234086",
      "clients":"42",
      "middle_time":"3.2910"
    }
  ]
}

Метод возвращает статистику по продажам

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getAnalytics

GET-параметры запроса dash.getAnalytics

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала периода в формате Ymd. Если не указана, будут выданы все продажи за последние 30 дней от dateTo.
dateTo Опциональный параметр, дата конца периода в формате Ymd. По умолчанию текущая дата.
interpolate Опциональный параметр, вывод по: дням — day, неделям — week, месяцам — month. По умолчанию day.
select Опциональный параметр, тип выборки: оборот — revenue, прибыть — profit, средний чек — average_receipt, кол-во чеков — transactions, кол-во клиентов — visitors, среднее время — average_time. По умолчанию revenue.
type Опциональный параметр, тип статистики: по официанту — waiters, цеху — workshop, категории — category, товару — products, заведению — spots, клиенту — clients. По умолчанию все.
id Опциональный параметр, Id сущности по которой вернется выборка, например: id официанта, цеха, категории, товара, заведения, клиенту. По умолчанию — все.
business_day Если true то статистика продаж будет возвращаться по тому бизнес дню, в который попадает dateFrom время. По умолчанию false.

В зависимости от значения параметра type предполагается разный формат ответа.

Параметры ответа dash.getAnalytics если type — waiters

Внутри параметра response лежит массив с объектами. Каждый объект содержит такие параметры:

Параметр Описание
user_id Id сотрудника
name Имя сотрудника
sum Сумма всех товаров по заказам для текущего официанта в гривнах
profit Суммарная выручка по счетам
revenue Сумма реальных оплат по счетам
clients Кол-во закрытых чеков
middle_time Среднее время обслуживания заказа

Параметры ответа dash.getAnalytics если type — clients

Внутри параметра response лежит массив с объектами. Каждый объект содержит такие параметры:

Параметр Описание
client_id Id клиента
firstname Имя клиента
lastname Фамилия клиента
sum Сумма всех товаров в каждом заказе в копейках
profit Суммарная выручка по счетам
revenue Сумма реальных оплат по счетам в копейках
payed_cash Сумма оплат наличными
payed_card Сумма оплат картой
payed_third_party Сумма оплат сторонними сервисами
clients Кол-во закрытых чеков
phone Телефон клиента
email Эл. почта

Параметры ответа dash.getAnalytics если type — workshop, category, products, spots

Внутри параметра response лежит объект с параметрами:

Параметр Описание
data Массив сумм продаж сгруппированных в зависимости от параметров interpolate и type
data_hourly Массив значений разбитых по по часам. Сумма в гривнах.
data_weekday Массив сумм продаж разбитых по дням недели. Сумма в гривнах.
counters Счетчики основных показателей за данный период. Сумма в гривнах.
transaction_id Номер транзакции.

Внутри параметра сounters лежит объект с параметрами:

Параметр Описание
revenue Выручка в гривнах
profit Прибыль в гривнах
transactions Кол-во чеков
visitors Кол-во гостей
average_receipt Средний чек в гривнах
average_time Среднее время закрытия чека в минутах

dash.getTransactions: Список транзакций

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getTransactions'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&dateFrom=20170905'
 . '&dateTo=20170908';

$data = sendRequest($url);

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

{
  "response":[
    {
      "transaction_id":"384960",
      "date_start":"1504641602936",
      "date_start_new":"1504641602941",
      "date_close":"1504641603008",
      "status":"2",
      "guests_count":"4",
      "discount":"0",
      "bonus":"0",
      "pay_type":"3",
      "payed_bonus":"0",
      "payed_card":"0",
      "payed_cash":"199140",
      "payed_sum":"199140",
      "payed_cert":"0",
      "tip_sum":"0",
      "sum":"180600",
      "spot_id":"1",
      "table_id":"90",
      "name":"Demo",
      "user_id":"1",
      "client_id":"0",
      "card_number":"0",
      "transaction_comment":null,
      "reason":"",
      "print_fiscal":"0",
      "total_profit":"172828",
      "table_name":"1",
      "client_firstname":null,
      "client_lastname":null,
      "date_close_date":"2017-09-05 23:00:03"
    },
    {
      "transaction_id":"384956",
      "date_start":"1504641601797",
      "date_start_new":"1504641601809",
      "date_close":"1504641601850",
      "status":"2",
      "guests_count":"5",
      "discount":"0",
      "bonus":"0",
      "pay_type":"3",
      "payed_bonus":"0",
      "payed_card":"0",
      "payed_cash":"117000",
      "payed_sum":"117000",
      "payed_cert":"0",
      "tip_sum":"0",
      "sum":"117000",
      "spot_id":"1",
      "table_id":"91",
      "name":"Максим",
      "user_id":"2",
      "client_id":"0",
      "card_number":"0",
      "transaction_comment":null,
      "reason":"",
      "print_fiscal":"0",
      "total_profit":"113487",
      "table_name":"2",
      "client_firstname":null,
      "client_lastname":null,
      "date_close_date":"2017-09-05 23:00:02"
    }
  ]
}

Метод возвращает список транзакций

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getTransactions

GET-параметры запроса dash.getTransactions

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.
type Тип статистики: waiters — по официанту, spots — заведению, clients — клиенту. При использовании обязательно указать id.
id Id сущности по которой получать статистику, если не указано будут выданы транзакции по всем типам статистики. При использовании обязательно указать type.
status Статус транзакции: 0 — все транзакции, 1 — только открытые, 2 — только закрытые, 3 — удаленные
include_products Признак включать товары в транзакциях в ответ, true — включать, false — нет
include_history Признак включить историю транзакции в ответ, true — включать, false — нет
next_tr id транзакции после которой нужно получить список транзакций
after_date_close Транзакции после даты закрытия в формате unixtimestamp
before_date_close Транзакции до даты закрытия в формате unixtimestamp
timezone Опциональный параметры, если равен client то дата возвращается в часовом поясе аккаунта.

Параметры ответа dash.getTransactions

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов, внутри каждого есть следующие параметры:

Параметр Описание
date_start Дата открытия заказа в формате unixtimestamp
date_close Дата закрытия заказа в формате unixtimestamp, 0 — если заказ еще открыт
status Статус заказа: 1 — открыт, 2 — закрыт, 3 — удален
guests_count Количество гостей
name Имя официанта
discount Скидка в процентах
bonus Начисленный бонус в процентах от payed_sum
pay_type Тип оплаты: 0 — закрыт без оплаты (причина в reason), 1 — оплата наличкой, 2 — оплата карточкой, 3 — смешанная оплата
payed_bonus Сумма уплаченная бонусами в копейках
payed_card Сумма уплаченная картой в копейках
payed_cash Сумма уплаченная наличкой в копейках
payed_sum Сумма уплаченная “живыми деньгами”, равна сумме payed_cash плюс payed_card
sum Общая сумма заказа, без скидок в копейках
spot_id Id заведения
table_id Id столика
user_id Id официанта
client_id Id клиента
transaction_comment Комментарий к чеку
reason Причина закрытия счета без оплаты: 1 — гость ушел, 2 — за счет заведения, 3 — ошибка официанта
print_fiscal Признак печатали ли фискальный чек: 1 — печатали, 0 — нет
total_profit Сумма прибыли
table_name Название столика
client_firstname Имя клиента
client_lastname Фамилия клиента
products Массив товаров в чеке
history История действий над чеком. Содержит массив из объектов, описание параметров объекта смотрите в методе dash.getTransactionHistory.

Внутри параметра products лежит массив объект, внутри каждого есть следующие параметры:

Параметр Описание
product_id id товара
modification_id id модификации
product_price Стоимость товара
num Количество товара в чеке
payed_sum Заплаченная сумма

dash.getTransactionProducts: Список продуктов по транзакции

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getTransactionProducts'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&transaction_id=388678';

$data = sendRequest($url);

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

{
  "response":[
    {
      "product_id":"908",
      "product_name":"Пицца сборная",
      "modification_id":"68",
      "modificator_name":"Сыр, Грибы, Ох. колбаски, Оливки, Средняя Ø35см",
      "modificator_barcode":"",
      "modificator_product_code":"",
      "weight_flag":"0",
      "num":"1",
      "time":"1507703516999",
      "workshop":"2",
      "barcode":"",
      "product_code":"",
      "tax_id":"4",
      "nodiscount":"1",
      "payed_sum":"45000",
      "product_sum":"45000",
      "discount":"0",
      "bonus_sum":"0",
      "client_id":"0",
      "promotion_id":"0",
      "cert_sum":"0",
      "product_cost":"43",
      "product_profit":"42707",
      "bonus_accrual":"0",
      "tax_value":"5",
      "tax_type":"2",
      "tax_fiscal":"1"
    },
    {
      "product_id":"169",
      "product_name":"Речная форель в фольге",
      "modification_id":"0",
      "modificator_name":null,
      "modificator_barcode":null,
      "modificator_product_code":null,
      "weight_flag":"0",
      "num":"1",
      "time":"1507703509384",
      "workshop":"2",
      "barcode":"",
      "product_code":"",
      "tax_id":"4",
      "nodiscount":"1",
      "payed_sum":"55000",
      "product_sum":"55000",
      "discount":"0",
      "bonus_sum":"0",
      "client_id":"0",
      "promotion_id":"0",
      "cert_sum":"0",
      "product_cost":"4340",
      "product_profit":"47910",
      "bonus_accrual":"0",
      "tax_value":"5",
      "tax_type":"2",
      "tax_fiscal":"1"
    },
    {
      "product_id":"168",
      "product_name":"Стейк из сёмги",
      "modification_id":"0",
      "modificator_name":null,
      "modificator_barcode":null,
      "modificator_product_code":null,
      "weight_flag":"0",
      "num":"1",
      "time":"1507703508927",
      "workshop":"2",
      "barcode":"",
      "product_code":"",
      "tax_id":"4",
      "nodiscount":"1",
      "payed_sum":"45000",
      "product_sum":"45000",
      "discount":"0",
      "bonus_sum":"0",
      "client_id":"0",
      "promotion_id":"0",
      "cert_sum":"0",
      "product_cost":"2213",
      "product_profit":"40537",
      "bonus_accrual":"0",
      "tax_value":"5",
      "tax_type":"2",
      "tax_fiscal":"1"
    }
  ]
}

Метод возврашает список продуктов по транзакции

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getTransactionProducts

GET-параметры запроса dash.getTransactionProducts

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
transaction_id Обязательный параметр, id транзакции (номер чека)

Параметры ответа dash.getTransactionProducts

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
product_id id товара
product_name Название товара
modification_id id модификатора. Если без модификатора то 0.
modificator_name Название модификатора
modificator_barcode Штрих-код модификатора
modificator_product_code SKU модификатора
num Количество товара в чеке
time Время последнего обновления количества товара в чеке, измеряется в миллисекундах
workshop id цеха
barcode Штрих-код товара
product_code SKU товара
tax_id id налога
fiscal Признак фискального чека: 1 — фискальный, 0 — нефискальный
nodiscount Признак распространяются ли скидки и бонусы на товар: 0 — да, 1 — нет
payed_sum Заплаченная сумма в копейках
product_sum Стоимость товара в копейках
discount Процент скидки примененный к чеку
bonus_sum Сумма бонуса в рублях\гривнах
client_id id клиента
promotion_id id акции
cert_sum Сумма уплаченная сертификатом
product_cost Себестоимость товара
product_profit Прибыль
bonus_accrual Начислено бонусов
tax_value Процент налога от суммы чека
tax_type Тип налога: 1 — НДС, 2 — с оборота
tax_fiscal Налог по фискальному регистратору

dash.getTransactionHistory: История транзакции

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getTransactionHistory'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&transaction_id=388678';

$data = sendRequest($url);

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

{
  "response":[
    {
      "transaction_id":"388678",
      "type_history":"print",
      "time":"1507703522429",
      "value":"1",
      "value2":"2147483647",
      "value3":"0",
      "value_text":null,
      "spot_tablet_id":"1"
    },
    {
      "transaction_id":"388678",
      "type_history":"close",
      "time":"1507703520358",
      "value":"3",
      "value2":"145000",
      "value3":"0",
      "value_text":"{\"payments\":{\"cash\":1450}}",
      "spot_tablet_id":"1"
    },
    {
      "transaction_id":"388678",
      "type_history":"additem",
      "time":"1507703508927",
      "value":"168",
      "value2":"0",
      "value3":"0",
      "value_text":"{\"price\":450}",
      "spot_tablet_id":"1"
    },
    {
      "transaction_id":"388678",
      "type_history":"open",
      "time":"1507703507594",
      "value":"1",
      "value2":"95",
      "value3":"3",
      "value_text":null,
      "spot_tablet_id":"1"
    }
  ]
}

Метод возвращает историю действий по транзакции

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getTransactionHistory

GET-параметры запроса dash.getTransactionHistory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
transaction_id Обязательный параметр, id транзакции (номер чека)

Параметры ответа dash.getTransactionHistory

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов, внутри каждого есть следующие параметры:

Параметр Описание
transaction_id Номер чека
type_history Действие совершенное над чеком, возможные значения описаны ниже
time Время действия в формате unixtimestamp
spot_tablet_id Id терминала
value_text Текстовое значение, соответствующее конкретному действию. Может содержать в том числе и json.
value, value2, value3 В зависимости от type_history означает следующее:

Значения параметров value, value2, value3 в зависимости type_history:

open — Открыт счет

comment — Добавлен комментарий

close — Напечатан чек и закрыт счет

delete — Чек удален

print — Напечатан чек

sendtokitchen — Отправлен бегунок на кухню

additem — Добавлен товар

settable — Перенос заказа на другой стол

changeitemcount — Изменено количество товара, если value2 — 0 то товар удален

deleteitem — Удален товар

setclient — Добавлен клиент

dash.getProductsSales: Продажи по товарам

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getProductsSales'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "product_name":"Стейк из сёмги",
      "modificator_name":null,
      "product_id":"168",
      "modification_id":"0",
      "delete":"0",
      "left":"43",
      "right":"44",
      "category_id":"33",
      "count":"171.0000",
      "weight_flag":"0",
      "payed_sum":"7650000",
      "product_sum":"7695000",
      "bonus_sum":"0",
      "cert_sum":"45000",
      "product_profit":"7199716",
      "tax_sum":"72000",
      "vat_sum":"0",
      "unit":"p",
      "discount":45000
    },
    {
      "product_name":"Речная форель в фольге",
      "modificator_name":null,
      "product_id":"169",
      "modification_id":"0",
      "delete":"0",
      "left":"43",
      "right":"44",
      "category_id":"33",
      "count":"168.0000",
      "weight_flag":"0",
      "payed_sum":"9185000",
      "product_sum":"9240000",
      "bonus_sum":"0",
      "cert_sum":"55000",
      "product_profit":"8367880",
      "tax_sum":"88000",
      "vat_sum":"0",
      "unit":"p",
      "discount":55000
    }
  ]
}

Метод возвращает продажи по товарам

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getProductsSales

GET-параметры запроса dash.getProductsSales

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
spot_id Опциональный параметр, Id заведения по которому возвращать статистику
date_from Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
date_to Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.

Параметры ответа dash.getProductsSales

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов. Внутри каждого объекта есть следующие параметры:

Параметр Описание
product_name Название товара
product_id id товара
modification_id id модификатора, 0 если товар без модификатора
modification_name Название модификатора, null если товар без модификатора
category_id Id категории товара
left Id категории слева
right Id категории справа
price Стоимость товара
count Количество проданого товара
weight_flag Признак весового товара, 0 — не весовой, 1 — если весовой
payed_sum Сумма уплаченная “живыми деньгами c учетом скидки”, равна payed_cash + payed_card
product_sum Цена в копейках
product_profit Прибыль в копейках
discount Сумма скидка в копейках
delete Признак удален ли товар: 0 — не удален, 1 — удален

dash.getCategoriesSales: Продажи по категориям

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getCategoriesSales'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&dateFrom=20170920'
 . '&dateTo=20170922';

$data = sendRequest($url);

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

{
  "response":[
    {
      "revenue":"38568300",
      "profit":"36307114",
      "count":"1173",
      "category_name":"Вторые блюда",
      "category_id":"33"
    },
    {
      "revenue":"36970440",
      "profit":"21885184",
      "count":"863",
      "category_name":"Главный экран",
      "category_id":0
    },
    {
      "revenue":"34474000",
      "profit":"31377831",
      "count":"830",
      "category_name":"Салаты",
      "category_id":"31"
    },
    {
      "revenue":"33876200",
      "profit":"31379225",
      "count":"905",
      "category_name":"Торты",
      "category_id":"37"
    },
    {
      "revenue":"22781920",
      "profit":"18568329",
      "count":"1173",
      "category_name":"Кофе",
      "category_id":"10"
    }
  ]
}

Метод возвращает продажи по категориям

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getCategoriesSales

GET-параметры запроса dash.getCategoriesSales

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Дата начала для выборки в формате Ymd. Если не указана, начальная дата считается на месяц позже.
dateTo Дата конца для выборки в формате Ymd. Если не указана, конечная дата считается текущей.
spot_id id заведения, если не указана, будут выданы по всем заведениям

Параметры ответа dash.getCategoriesSales

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов. Внутри каждого объекта есть следующие параметры:

Параметр Описание
revenue Сумма выручка в копейках
profit Сумма прибыль в копейках
count Количество продаж
category_name Название категории
category_id id категории

dash.getClientsSales: Продажи по клиентам

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getClientsSales'
  . '?token=4164553abf6a031302898da7800b59fb'
  . '&dateFrom=20170920'
  . '&dateTo=20170922';

$data = sendRequest($url);

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

{
  "response":[
    {
      "client_id":"4",
      "firstname":"",
      "lastname":"Владислав",
      "sum":"1030000",
      "profit":"825364",
      "revenue":"907000",
      "clients":"3",
      "middle_invoice":3433.3333333333
    }
  ]
}

Метод возвращает продажи по клиентам

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getClientsSales

GET-параметры запроса dash.getClientsSales

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Дата начала для выборки в формате Ymd. Если не указана, начальная дата считается на месяц позже.
dateTo Дата конца для выборки в формате Ymd. Если не указана, конечная дата считается текущей.
interpolate Вывод по часам, дням, неделям, месяцам. Если не указана, по дням

Параметры ответа dash.getClientsSales

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов. Внутри каждого объекта есть следующие параметры:

Параметр Описание
client_id id клиента
firstname Имя клиента
lastname Фамилия клиента
sum Общая сумма заказов в копейках
profit Прибыль в копейках
revenue Сумма выручки в копейках
clients Количество чеков
middle_invoice Сумма среднего чека в рублях\гривнах

dash.getWaitersSales: Продажи по официантам

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getWaitersSales'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&dateFrom=20170901';

$data = sendRequest($url);

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

{
  "response":[
    {
      "user_id":"1",
      "name":"Demo",
      "profit":"153707331",
      "revenue":"186224294",
      "clients":"1414",
      "middle_time":49364.020916667,
      "middle_invoice":1317.0034936351
    },
    {
      "user_id":"2",
      "name":"Максим",
      "profit":"147406757",
      "revenue":"179108697",
      "clients":"1314",
      "middle_time":58078.986483333,
      "middle_invoice":1363.0798858447
    },
    {
      "user_id":"6",
      "name":"Антон",
      "profit":"155127873",
      "revenue":"188413623",
      "clients":"1424",
      "middle_time":1.8170166666667,
      "middle_invoice":1323.129375
    }
  ]
}

Метод возвращет продажи по официантам

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getWaitersSales

GET-параметры запроса dash.getWaitersSales

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включает указанный день. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включает указанный день. По умолчанию дата текущего дня.

Параметры ответа dash.getWaitersSales

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

user_id | id официанта name | Имя официанта revenue | Сумма выручки в копейках profit | Прибыль в копейках clients | Количество закрытых чеков middle_invoice | Средний чек в гривнах\рублях middle_time | Общее время, потраченное на обслуживание в минутах

dash.getSpotsSales: Продажи по заведениям

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getSpotsSales'
  . '?token=4164553abf6a031302898da7800b59fb'
  . '&dateFrom=20170905'
  . '&dateTo=20170908';

$data = sendRequest($url);

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

{
  "response":{
    "revenue":536723.37,
    "profit":448025.64,
    "clients":423,
    "middle_invoice":1268.8495744681
  }
}

Метод возвращает продажи по заведениям

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getSpotsSales

GET-параметры запроса dash.getSpotsSales

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.
spot_id Опциональный параметр, id заведения по которому возвращать статистику. Если не указан, будут выданы по всем заведениям.

Параметры ответа dash.getSpotsSales

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
profit Прибыль в копейках
revenue Сумма выручки в копейках
clients Количество чеков
middle_invoice Сумма среднего чека в рублях\гривнах

dash.getTransactionWriteOffs: Списания по чеку

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getTransactionWriteoffs'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&transaction_id=388678';

$data = sendRequest($url);

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

{
  "response":[
    {
      "write_off_id":"1518199",
      "tr_product_id":"2125168",
      "storage_id":"1",
      "ingredient_id":"833",
      "product_id":"168",
      "modificator_id":"0",
      "prepack_id":"0",
      "weight":"1.00000",
      "unit":"p",
      "cost":22.13,
      "time":"1507703520358"
    },
    {
      "write_off_id":"1518200",
      "tr_product_id":"2125169",
      "storage_id":"1",
      "ingredient_id":"85",
      "product_id":"169",
      "modificator_id":"0",
      "prepack_id":"0",
      "weight":0.04,
      "unit":"l",
      "cost":1.24,
      "time":"1507703520358"
    },
    {
      "write_off_id":"1518201",
      "tr_product_id":"2125169",
      "storage_id":"1",
      "ingredient_id":"78",
      "product_id":"169",
      "modificator_id":"0",
      "prepack_id":"0",
      "weight":0.059,
      "unit":"kg",
      "cost":2.12,
      "time":"1507703520358"
    },
    {
      "write_off_id":"1518202",
      "tr_product_id":"2125169",
      "storage_id":"1",
      "ingredient_id":"84",
      "product_id":"169",
      "modificator_id":"0",
      "prepack_id":"0",
      "weight":0.128,
      "unit":"kg",
      "cost":2.68,
      "time":"1507703520358"
    },
    {
      "write_off_id":"1518203",
      "tr_product_id":"2125169",
      "storage_id":"1",
      "ingredient_id":"86",
      "product_id":"169",
      "modificator_id":"0",
      "prepack_id":"0",
      "weight":0.608,
      "unit":"kg",
      "cost":37.35,
      "time":"1507703520358"
    },
    {
      "write_off_id":"1518204",
      "tr_product_id":"2125170",
      "storage_id":"1",
      "ingredient_id":"97",
      "product_id":"908",
      "modificator_id":"68",
      "prepack_id":"918",
      "weight":0.15,
      "unit":"kg",
      "cost":0.43,
      "time":"1507703520358"
    }
  ]
}

Метод получает все списания по чеку

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getTransactionWriteoffs

GET-параметры запроса dash.getTransactionWriteOffs

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
transaction_id Обязательный параметр, id транзакции (номер чека)

Параметры ответа dash.getTransactionWriteOffs

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
write_off_id id списания
transaction_id Номер транзакции (чека)
storage_id Id склада откуда произошло списание
to_storage Id склада куда переместили, передается если проводили перемещение
ingredient_id Id ингредиента
product_id Id товара
modificator_id Id модификатора, если без модификатора — 0
prepack_id id полуфабриката
weight Количество
unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
cost Стоимость ингредиента умноженная на кол-во в гривнах\рублях
user_id id официанта
type Тип действия: 4 — перемещение, 1 — списание, 2 — ручное списание
time Дата списания в формате unixtimestamp
reason Причина списания

dash.getPaymentsReport: Статистика оплат по дням/месяцам

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

<?php
$url = 'https://api-demo.joinposter.com/api/dash.getPaymentsReport'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&date_from=20170501'
 . '&date_to=20170531';

$data = sendRequest($url);

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

{
    "response": {
        "days": [
            {
                "date": "2017-05-23",
                "payed_cash_sum": "1607996",
                "payed_card_sum": "365552",
                "payed_cert_in_sum": "0",
                "payed_cert_out_sum": "0",
                "payed_bonus_sum": "0",
                "payed_incust_sum": "0",
                "payed_sum_sum": "1973548"
            },
            {
                "date": "2017-06-03",
                "payed_cash_sum": "1108969",
                "payed_card_sum": "1090915",
                "payed_cert_in_sum": "0",
                "payed_cert_out_sum": "0",
                "payed_bonus_sum": "0",
                "payed_incust_sum": "0",
                "payed_sum_sum": "2199884"
            }
        ],
        "total": {
            "payed_cash_sum": 2716965,
            "payed_card_sum": 1456467,
            "payed_third_party_sum": 0,
            "payed_cert_in_sum": 0,
            "payed_cert_out_sum": 0,
            "payed_bonus_sum": 0,
            "payed_incust_sum": 0,
            "payed_sum_sum": 4173432
        }
    }
}

Пример ответа по месяцам:

{
    "response": {
        "days": [
            {
                "date": "2017-06",
                "payed_cash_sum": "27286420",
                "payed_card_sum": "1951853",
                "payed_cert_in_sum": "0",
                "payed_cert_out_sum": "0",
                "payed_bonus_sum": "0",
                "payed_incust_sum": "0",
                "payed_sum_sum": "29234560"
            },
            {
                "date": "2017-05",
                "payed_cash_sum": "60273456",
                "payed_card_sum": "6290658",
                "payed_cert_in_sum": "0",
                "payed_cert_out_sum": "0",
                "payed_bonus_sum": "0",
                "payed_incust_sum": "0",
                "payed_sum_sum": "66564114"
            },
            {
                "date": "2017-04",
                "payed_cash_sum": "49090724",
                "payed_card_sum": "4782295",
                "payed_cert_in_sum": "0",
                "payed_cert_out_sum": "0",
                "payed_bonus_sum": "0",
                "payed_incust_sum": "0",
                "payed_sum_sum": "53873019"
            }
        ],
        "total": {
            "payed_cash_sum": 136650600,
            "payed_card_sum": 13024806,
            "payed_third_party_sum": 0,
            "payed_cert_in_sum": 0,
            "payed_cert_out_sum": 0,
            "payed_bonus_sum": 0,
            "payed_incust_sum": 0,
            "payed_sum_sum": 149671693
        }
    }
}

Метод возвращает статистику оплат по дням. При отрезке времени больше чем 65 дней — по месяцам

HTTP запрос

GET https://{account}.joinposter.com/api/dash.getPaymentsReport

GET-параметры запроса dash.getPaymentsReport

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен.
spot_id Опциональный параметр, Id заведения по которому возвращать статистику
date_from Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
date_to Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.

Параметры ответа dash.getPaymentsReport

Параметр Описание
days Список дней/месяцов в которых были оплаты
total Общие суммы по всем дням

Внутри элемента days лежит массив, в каждом элементе которого есть следующие свойства:

Параметр Описание
date Дата в формате Y-m-d или Y-m при выводе по месяцам
payed_cash_sum Оплата наличными в копейках
payed_card_sum Оплата карточкой в копейках
payed_cert_in_sum Оплата сертификатом в копейках. Приходит если в настройках администрирования включена опция “Учитывать оплату сертификатом”.
payed_cert_out_sum Оплата сертификатом в копейках. Приходит если в настройках администрирования выключена опция “Учитывать оплату сертификатом” и равноценна скидке.
payed_bonus_sum Оплата бонусами
payed_incust_sum Оплата incust
payed_sum_sum Общая сумма оплат за этот день в копейках

Внутри элемента total есть следующие свойства:

Параметр Описание
payed_cash_sum Общая сумма оплат наличными в копейках
payed_card_sum Общая сумма оплат карточкой в копейках
payed_third_party_sum Общая сумма оплат третьей стороной
payed_cert_in_sum Общая сумма оплат сертификатом в копейках. Приходит если в настройках администрирования включена опция “Учитывать оплату сертификатом”.
payed_cert_out_sum Общая сумма оплат сертификатом в копейках. Приходит если в настройках администрирования выключена опция “Учитывать оплату сертификатом” и равноценна скидке.
payed_bonus_sum Общая сумма оплат бонусами
payed_incust_sum Общая сумма оплат incust
payed_sum_sum Общая сумма всех оплат в копейках

menu: Меню

Методы для работы с разделом меню. Все методы данного раздела начинаются с «menu».

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getCategories'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&fiscal=0';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "category_id":"2",
      "category_name":"Роллы",
      "category_photo":"/upload/pos_cdb_888/menu/category_1420674791_2.jpg",
      "parent_category":"0",
      "category_color":"white",
      "category_hidden":"0",
      "sort_order":"999",
      "fiscal":"0",
      "nodiscount":"0",
      "tax_id":"0",
      "left":"3",
      "right":"4",
      "level":"1"
    }
  ]
}

Метод возвращает список категорий товаров

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getCategories

GET-параметры запроса menu.getCategories

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
fiscal Фискальный признак категорий: 0 — не фискальные, 1 — фискальные. По умолчанию — все категории.
id_1c Позволяет вернуть в ответе id категории товаров в системе 1С. В качестве значения необходимо передать true. По умолчанию не передаётся.
Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
category_id Id категории
category_name Заголовок категории
category_photo Фотография категории
parent_category Id родительской категории
category_color Цвет категории
category_hidden Признак, что категория скрыта: 0 — не скрыта, 1 — скрыта
sort_order Порядок сортировки
fiscal Признак фискальности категории: 0 — не фискальная, 1 — фискальная
nodiscount Признак, что распространяются скидки: 0 — не распространяются, 1 — распространяются
tax_id Id налога
left Id категории слева (по Nested Set)
right Id катергории справа (по Nested Set)
level Уровень вложенности ветки дерева категорий (по Nested Set)
id_1c Id категории товаров в системе 1С

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getCategory'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&category_id=30'
 . '&1c=true';

$data = sendRequest($url);

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

{  
  "response":{  
    "category_id":30,
    "category_name":"Бар",
    "category_photo":null,
    "category_photo_origin":null,
    "parent_category":0,
    "category_color":"yellow",
    "category_hidden":0,
    "sort_order":3,
    "fiscal":0,
    "nodiscount":0,
    "tax_id":2,
    "left":7,
    "right":42,
    "level":1,
    "id_1c":"9c68dbc9-b255-11e6-9a8f-ace01035e460"
  }
}

Метод возвращает свойства категории товаров

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getCategory

GET-параметры запроса menu.getCategory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
category_id Id категории
1c Позволяет вернуть в ответе id категории товаров в системе 1С. В качестве значения необходимо передать true. По умолчанию не передаётся.
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
category_id Id категории
category_name Название категории
category_photo Фотография категории
category_photo_origin Оригинал загруженной фотографии
parent_category Id родительской категории
category_color Цвет категории
category_hidden Признак, что категория скрыта: 0 — не скрыта, 1 — скрыта
sort_order Порядок сортировки
fiscal Признак фискальности категории: 0 — не фискальная, 1 — фискальная
nodiscount Признак, что распространяются скидки: 0 — не распространяются, 1 — распространяются
tax_id Id налога
left Id категории слева (по Nested Set)
right Id категории справа (по Nested Set)
level Уровень вложенности ветки дерева категорий (по Nested Set)
id_1c Id категории товаров в системе 1С

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createCategory'
 . '?token=4164553abf6a031302898da7800b59fb';

$category = [
    'category_name'   => 'Пицца',
    'parent_category' => 0,
    'category_color'  => 'yellow',
    'category_hidden' => 0,
    'tax_id'          => 0,
];

$data = sendRequest($url, 'post', $category);

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

{  
  "response":52
}

Метод создаёт категорию товаров

HTTP запрос

GET https://{account}.joinposter.com/api/menu.createCategory

GET-параметры запроса menu.createCategory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createCategory

Параметр Описание
category_name Название категории товаров
parent_category Id родительской категории
category_color Цвет категории: white, red, orange, yellow, green, blue, navy-blue, purple, black, mint-blue, lime-green, pink. По умолчанию принимает white.
category_hidden Признак, что категория скрыта: 0 — не скрыта, 1 — скрыта. По умолчанию принимает 0.
tax_id Id налога. По умолчанию принимает 0.
Параметр Описание
response Id созданной категории товаров

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updateCategory'
 . '?token=4164553abf6a031302898da7800b59fb';

$category = [
    'category_id'     => 34,
    'category_name'   => 'Пицца',
    'parent_category' => 0,
    'category_color'  => 'red',
];

$data = sendRequest($url, 'post', $category);

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

{  
  "response": 34
}

Метод изменяет свойства категории товаров

HTTP запрос

GET https://{account}.joinposter.com/api/menu.updateCategory

GET-параметры запроса menu.updateCategory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updateCategory

Параметр Описание
category_id Id категории товаров
category_name Название категории товаров
parent_category Id родительской категории
category_color Цвет категории: white, red, orange, yellow, green, blue, navy-blue, purple, black, mint-blue, lime-green, pink. По умолчанию не передаётся.
category_hidden Признак, что категория скрыта: 0 — не скрыта, 1 — скрыта. По умолчанию не передаётся.
tax_id Id налога. По умолчанию не передаётся.
Параметр Описание
response Id изменённой категории товаров

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.set1cCategoryId'
 . '?token=4164553abf6a031302898da7800b59fb';

$category = [
    'id' => [
        [
            'category_id' => 32,
            'id_1c'       => 'b80ffc81-0fc9-11e7-9ab4-ace01035e460',
        ],
    ],
];

$data = sendRequest($url, 'post', $category);

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

{  
  "success":1
}

Метод изменяет id категории товаров в системе 1С

HTTP запрос

GET https://{account}.joinposter.com/api/menu.set1cCategoryId

GET-параметры запроса menu.set1cCategoryId

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.set1cCategoryId

Параметр Описание
id Массив объектов

В свою очередь, каждый объект должен содержать следующие свойства:

Параметр Описание
category_id Id категории товаров
id_1c Id категории товаров в системе 1С
Параметр Описание
success 1, если id категории товаров в системе 1С успешно изменён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removeCategory'
 . '?token=4164553abf6a031302898da7800b59fb';

$category = [
    'category_id' => 52,
];

$data = sendRequest($url, 'post', $category);

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

{  
  "response":true
}

Метод удаляет категорию товаров

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removeCategory

GET-параметры запроса menu.removeCategory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removeCategory

Параметр Описание
category_id Id категории товаров
Параметр Описание
response true, если категория товаров успешно удалена

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getProducts'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&category_id=16'
 . '&type=products';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "barcode":"",
      "category_name":"Свежевыжатые соки",
      "unit":"",
      "cost":"1880",
      "fiscal":"0",
      "menu_category_id":"16",
      "workshop":"4",
      "nodiscount":"0",
      "photo":"/upload/4/menu/product_1403094607_140.jpg",
      "photo_origin":"/upload/4/menu/product_1403094607_140_original.jpg",
      "price":{  
        "1":"40000",
        "2":"40000"
      },
      "product_code":"",
      "product_id":"140",
      "product_name":"Апельсиновый",
      "profit":{  
        "1":"38120",
        "2":"38120"
      },
      "sort_order":"1",
      "tax_id":"0",
      "product_tax_id":"0",
      "type":"3",
      "weight_flag":"0",
      "color":"white",
      "spots":[  
        {  
          "spot_id":"1",
          "price":"40000",
          "profit":"38120",
          "visible":"1"
        },
        {  
          "spot_id":"2",
          "price":"40000",
          "profit":"38120",
          "visible":"1"
        }
      ],
      "ingredient_id":"10"
    }
  ]
}

Метод возвращает список товаров и тех. карт

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getProducts

GET-параметры запроса menu.getProducts

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
category_id Id категории товаров. По умолчанию не передаётся.
type Тип: products — товары, batchtickets — тех. карты. По умолчанию не передаётся.
Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
barcode Штриховой код товара
category_name Название категории в которой содержится товар
unit Единица измерения товара
cost Себестоимость товара в копейках
fiscal Фискальный признак товара: 0 — не фискальный, 1 — фискальный
menu_category_id Id категории в которой содержится товар
workshop Id цеха товара
nodiscount Признак, могут ли применяться скидки к этому товару: 0 — не могут, 1 — могут
photo Фотография товара
photo_origin Оригинал фотографии товара
price Стоимость товара
product_code Складская учётная единица товара, например, SKU
product_id Id товара
product_name Название товара
profit Чистая прибыль за товар в копейках
sort_order Порядок сортировки товара
tax_id Id налога товара
product_tax_id Признак, что налог товара унаследован от налога категории: 0 — не унаследован, 1 — унаследован
type Тип товара: 1 — полуфабрикат, 2 — тех.карта, 3 — товар
weight_flag Признак, что товар весовой: 0 — не весовой, 1 — весовой
color Цвет карточки товара в терминале
spots Заведения в которых доступен товар
ingredient_id Id ингредиента (возвращается, если товар)
product_production_description Описание процесса приготовления
ingredients Список ингредиентов (возвращается, если тех. карта)

Внутри параметра price лежит массив, где ключом является id заведения:

Параметр Описание
Id заведения Цена на товар в этом заведении в копейках

Внутри параметра profit лежит массив, где ключом является id заведения:

Параметр Описание
Id заведения Чистая прибыль с товара в этом заведении

Внутри параметра spots лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
spot_id Id заведения
price Цена на товар в этом заведении в копейках
profit Чистая прибыль с товара в этом заведении в копейках
visible Признак, что товар виден на терминале в этом заведении: 0 — не виден, 1 — виден

Внутри параметра ingredients лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
structure_id Id элемента тех. карты
ingredient_id Id ингредиента
pr_in_clear Признак, что используется метод приготовления «очистка»: 0 — не используется, 1 — используется
pr_in_cook Признак, что используется метод приготовления «запекание»: 0 — не используется, 1 — используется
pr_in_fry Признак, что используется метод приготовления «жарка»: 0 — не используется, 1 — используется
pr_in_stew Признак, что используется метод приготовления «тущение»: 0 — не используется, 1 — используется
pr_in_bake Признак, что используется метод приготовления «варка»: 0 — не используется, 1 — используется
structure_unit Единица измерения элемента тех. карты
structure_type Тип элемента тех. карты: 1 — ингредиент, 2 — полуфабрикат
structure_brutto Брутто элемента тех. карты
structure_netto Нетто элемента тех. карты
structure_lock Зависимость нетто от брутто: 0 — ручная, 1 — автоматическая
structure_selfprice Цена элемента тех. карты
ingredient_name Название ингредиента
ingredient_unit Единица измерения ингредиента: l — литры, kg — килограммы, p — штуки
ingredient_weight Количество списания ингредиента
ingredients_losses_clear Коэффициент потерь при очистке ингредиента
ingredients_losses_cook Коэффициент потерь при запекании ингредиента
ingredients_losses_fry Коэффициент потерь при жарке ингредиента
ingredients_losses_stew Коэффициент потерь при тущении ингредиента
ingredients_losses_bake Коэффициент потерь при варке ингредиента

Пример запроса получения свойств товара:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.getProduct'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&product_id=142';

$data = sendRequest($url);

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

{  
  "response":{  
    "barcode":"",
    "category_name":"Свежевыжатые соки",
    "unit":"",
    "cost":"1880",
    "fiscal":"0",
    "hidden":"0",
    "menu_category_id":"16",
    "workshop":"4",
    "nodiscount":"0",
    "photo":"/upload/4/menu/product_1403094607_140.jpg",
    "price":{  
      "1":"40000",
      "2":"40000"
    },
    "product_code":"",
    "product_id":"140",
    "product_name":"Апельсиновый",
    "profit":{  
      "1":"38120",
      "2":"38120"
    },
    "sort_order":"1",
    "tax_id":"0",
    "product_tax_id":"0",
    "type":"3",
    "weight_flag":"0",
    "color":"white",
    "spots":[  
      {  
        "spot_id":"1",
        "price":"40000",
        "profit":"38120",
        "visible":"1"
      },
      {  
        "spot_id":"2",
        "price":"40000",
        "profit":"38120",
        "visible":"1"
      }
    ],
    "ingredient_id":"10",
    "out":"0"
  }
}

Пример запроса получения свойств тех. карты:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.getProduct'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&product_id=175';

$data = sendRequest($url);

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

{  
  "response":{  
    "barcode":"123456",
    "category_name":"Коктейли",
    "unit":"kg",
    "cost":"444",
    "fiscal":"0",
    "menu_category_id":"39",
    "workshop":"1",
    "nodiscount":"0",
    "photo":"/upload/pos_cdb_4/menu/product_1439375876_175.jpg",
    "price":{  
      "1":"60000",
      "2":"60000"
    },
    "product_code":"",
    "product_id":"175",
    "product_name":"Manhattan Jack",
    "profit":{  
      "1":"59556",
      "2":"59556"
    },
    "sort_order":"999",
    "tax_id":"0",
    "product_tax_id":"0",
    "type":"2",
    "weight_flag":"0",
    "color":"white",
    "spots":[  
      {  
        "spot_id":"1",
        "price":"60000",
        "profit":"59556",
        "visible":"1"
      },
      {  
        "spot_id":"2",
        "price":"60000",
        "profit":"59556",
        "visible":"1"
      }
    ],
    "ingredient_id":"0",
    "out":97,
    "product_production_description":"",
    "ingredients":[  
      {  
        "structure_id":"52",
        "ingredient_id":"92",
        "pr_in_clear":"0",
        "pr_in_cook":"0",
        "pr_in_fry":"0",
        "pr_in_stew":"0",
        "pr_in_bake":"0",
        "structure_unit":"l",
        "structure_type":"1",
        "structure_brutto":30,
        "structure_netto":30,
        "structure_lock":"1",
        "structure_selfprice":"102",
        "ingredient_name":"Красный вермут",
        "ingredient_unit":"l",
        "ingredient_weight":"0",
        "ingredients_losses_clear":"0",
        "ingredients_losses_cook":"0",
        "ingredients_losses_fry":"0",
        "ingredients_losses_stew":"0",
        "ingredients_losses_bake":"0"
      },
      {  
        "structure_id":"53",
        "ingredient_id":"91",
        "pr_in_clear":"0",
        "pr_in_cook":"0",
        "pr_in_fry":"0",
        "pr_in_stew":"0",
        "pr_in_bake":"0",
        "structure_unit":"l",
        "structure_type":"1",
        "structure_brutto":60,
        "structure_netto":60,
        "structure_lock":"1",
        "structure_selfprice":"313",
        "ingredient_name":"Jack Daniels",
        "ingredient_unit":"l",
        "ingredient_weight":"0",
        "ingredients_losses_clear":"0",
        "ingredients_losses_cook":"0",
        "ingredients_losses_fry":"0",
        "ingredients_losses_stew":"0",
        "ingredients_losses_bake":"0"
      }
    ]
  }
}

Метод возвращает свойства товара или тех. карты

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getProduct

GET-параметры запроса menu.getProduct

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
product_id Id товара или тех. карты
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
barcode Штриховой код товара
category_name Название категории в которой содержится товар
unit Единица измерения товара
cost Себестоимость товара в копейках
fiscal Фискальный признак товара: 0 — не фискальный, 1 — фискальный
menu_category_id Id категории в которой содержится товар
workshop Id цеха товара
nodiscount Признак, могут ли применяться скидки к этому товару: 0 — не могут, 1 — могут
photo Фотография товара
price Стоимость товара
product_code Складская учётная единица товара
product_id Id товара
product_name Название товара
profit Чистая прибыль за товар
sort_order Порядок сортировки товара
tax_id Id налога товара
product_tax_id Признак, что налог товара унаследован от налога категории: 0 — не унаследован, 1 — унаследован
type Тип товара: 1 — полуфабрикат, 2 — тех.карта, 3 — товар
weight_flag Признак, что товар весовой: 0 — не весовой, 1 — весовой
color Цвет карточки товара в терминале
spots Заведения в которых доступен товар
ingredient_id Id ингредиента (возвращается, если товар)
product_production_description Описание процесса приготовления
ingredients Список ингредиентов (возвращается, если тех. карта)

Внутри параметра price лежит массив, где ключом является id заведения:

Ключ Значение
Id заведения Цена на товар в этом заведении в копейках

Внутри параметра profit лежит массив, где ключом является id заведения:

Ключ Значение
Id заведения Чистая прибыль с товара в этом заведении в копейках

Внутри параметра spots лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
spot_id Id заведения
price Цена на товар в этом заведении в копейках
profit Чистая прибыль с товара в этом заведении в копейках
visible Признак, что товар виден на терминале в этом заведении: 0 — не виден, 1 — виден

Внутри параметра ingredients лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
structure_id Id элемента тех. карты
ingredient_id Id ингредиента
pr_in_clear Признак, что используется метод приготовления «очистка»: 0 — не используется, 1 — используется
pr_in_cook Признак, что используется метод приготовления «запекание»: 0 — не используется, 1 — используется
pr_in_fry Признак, что используется метод приготовления «жарка»: 0 — не используется, 1 — используется
pr_in_stew Признак, что используется метод приготовления «тущение»: 0 — не используется, 1 — используется
pr_in_bake Признак, что используется метод приготовления «варка»: 0 — не используется, 1 — используется
structure_unit Единица измерения элемента тех. карты
structure_type Тип элемента тех. карты: 1 — ингредиент, 2 — полуфабрикат
structure_brutto Брутто элемента тех. карты
structure_netto Нетто элемента тех. карты
structure_lock Зависимость нетто от брутто: 0 — ручная, 1 — автоматическая
structure_selfprice Цена элемента тех. карты
ingredient_name Название ингредиента
ingredient_unit Единица измерения ингредиента
ingredient_weight Количество списания ингредиента
ingredients_losses_clear Коэффициент потерь при очистке ингредиента
ingredients_losses_cook Коэффициент потерь при запекании ингредиента
ingredients_losses_fry Коэффициент потерь при жарке ингредиента
ingredients_losses_stew Коэффициент потерь при тущении ингредиента
ingredients_losses_bake Коэффициент потерь при варке ингредиента

Пример запроса на создание товара без модификаций:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createProduct'
  . '?token=4164553abf6a031302898da7800b59fb';

$product = [
    'product_name'           => 'Пончик',
    'menu_category_id'       => 0,
    'workshop'               => 1,
    'weight_flag'            => 0,
    'color'                  => 'red',
    'different_spots_prices' => 0,
    'modifications'          => 0,
    'barcode'                => '4820098749621',
    'cost'                   => 2000,
    'price'                  => 3000,
    'visible'                => 1,
];

$data = sendRequest($url, 'post', $product);

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

{  
  "response":60
}

Пример запроса на создание товара с модификациями:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createProduct'
 . '?token=4164553abf6a031302898da7800b59fb';

$product = [
    'product_name'           => 'Sprite',
    'menu_category_id'       => 0,
    'workshop'               => 1,
    'weight_flag'            => 0,
    'color'                  => 'red',
    'different_spots_prices' => 0,
    'modifications'          => 1,
    'modificator_name[0]'    => '1 л.',
    'modificator_name[1]'    => '2 л.',
    'barcode[0]'             => '4820098749621',
    'barcode[1]'             => '4820098749622',
    'product_code[0]'        => '3412356',
    'product_code[1]'        => '3412357',
    'cost[0]'                => 700,
    'cost[1]'                => 1000,
    'price[0]'               => 1500,
    'price[1]'               => 2000,
    'visible[0]'             => 1,
    'visible[1]'             => 1,
];

$data = sendRequest($url, 'post', $product);

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

{  
  "response":61,
  "modifications_id":[  
    1,
    2
  ]
}

Метод создаёт товар

HTTP запрос

POST https://{account}.joinposter.com/api/menu.createProduct

GET-параметры запроса menu.createProduct

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createProduct

Параметр Описание
product_name Название товара
menu_category_id Id категории меню. Если передать 0, то товар попадет на «Главный экран».
workshop Id цеха. Обязательное поле для аккаунтов типа «кафе».
weight_flag Признак, что товар штучный или весовой: 0 — штучный, 1 — весовой
color Цвет карточки товара: white, red, orange, yellow, green, blue, navy-blue, purple, black, mint-blue, lime-green, pink. По умолчанию принимает white.
different_spots_prices Признак, что у товара разные цены в разных заведениях: 0 — одинаковые цены, 1 — разные цены
modifications Признак, что товар с модификаторами: 0 — без модификаторов, 1 — с модификаторами
modificator_name Название модиикатора. Является обязательным, если в параметре modifications передана 1. Все имена передаются с указанием индекса модификатора в квадратных скобках: modificator_name[0], modificator_name[1] и так далее.
barcode Штрихововй код товара. Позволяет использовать сканер штрих-кодов во время продажи товаров. Для штучных товаров рекомендуется использовать 13-значный код, для весовых товаров рекомендуется использовать 7-значный код. Если товар без модификаторов, то параметр передается как barcode, если с модификаторами, то с указанием индекса модификатора в квадратных скобках: barcode[0], barcode[1] и так далее.
product_code Артикул товара. Указывается только для аккаунтов типа «магазин». Если товар без модификаторов, то параметр передается как product_code, если с модификаторами, то с указанием индекса модификатора в квадратных скобках: product_code[0], product_code[1] и так далее.
cost Первичная себестоимость товара в копейках, которая будет использоваться до первой поставки товара. Если товар без модификаторов, то параметр передается как cost, если с модификаторами, то с указанием индекса модификации в квадратных скобках: cost[0], cost[1] и так далее.
price Стоимость товара в копейках. Если товар без модификаторов, то параметр передаётся как price, если с модификаторами, то с указанием индекса модификаторов в квадратных скобках: price[0], price[1] и так далее. Кроме того, если включается свойство «разные цены в разных заведениях», то добавляется ещё один уровень массива, где будут указываться id заведений. То есть, price[1], price[2] и так далее — без модификаторов, и price[0][1], price[1][2] — с модификаторами (в качестве индекса сначала индекс модификации, а потом id заведения).
visible Признак, что товар виден на терминале в этом заведении: 0 — не виден, 1 — виден. Используется только при включенном свойстве «разные цены в разных заведениях». Структуру передачи данных идентична параметру price. То есть, visible[1], visible[2] и так далее — без модификаторов (id заведения в качестве индекса), и visible[0][1], visible[1][2] — с модификациями (в качестве индекса сначала индекс модификации, а потом id заведения).
Параметр Описание
response Id созданного товара
Параметр Описание
product_id Id созданного товара
modifications_id Массив из id модификаций созданного товара

Пример запроса на изменение данных товара без модификаций и с разными ценами в разных заведениях:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updateProduct'
 . '?token=4164553abf6a031302898da7800b59fb';

$product = [
    'id'                     => 142,
    'product_name'           => 'Батон',
    'menu_category_id'       => 0,
    'workshop'               => 1,
    'weight_flag'            => 0,
    'color'                  => 'blue',
    'different_spots_prices' => 1,
    'modifications'          => 0,
    'barcode'                => '4820098749621',
    'price[1]'               => 3100,
    'price[2]'               => 3200,
    'visible'                => 1,
];

$data = sendRequest($url, 'post', $product);

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

{  
  "response": 142
}

Пример запроса на изменение товара с модификациями:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updateProduct'
    . '?token=4164553abf6a031302898da7800b59fb';

$product = [
    'id'                     => 57,
    'product_name'           => 'Имбирный чай',
    'menu_category_id'       => 0,
    'workshop'               => 1,
    'weight_flag'            => 0,
    'color'                  => 'green',
    'different_spots_prices' => 1,
    'modifications'          => 1,
    'modificator_id[0]'      => 1,
    'modificator_id[1]'      => 0,
    'modificator_id[2]'      => 2,
    'modificator_name[0]'    => '1л',
    'modificator_name[1]'    => '1.5л',
    'modificator_name[2]'    => '2л',
    'barcode[0]'             => '4820098749621',
    'barcode[1]'             => '4820098749623',
    'barcode[2]'             => '4820098749622',
    'price[0][1]'            => 1500,
    'price[0][2]'            => 1600,
    'price[1][1]'            => 1700,
    'price[1][2]'            => 1800,
    'price[2][1]'            => 2000,
    'price[2][2]'            => 2100,
    'visible[0][1]'          => 1,
    'visible[0][2]'          => 1,
    'visible[1][1]'          => 1,
    'visible[1][2]'          => 1,
    'visible[2][1]'          => 0,
    'visible[2][2]'          => 0,
];

$data = sendRequest($url, 'post', $product);

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

{  
  "response":{  
    "product_id":61,
    "modifications_id":[  
      1,
      7,
      2
    ]
  }
}

Метод изменяет свойства товара

HTTP запрос

POST https://{account}.joinposter.com/api/menu.updateProduct

GET-параметры запроса menu.updateProduct

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updateProduct

Параметр Описание
id Id товара
product_name Название товара
menu_category_id Id категории меню. Если передать 0, то товар попадет на «Главный экран».
workshop Id цеха. Обязательное поле для аккаунтов типа «кафе».
weight_flag Признак, что товар штучный или весовой: 0 — штучный, 1 — весовой
color Цвет карточки товара: white, red, orange, yellow, green, blue, navy-blue, purple, black, mint-blue, lime-green, pink. По умолчанию принимает white.
different_spots_prices Признак, что у товара разные цены в разных заведениях: 0 — одинаковые цены, 1 — разные цены
modifications Признак, что товар с модификаторами: 0 — без модификаторов, 1 — с модификаторами
modificator_id Id модиикатора. Является обязательным, если в параметре modifications передана 1. Для существующих модифиторов необходимо передать их существующий modificator_id. Для новых модификаторов необходимо передать 0.
modificator_name Название модиикатора. Является обязательным, если в параметре modifications передана 1. Все имена передаются с указанием индекса модификатора в квадратных скобках: modificator_name[0], modificator_name[1] и так далее.
barcode Штрихововй код товара. Позволяет использовать сканер штрих-кодов во время продажи товаров. Для штучных товаров рекомендуется использовать 13-значный код, для весовых товаров рекомендуется использовать 7-значный код. Если товар без модификаторов, то параметр передается как barcode, если с модификаторами, то с указанием индекса модификатора в квадратных скобках: barcode[0], barcode[1] и так далее.
product_code Артикул товара. Указывается только для аккаунтов типа «магазин». Если товар без модификаторов, то параметр передается как product_code, если с модификаторами, то с указанием индекса модификатора в квадратных скобках: product_code[0], product_code[1] и так далее.
price Стоимость товара в копейках. Если товар без модификаторов, то параметр передаётся как price, если с модификаторами, то с указанием индекса модификаторов в квадратных скобках: price[0], price[1] и так далее. Кроме того, если включается свойство «разные цены в разных заведениях», то добавляется ещё один уровень массива, где будут указываться id заведений. То есть, price[1], price[2] и так далее — без модификаторов, и price[0][1], price[1][2] — с модификаторами (в качестве индекса сначала индекс модификации, а потом id заведения).
visible Признак, что товар виден на терминале в этом заведении: 0 — не виден, 1 — виден. Используется только при включенном свойстве «разные цены в разных заведениях». Структуру передачи данных идентична параметру price. То есть, visible[1], visible[2] и так далее — без модификаторов (id заведения в качестве индекса), и visible[0][1], visible[1][2] — с модификациями (в качестве индекса сначала индекс модификации, а потом id заведения).
Параметр Описание
response Id изменённого товара
Параметр Описание
product_id Id изменённого товара
modifications_id Массив из id модификаций изменённого товара

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.set1cProductId'
 . '?token=4164553abf6a031302898da7800b59fb';

$products = [
    'id' => [
        [
            'product_id' => 48,
            'id_1c'      => 'b80ffc81-0fc9-11e7-9ab4-ace01035e460',
        ],
    ],
];

$data = sendRequest($url, 'post', $products);

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

{  
  "success":1
}

Метод изменяет id товара в системе 1С

HTTP запрос

GET https://{account}.joinposter.com/api/menu.set1cProductId

GET-параметры запроса menu.set1cProductId

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.set1cProductId

Параметр Описание
id Массив объектов

В свою очередь, каждый объект должен содержать следующие свойства:

Параметр Описание
product_id Id товара
id_1c Id товара в системе 1С
Параметр Описание
success 1, если id товара в системе 1С успешно изменён

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.set1cModificatorId'
 . '?token=4164553abf6a031302898da7800b59fb';

$product_modificators = [
    'id' => [
        [
            'modificator_id' => 7,
            'id_1c'          => 'b80ffc81-0fc9-11e7-9ab4-ace01035e460',
        ],
    ],
];

$data = sendRequest($url, 'post', $product_modificators);

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

{  
  "success":1
}

Метод изменяет id модификатора товара в системе 1С

HTTP запрос

GET https://{account}.joinposter.com/api/menu.set1cModificatorId

GET-параметры запроса menu.set1cModificatorId

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.set1cModificatorId

Параметр Описание
id Массив объектов

В свою очередь, каждый объект должен содержать следующие свойства:

Параметр Описание
modificator_id Id модификатора товара
id_1c Id модификатора товара в системе 1С
Параметр Описание
success 1, если id модификатора товара в системе 1С успешно изменён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removeProduct'
 . '?token=4164553abf6a031302898da7800b59fb';

$product = [
    'product_id' => 48,
];

$data = sendRequest($url, 'post', $product);

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

{  
  "response":true
}

Метод удаляет товар

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removeProduct

GET-параметры запроса menu.removeProduct

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removeProduct

Параметр Описание
product_id Id товара
Параметр Описание
response true, если товар успешно удалён

Пример запроса на создание техкартыы:

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createDish'
 . '?token=4164553abf6a031302898da7800b59fb';

$dish = [
    'product_name' => 'Кальян с сюрпризом',
    'menu_category_id' => 151,
    'different_spots_prices' => 1,
    'workshop' => 4,
    'weight_flag' => 0,
    'product_color' => 'red',
    'nodiscount' => 1,
    'price' => [
        1 => 55,
        2 => 57,
    ],
    'visible' => [
        1 => 1,
        2 => 0,
    ],
    "ingredient" => [[
        "id" => 813,
        "type" => 1,
        "unit" => "kg",
        "weight" => 0,
        "stew" => 0,
        "bake" => 0,
        "brutto" => 10,
        "lock" => 1,
        "netto" => 10,
    ]],
    'modificationgroup' => [
        [
            'type'          => 1,
            'minNum'        => 1,
            'maxNum'        => 1,
            'name'          => 'Чаша',
            "modifications" => [
                [
                    "ingredientId" => 820,
                    "type" => 1,
                    "name" => "Классическая чаша",
                    "brutto" => 1,
                    "price" => 500,
                ],
                [
                    "ingredientId" => 816,
                    "name" => "Апельсиновая чаша",
                    "type" => 1,
                    "brutto" => 1,
                    "price" => 400,
                ],
            ]
        ]
    ]
];

$data = sendRequest($url, 'post', $dish);

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

{
  "response":61
}

Метод создаёт тех. карту

HTTP запрос

POST https://{account}.joinposter.com/api/menu.createDish

GET-параметры запроса menu.createDish

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createDish

Параметр Описание
product_name Название тех. карты
barcode Штриховой код тех. карты. По умолчанию не передаётся.
menu_category_id Id категории тех. карты. По умолчанию принимает 0.
workshop_id Id цеха. По умолчанию принимает 1.
product_color Цвет карточки тех. карты: white, red, orange, yellow, green, blue, navy-blue, purple, black, mint-blue, lime-green, pink. По умолчанию принимает white.
weight_flag Признак, что тех. карта весовая: 0 — не весовая, 1 — весовая. По умолчанию принимает 0. Если в тех. карте присутсвует штучный ингредиент, то она не может быть весовой. Если тех. карта с модификациями не может быть весовой.
nodiscount Признак, что тех. карта принимает участие в скидках: 0 — не принимает участие, 1 — принимает участие. По умолчанию принимает 1.
price Массив цен по разным заведениям. Ключ массива — id заведения, значение — цена в копейках. Можно указать price не массивом, тогда цена раскидается на все заведения.
visible Массив видимости тех. карты по разным заведениям. Ключ массива — id заведения. Можно указать visible не массивом, тогда видимость раскидается на все заведения.
ingredient Массив ингредиентов и полуфабрикатов входящих в состав тех. карты
modificationgroup Массив групп модификаторов

Внутри параметра ingredient лежит объект, внутри которого есть следующие параметры:

Параметр Описание
id id полуфабриката или ингредиента
type Тип ингредиента: 0 — полуфабрикат, 1 — ингредиент
brutto Брутто
netto Нетто
bake Признак, используется ли метод приготоволения «варка»: 0 — нет, 1 — да. По умолчанию передаётся 0.
cook Признак, используется ли метод приготоволения «запекание»: 0 — нет, 1 — да. По умолчанию передаётся 0.
clear Признак, используется ли метод приготоволения «очистка»: 0 — нет, 1 — да. По умолчанию передаётся 0.
fry Признак, используется ли метод приготоволения «жарка»: 0 — нет, 1 — да. По умолчанию передаётся 0.
stew Признак, используется ли метод приготоволения «тушение»: 0 — нет, 1 — да. По умолчанию передаётся 0.
lock Тип зависимости нетто от брутто: 0 — ручная, 1 — автоматическая

Внутри параметра modificationgroup лежит объект, внутри которого есть следующие параметры:

Параметр Описание
type Тип: 1 — из нескольких, 2 — несколько из нескольких
minNum Минимальное количество модификаторов, которые нужно выбрать
maxNum Максимальное количество модификаторов, которые нужно выбрать
name Имя группы модификаторов
modifications Массив модификаторов

Внутри параметра modifications лежит объект, внутри которого есть следующие параметры:

Параметр Описание
ingredientId Id ингредиента, тех. карты или полуфабриката
type Тип: 1 — ингредиент, 2 — тех. карта или полуфабрикат
name Название модификатора
brutto Вес, количество или литры модификатора
price Дельта добавляемой цены к продукту при добавлении модификации. Цена в копейках и может быть нулевой.
Параметр Описание
response Id созданной тех. карты

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updateDish'
 . '?token=4164553abf6a031302898da7800b59fb';

$dish = [
    'dish_id'                => 171,
    'product_name'           => 'Гамбургер с телятиной',
    'barcode'                => 159687,
    'menu_category_id'       => 10,
    'different_spots_prices' => 1,
    'workshop'               => 2,
    'weight_flag'            => 0,
    'product_color'          => 'red',
    'nodiscount'             => 0,
    'ingredient'             => [
        [
            'id'     => 815,
            'type'   => 1,
            'brutto' => 3,
            'netto'  => 6,
            'lock'   => 1,
            'clear'  => 1,
        ]
    ],
    'price' => [
        1 => 55,
        2 => 57,
    ],
    'visible' => [
        1 => 1,
        2 => 0,
    ],
    'modificationgroup'      => [
        [
            'type'          => 1,
            'minNum'        => 1,
            'maxNum'        => 1,
            'name'          => 'Картофель',
            'modifications' => [
                [
                    'ingredientId' => 814,
                    'type'         => 1,
                    'name'         => 'Вареный картофель',
                    'brutto'       => 200,
                    'price'        => 230,
                ],
                [
                    'ingredientId' => 816,
                    'type'         => 1,
                    'name'         => 'Фри',
                    'brutto'       => 150,
                    'price'        => 280,
                ],
            ],
        ]
    ],
];

$data = sendRequest($url, 'post', $dish);

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

{
  "response":61
}

Метод изменяет свойства тех. карты

HTTP запрос

POST https://{account}.joinposter.com/api/menu.updateDish

GET-параметры запроса menu.updateDish

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updateDish

Параметр Описание
dish_id Id тех. карты
product_name Название тех. карты
barcode Штриховой код тех. карты
menu_category_id Id категории тех. карты
workshop_id Id цеха
product_color Цвет карточки тех. карты: white, red, orange, yellow, green, blue, navy-blue, purple, black, mint-blue, lime-green, pink
weight_flag Признак, что тех. карта весовая: 0 — не весовая, 1 — весовая. Если в тех. карте присутсвует штучный ингредиент, то она не может быть весовой.
nodiscount Признак, что тех. карта принимает участие в скидках: 0 — не принимает участие, 1 — принимает участие
price Массив цен по разным заведениям. Ключ массива — id заведения. Можно указать price не массивом, тогда цена раскидается на все заведения.
visible Массив видимости тех. карты по разным заведениям. Ключ массива — id заведения. Можно указать visible не массивом, тогда видимость раскидается на все заведения.
ingredient Массив ингредиентов и полуфабрикатов входящих в состав тех. карты
modificationgroup Массив групп модификаторов

Внутри параметра ingredient лежит объект, внутри которого есть следующие параметры:

Параметр Описание
id id полуфабриката или ингредиента
type Тип ингредиента: 0 — полуфабрикат, 1 — ингредиент
brutto Брутто
netto Нетто
bake Признак, используется ли метод приготоволения «варка»: 0 — нет, 1 — да. По умолчанию передаётся 0.
cook Признак, используется ли метод приготоволения «запекание»: 0 — нет, 1 — да. По умолчанию передаётся 0.
clear Признак, используется ли метод приготоволения «очистка»: 0 — нет, 1 — да. По умолчанию передаётся 0.
fry Признак, используется ли метод приготоволения «жарка»: 0 — нет, 1 — да. По умолчанию передаётся 0.
stew Признак, используется ли метод приготоволения «тушение»: 0 — нет, 1 — да. По умолчанию передаётся 0.
lock Тип зависимости нетто от брутто: 0 — ручная, 1 — автоматическая

Внутри параметра modificationgroup лежит объект, внутри которого есть следующие параметры:

Параметр Описание
dish_modification_group_id Id группы которую редактируем. Все группы модификаций продукта, которые не прийдут в запросе, будут удалены.
type Тип: 1 — из нескольких, 2 — несколько из нескольких
minNum Минимальное количество модификаторов, которые нужно выбрать
maxNum Максимальное количество модификаторов, которые нужно выбрать
name Имя группы модификаторов
modifications Массив модификаторов

Внутри параметра modifications лежит объект, внутри которого есть следующие параметры:

Параметр Описание
dish_modification_id Id модификации которую редактируем. Все модификации продукта, которые не прийдут в запросе, будут удалены.
ingredientId Id ингредиента, тех. карты или полуфабриката
type Тип: 1 — ингредиент, 2 — тех. карта или полуфабрикат
name Название модификатора
brutto Вес, количество или литры модификатора
price Дельта добавляемой цены к продукту при добавлении модификации. Может быть нулевой.
Параметр Описание
response Id изменённой тех. карты

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removeDish'
 . '?token=4164553abf6a031302898da7800b59fb';

$dish = [
    'dish_id' => 925,
];

$data = sendRequest($url, 'post', $dish);

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

{  
  "response":true
}

Метод удаляет тех. карту

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removeDish

GET-параметры запроса menu.removeDish

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removeDish

Параметр Описание
dish_id Id тех. карты
Параметр Описание
response true, если тех. карта успешно удалена

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getPrepacks'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "product_id":"167",
      "ingredient_id":"0",
      "product_name":"Куринный бульон",
      "cost":"1222",
      "out":171,
      "product_production_description":"",
      "ingredients":[  
        {  
          "structure_id":"45",
          "ingredient_id":"88",
          "pr_in_clear":"0",
          "pr_in_cook":"1",
          "pr_in_fry":"0",
          "pr_in_stew":"0",
          "pr_in_bake":"0",
          "structure_unit":"kg",
          "structure_type":"1",
          "structure_brutto":200,
          "structure_netto":170,
          "structure_lock":"1",
          "structure_selfprice":"1221",
          "ingredient_name":"Куриные крылья",
          "ingredient_unit":"kg",
          "ingredient_weight":"0",
          "ingredients_losses_clear":"0",
          "ingredients_losses_cook":"15",
          "ingredients_losses_fry":"16",
          "ingredients_losses_stew":"16",
          "ingredients_losses_bake":"16"
        },
        {  
          "structure_id":"46",
          "ingredient_id":"89",
          "pr_in_clear":"0",
          "pr_in_cook":"0",
          "pr_in_fry":"0",
          "pr_in_stew":"0",
          "pr_in_bake":"0",
          "structure_unit":"kg",
          "structure_type":"1",
          "structure_brutto":1,
          "structure_netto":1,
          "structure_lock":"1",
          "structure_selfprice":"1",
          "ingredient_name":"Соль",
          "ingredient_unit":"kg",
          "ingredient_weight":"0",
          "ingredients_losses_clear":"0",
          "ingredients_losses_cook":"0",
          "ingredients_losses_fry":"0",
          "ingredients_losses_stew":"0",
          "ingredients_losses_bake":"0"
        }
      ]
    }
  ]
}

Метод возвращает список полуфабрикатов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getPrepacks

GET-параметры запроса menu.getPrepacks

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
1c Опциональный параметр, если значение true — возвращает в ответе id категории товаров в системе 1С. По умолчанию не передаётся.
Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
product_id Id полуфабриката в таблице товаров
ingredient_id Id полуфабриката в таблице ингредиентов, если полуфабрикат производимый, иначе принимает 0
product_name Название полуфабриката
cost Себестоимость полуфабриката
out Вес полуфабриката
product_production_description Описание процесса приготовления
id_1c Id полуфабриката в системе 1С
ingredients Ингредиенты входящие в состав полуфабриката

Внутри параметра ingredients лежит объект, внутри которого есть следующие параметры:

Параметр Описание
structure_id Id элемента полуфабриката
ingredient_id Id ингредиента
pr_in_clear Признак, что используется метод приготовления «очистка»: 0 — не используется, 1 — используется
pr_in_cook Признак, что используется метод приготовления «запекание»: 0 — не используется, 1 — используется
pr_in_fry Признак, что используется метод приготовления «жарка»: 0 — не используется, 1 — используется
pr_in_stew Признак, что используется метод приготовления «тущение»: 0 — не используется, 1 — используется
pr_in_bake Признак, что используется метод приготовления «варка»: 0 — не используется, 1 — используется
structure_unit Единица измерения элемента полуфабриката
structure_type Тип элемента полуфабриката: 1 — ингредиент, 2 — полуфабрикат
structure_brutto Брутто элемента полуфабриката
structure_netto Нетто элемента полуфабриката
structure_lock Зависимость нетто от брутто: 0 — ручная, 1 — автоматическая
structure_selfprice Цена элемента полуфабриката
ingredient_name Название ингредиента
ingredient_unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
ingredient_weight Количество списания ингредиента
ingredients_losses_clear Коэффициент потерь при очистке ингредиента
ingredients_losses_cook Коэффициент потерь при запекании ингредиента
ingredients_losses_fry Коэффициент потерь при жарке ингредиента
ingredients_losses_stew Коэффициент потерь при тущении ингредиента
ingredients_losses_bake Коэффициент потерь при варке ингредиента

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getPrepack'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&product_id=167'
 . '&1c=true';

$data = sendRequest($url);

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

{  
  "response":{  
    "product_id":"167",
    "ingredient_id":"0",
    "product_name":"Куринный бульон",
    "cost":"1222",
    "out":171,
    "product_production_description":"",
    "id_1c":"0",
    "ingredients":[  
      {  
        "structure_id":"45",
        "ingredient_id":"88",
        "pr_in_clear":"0",
        "pr_in_cook":"1",
        "pr_in_fry":"0",
        "pr_in_stew":"0",
        "pr_in_bake":"0",
        "structure_unit":"kg",
        "structure_type":"1",
        "structure_brutto":200,
        "structure_netto":170,
        "structure_lock":"1",
        "structure_selfprice":"1221",
        "ingredient_name":"Куриные крылья",
        "ingredient_unit":"kg",
        "ingredient_weight":"0",
        "ingredients_losses_clear":"0",
        "ingredients_losses_cook":"15",
        "ingredients_losses_fry":"16",
        "ingredients_losses_stew":"16",
        "ingredients_losses_bake":"16"
      },
      {  
        "structure_id":"46",
        "ingredient_id":"89",
        "pr_in_clear":"0",
        "pr_in_cook":"0",
        "pr_in_fry":"0",
        "pr_in_stew":"0",
        "pr_in_bake":"0",
        "structure_unit":"kg",
        "structure_type":"1",
        "structure_brutto":1,
        "structure_netto":1,
        "structure_lock":"1",
        "structure_selfprice":"1",
        "ingredient_name":"Соль",
        "ingredient_unit":"kg",
        "ingredient_weight":"0",
        "ingredients_losses_clear":"0",
        "ingredients_losses_cook":"0",
        "ingredients_losses_fry":"0",
        "ingredients_losses_stew":"0",
        "ingredients_losses_bake":"0"
      }
    ]
  }
}

Метод возвращает свойства полуфабриката

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getPrepack

Выполнить в браузере

GET-параметры запроса menu.getPrepack

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
product_id Id полуфабриката
1c Опциональный параметр, если значение true — возвращает в ответе id категории товаров в системе 1С. По умолчанию не передаётся.
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
product_id Id полуфабриката в таблице товаров
ingredient_id Id полуфабриката в таблице ингредиентов, если полуфабрикат производимый, иначе принимает 0
product_name Название полуфабриката
cost Себестоимость полуфабриката
out Вес полуфабриката
product_production_description Описание процесса приготовления
id_1c Id полуфабриката в системе 1С
ingredients Ингредиенты входящие в состав полуфабриката

Внутри параметра ingredients лежит объект, внутри которого есть следующие параметры:

Параметр Описание
structure_id Id элемента полуфабриката
ingredient_id Id ингредиента
pr_in_clear Признак, что используется метод приготовления «очистка»: 0 — не используется, 1 — используется
pr_in_cook Признак, что используется метод приготовления «запекание»: 0 — не используется, 1 — используется
pr_in_fry Признак, что используется метод приготовления «жарка»: 0 — не используется, 1 — используется
pr_in_stew Признак, что используется метод приготовления «тущение»: 0 — не используется, 1 — используется
pr_in_bake Признак, что используется метод приготовления «варка»: 0 — не используется, 1 — используется
structure_unit Единица измерения элемента полуфабриката
structure_type Тип элемента полуфабриката: 1 — ингредиент, 2 — полуфабрикат
structure_brutto Брутто элемента полуфабриката
structure_netto Нетто элемента полуфабриката
structure_lock Зависимость нетто от брутто: 0 — ручная, 1 — автоматическая
structure_selfprice Цена элемента полуфабриката в копейках
ingredient_name Название ингредиента
ingredient_unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
ingredient_weight Количество списания ингредиента
ingredients_losses_clear Коэффициент потерь при очистке ингредиента
ingredients_losses_cook Коэффициент потерь при запекании ингредиента
ingredients_losses_fry Коэффициент потерь при жарке ингредиента
ingredients_losses_stew Коэффициент потерь при тущении ингредиента
ingredients_losses_bake Коэффициент потерь при варке ингредиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createPrepack'
 . '?token=4164553abf6a031302898da7800b59fb';

$prepack = [
    'product_name' => 'Маринованные грибы',
    'ingredient'   => [
        [
            'id'     => 88,
            'type'   => 1,
            'brutto' => 3,
            'netto'  => 6,
            'lock'   => 0,
            'clear'  => 0,
            'cook'   => 0,
            'fry'    => 0,
            'stew'   => 1,
            'bake'   => 0,
        ],
    ],
];

$data = sendRequest($url, 'post', $prepack);

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

{  
  "response":177
}

Метод создаёт полуфабрикат

HTTP запрос

GET https://{account}.joinposter.com/api/menu.createPrepack

GET-параметры запроса menu.createPrepack

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createDish

Параметр Описание
product_name Название полуфабриката. Должно быть уникальным.
ingredient Ингредиенты входящие в состав полуфабриката
product_production_description Опциональный параметр, описание процесса приготовления.

Внутри параметра ingredients лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
id Id ингредиента или полуфабриката
type Тип элемента полуфабриката: 1 — ингредиент, 2 — полуфабрикат
brutto Брутто элемента полуфабриката
netto Нетто элемента полуфабриката
lock Зависимость нетто от брутто: 0 — ручная, 1 — автоматическая
clear Признак, что используется метод приготовления «очистка»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
cook Признак, что используется метод приготовления «запекание»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
fry Признак, что используется метод приготовления «жарка»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
stew Признак, что используется метод приготовления «тущение»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
bake Признак, что используется метод приготовления «варка»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
Параметр Описание
response Id созданного полуфабриката в таблице товаров

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updatePrepack'
    . '?token=4164553abf6a031302898da7800b59fb';

$prepack = [
    'prepack_id' => 919,
    'product_name' => 'Блины',
    'ingredient'   => [
        [
            'id'     => 88,
            'type'   => 1,
            'brutto' => 3,
            'netto'  => 6,
            'lock'   => 0,
            'clear'  => 0,
            'cook'   => 0,
            'fry'    => 0,
            'stew'   => 1,
            'bake'   => 0,
        ],
    ],
];

$data = sendRequest($url, 'post', $prepack);

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

{  
  "response": 919
}

Метод изменяет свойства полуфабриката

HTTP запрос

GET https://{account}.joinposter.com/api/menu.updatePrepack

GET-параметры запроса menu.updatePrepack

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updatePrepack

Параметр Описание
prepack_id Id полуфабриката
product_name Название полуфабриката
product_production_description Описание процесса приготовления
ingredient Ингредиенты входящие в состав полуфабриката

Внутри параметра ingredients лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
id Id ингредиента или полуфабриката
type Тип элемента полуфабриката: 1 — ингредиент, 2 — полуфабрикат
brutto Брутто элемента полуфабриката
netto Нетто элемента полуфабриката
lock Зависимость нетто от брутто: 0 — ручная, 1 — автоматическая
clear Признак, что используется метод приготовления «очистка»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
cook Признак, что используется метод приготовления «запекание»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
fry Признак, что используется метод приготовления «жарка»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
stew Признак, что используется метод приготовления «тущение»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
bake Признак, что используется метод приготовления «варка»: 0 — не используется, 1 — используется. По умолчанию принимает 0.
Параметр Описание
response Id изменённого полуфабриката в таблице товаров

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removePrepack'
 . '?token=4164553abf6a031302898da7800b59fb';

$prepack = [
    'prepack_id' => 177,
];

$data = sendRequest($url, 'post', $prepack);

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

{  
  "response":true
}

Метод удаляет полуфабрикат

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removePrepack

GET-параметры запроса menu.removePrepack

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removePrepack

Параметр Описание
prepack_id Id полуфабриката
Параметр Описание
response true, если полуфабрикат успешно удалён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getIngredients'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "ingredient_id":"91",
      "ingredient_name":"Jack Daniels",
      "category_id":"3",
      "ingredient_left":"443.45000",
      "limit_value":"0",
      "time_notif":"0",
      "ingredient_unit":"l",
      "ingredient_weight":0,
      "ingredients_losses_clear":"0",
      "ingredients_losses_cook":"0",
      "ingredients_losses_fry":"0",
      "ingredients_losses_stew":"0",
      "ingredients_losses_bake":"0",
      "ingredients_type":"1",
      "partial_write_off":"0"
    },
    {  
      "ingredient_id":"73",
      "ingredient_name":"Авокадо",
      "category_id":"0",
      "ingredient_left":"22.00000",
      "limit_value":"0",
      "time_notif":"0",
      "ingredient_unit":"kg",
      "ingredient_weight":0,
      "ingredients_losses_clear":"11",
      "ingredients_losses_cook":"0",
      "ingredients_losses_fry":"0",
      "ingredients_losses_stew":"0",
      "ingredients_losses_bake":"0",
      "ingredients_type":"1",
      "partial_write_off":"0"
    },
    {  
      "ingredient_id":"74",
      "ingredient_name":"Айсберг с-т",
      "category_id":"0",
      "ingredient_left":"379.09000",
      "limit_value":"0",
      "time_notif":"0",
      "ingredient_unit":"kg",
      "ingredient_weight":0,
      "ingredients_losses_clear":"10",
      "ingredients_losses_cook":"0",
      "ingredients_losses_fry":"0",
      "ingredients_losses_stew":"0",
      "ingredients_losses_bake":"0",
      "ingredients_type":"1",
      "partial_write_off":"0"
    }
  ]
}

Метод возвращает список ингредиентов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getIngredients

GET-параметры запроса menu.getIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
id_1c Опциональный параметр, если значение true — возвращает в ответе id категории товаров в системе 1С. По умолчанию не передаётся.
Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
ingredient_id Id ингредиента
ingredient_name Название ингредиента
category_id Id категории в которой находится ингредиент
ingredient_left Остаток по ингредиенту
limit_value Лимит по ингредиенту на складе
time_notif Время последнего уведомления о достижения лимита по ингредиенту на складе
ingredient_unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
ingredient_weight Вес ингредиента, если ингредиент штучный
ingredients_losses_clear Коэффициент потерь при очистке ингредиента, если ингредиент не штучный
ingredients_losses_cook Коэффициент потерь при запекании ингредиента, если ингредиент не штучный
ingredients_losses_fry Коэффициент потерь при жарке ингредиента, если ингредиент не штучный
ingredients_losses_stew Коэффициент потерь при тущении ингредиента, если ингредиент не штучный
ingredients_losses_bake Коэффициент потерь при варке ингредиента, если ингредиент не штучный
ingredients_type Тип ингредиента: 1 — ингредиент, 2 - системный ингредиент
partial_write_off Признак, что можно списывать штучный ингредиент, как дробный: 0 — нельзя, 1 — можно
id_1c Id ингредиента в системе 1С
delete Признак, что ингредиент удалён: 0 — не удалён, 1 — удалён
hidden Признак, что ингредиент скрыт: 0 — не скрыт, 1 — скрыт

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getIngredient'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&ingredient_id=91'
 . '&1c=true';

$data = sendRequest($url);

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

{  
  "response":{  
    "ingredient_id":"91",
    "ingredient_name":"Jack Daniels",
    "category_id":"3",
    "ingredient_left":"442.85000",
    "limit_value":"0",
    "time_notif":"0",
    "ingredient_unit":"l",
    "ingredient_weight":0,
    "ingredients_losses_clear":"0",
    "ingredients_losses_cook":"0",
    "ingredients_losses_fry":"0",
    "ingredients_losses_stew":"0",
    "ingredients_losses_bake":"0",
    "ingredients_type":"1",
    "partial_write_off":"0",
    "id_1c":"d70b49a7-0097-11e6-9c83-028037ec0200",
    "delete":"0",
    "hidden":"0"
  }
}

Метод возвращает свойства ингредиента

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getIngredient

GET-параметры запроса menu.getIngredient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
ingredient_id Id ингредиента
1c Опциональный параметр, если значение true — возвращает в ответе id категории товаров в системе 1С. По умолчанию не передаётся.
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
ingredient_id Id ингредиента
ingredient_name Название ингредиента
category_id Id категории в которой находится ингредиент
ingredient_left Остаток по ингредиенту
limit_value Лимит по ингредиенту на складе
time_notif Время последнего уведомления о достижения лимита по ингредиенту на складе
ingredient_unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
ingredient_weight Вес ингредиента, если ингредиент штучный
ingredients_losses_clear Коэффициент потерь при очистке ингредиента, если ингредиент не штучный
ingredients_losses_cook Коэффициент потерь при запекании ингредиента, если ингредиент не штучный
ingredients_losses_fry Коэффициент потерь при жарке ингредиента, если ингредиент не штучный
ingredients_losses_stew Коэффициент потерь при тущении ингредиента, если ингредиент не штучный
ingredients_losses_bake Коэффициент потерь при варке ингредиента, если ингредиент не штучный
ingredients_type Тип ингредиента: 1 — ингредиент, 2 - системный ингредиент
partial_write_off Признак, что можно списывать штучный ингредиент, как дробный: 0 — нельзя, 1 — можно
id_1c Id ингредиента в системе 1С
delete Признак, что ингредиент удалён: 0 — не удалён, 1 — удалён
hidden Признак, что ингредиент скрыт: 0 — не скрыт, 1 — скрыт

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createIngredient'
 . '?token=4164553abf6a031302898da7800b59fb';

$ingredient = [
    'ingredient_name'   => 'Клубника',
    'category_id'       => 4,
    'type'              => 'p',
    'weight_ingredient' => 200,
];

$data = sendRequest($url, 'post', $ingredient);

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

{  
  "response":811
}

Метод создаёт ингредиент

HTTP запрос

GET https://{account}.joinposter.com/api/menu.createIngredient

GET-параметры запроса menu.createIngredient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createIngredient

Параметр Описание
ingredient_name Название ингредиента
category_id Id категории ингредиента
type Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
weight_ingredient Вес ингредиента, если ингредиент штучный
loss_clear Коэффициент потерь при очистке ингредиента, если ингредиент не штучный
loss_cook Коэффициент потерь при запекании ингредиента, если ингредиент не штучный
loss_fry Коэффициент потерь при жарке ингредиента, если ингредиент не штучный
loss_stew Коэффициент потерь при тущении ингредиента, если ингредиент не штучный
loss_bake Коэффициент потерь при варке ингредиента, если ингредиент не штучный
partial_write_off Признак, что можно списывать штучный ингредиент, как дробный: 0 — нельзя, 1 — можно
Параметр Описание
response Id созданного ингредиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updateIngredient'
 . '?token=4164553abf6a031302898da7800b59fb';

$ingredient = [
    'id'                => 811,
    'ingredient_name'   => 'Лимон',
    'category_id'       => 4,
    'type'              => 'p',
    'weight_ingredient' => 150,
];

$data = sendRequest($url, 'post', $ingredient);

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

{  
  "response": 811
}

Метод изменяет свойства ингредиента

HTTP запрос

GET https://{account}.joinposter.com/api/menu.updateIngredient

GET-параметры запроса menu.updateIngredient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updateIngredient

Параметр Описание
id Id ингредиента
ingredient_name Название ингредиента
category_id Id категории ингредиента
type Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры. Нельзя менять единицу измерения ингредиента, если он уже поставлялся на склад.
weight_ingredient Вес ингредиента, если ингредиент штучный
loss_clear Коэффициент потерь при очистке ингредиента, если ингредиент не штучный
loss_cook Коэффициент потерь при запекании ингредиента, если ингредиент не штучный
loss_fry Коэффициент потерь при жарке ингредиента, если ингредиент не штучный
loss_stew Коэффициент потерь при тущении ингредиента, если ингредиент не штучный
loss_bake Коэффициент потерь при варке ингредиента, если ингредиент не штучный
partial_write_off Признак, что можно списывать штучный ингредиент, как дробный: 0 — нельзя, 1 — можно
Параметр Описание
response Id изменённого ингредиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.set1cIngredientId'
 . '?token=4164553abf6a031302898da7800b59fb';

$ingredient = [
    'id' => [
        [
            'ingredient_id' => 48,
            'id_1c'         => 'b80ffc81-0fc9-11e7-9ab4-ace01035e460',
        ],
    ],
];

$data = sendRequest($url, 'post', $ingredient);

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

{  
  "success":1
}

Метод изменяет id ингредиета в системе 1С

HTTP запрос

GET https://{account}.joinposter.com/api/menu.set1cIngredientId

GET-параметры запроса menu.set1cIngredientId

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.set1cIngredientId

Параметр Описание
id Массив из объектов

В свою очередь, каждый объект должен содержать следующие свойства:

Параметр Описание
ingredient_id Id ингредиета
id_1c Id ингредиета в системе 1С
Параметр Описание
success 1, если id ингредиета в системе 1С успешно изменён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removeIngredient'
 . '?token=4164553abf6a031302898da7800b59fb';

$ingredient = [
    'ingredient_id' => 811,
];

$data = sendRequest($url, 'post', $ingredient);

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

{  
  "response":true
}

Метод удаляет ингредиет

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removeIngredient

GET-параметры запроса menu.removeIngredient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removeIngredient

Параметр Описание
ingredient_id Id ингредиета
Параметр Описание
response true, если ингредиет успешно удалён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getCategoriesIngredients'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&1c=true';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "category_id":"3",
      "name":"Алкоголь",
      "id_1c":"b80ffc81-0fc9-11e7-9ab4-ace01035e460"
    },
    {  
      "category_id":"2",
      "name":"Мясо",
      "id_1c":null
    },
    {  
      "category_id":"1",
      "name":"Овощи",
      "id_1c":null
    },
    {  
      "category_id":"4",
      "name":"Фрукты",
      "id_1c":null
    }
  ]
}

Метод возвращает список категорий ингредиентов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getCategoriesIngredients

GET-параметры запроса menu.getCategoriesIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
1c Опциональный параметр, если значение true — возвращает в ответе id категории товаров в системе 1С. По умолчанию не передаётся.
Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
category_id Id категории ингредиентов
category_name Название категории ингредиентов
id_1c Id категории ингредиентов в системе 1С

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getCategoryIngredients'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&category_id=3'
 . '&1c=true';

$data = sendRequest($url);

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

{  
  "response":{  
    "category_id":"3",
    "name":"Алкоголь",
    "id_1c":"b80ffc81-0fc9-11e7-9ab4-ace01035e460"
  }
}

Метод возвращает свойства категории ингредиентов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getCategoryIngredients

GET-параметры запроса menu.getCategoryIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
category_id Id категории ингредиентов
1c Опциональный параметр, если значение true — возвращает в ответе id категории товаров в системе 1С. По умолчанию не передаётся.
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
category_id Id категории ингредиентов
category_name Название категории ингредиентов
id_1c Id категории ингредиентов в системе 1С

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createCategoryIngredients'
 . '?token=4164553abf6a031302898da7800b59fb';

$category_ingredients = [
    'category_name' => 'Овощи',
];

$data = sendRequest($url, 'post', $category_ingredients);

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

{  
  "response":27
}

Метод создаёт категорию ингредиентов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.createCategoryIngredients

GET-параметры запроса menu.createCategoryIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createCategoryIngredients

Параметр Описание
category_name Название категории ингредиентов
Параметр Описание
response Id созданной категории ингредиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.updateCategoryIngredients'
 . '?token=4164553abf6a031302898da7800b59fb';

$category_ingredients = [
    'category_id'   => 2,
    'category_name' => 'Фрукты',
];

$data = sendRequest($url, 'post', $category_ingredients);

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

{  
  "response": 2
}

Метод изменяет свойства категории ингредиентов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.updateCategoryIngredients

GET-параметры запроса menu.updateCategoryIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updateCategoryIngredients

Параметр Описание
category_id Id категории ингредиентов
category_name Новое название категории ингредиентов
Параметр Описание
response Id изменённой категории ингредиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.set1cCategoryIngredientsId'
 . '?token=4164553abf6a031302898da7800b59fb';

$category_ingredients = [
    'id' => [
        [
            'category_id' => 3,
            'id_1c'       => 'b80ffc81-0fc9-11e7-9ab4-ace01035e460',
        ],
    ],
];

$data = sendRequest($url, 'post', $category_ingredients);

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

{  
  "success":1
}

Метод изменяет id категории ингредиентов в системе 1С

HTTP запрос

GET https://{account}.joinposter.com/api/menu.set1cCategoryIngredientsId

GET-параметры запроса menu.set1cCategoryIngredientsId

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.set1cCategoryIngredientsId

Параметр Описание
id Массив из объектов

В свою очередь, каждый объект должен содержать следующие свойства:

Параметр Описание
category_id Id категории ингредиентов
id_1c Id категории ингредиентов в системе 1С
Параметр Описание
success 1, если id категории ингредиентов в системе 1С успешно изменён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removeCategoryIngredients'
 . '?token=4164553abf6a031302898da7800b59fb';

$category_ingredients = [
    'category_id'      => 2,
    'with_ingredients' => 1,
];

$data = sendRequest($url, 'post', $category_ingredients);

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

{  
  "success":"successful delete category"
}

Метод удаляет категорию ингредиентов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removeCategoryIngredients

GET-параметры запроса menu.removeCategoryIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removeCategoryIngredients

Параметр Описание
category_id Id категории ингредиентов
with_ingredients Признак, удалять ли ингредиенты в категории: 0 — не удалять, 1 — удалять. По умолчанию принимает 0.
Параметр Описание
success Сообщение об успешном удалении

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getWorkshops'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "workshop_id":"1",
      "workshop_name":"Бар",
      "delete":"0"
    },
    {  
      "workshop_id":"2",
      "workshop_name":"Кухня",
      "delete":"0"
    },
    {  
      "workshop_id":"3",
      "workshop_name":"Кондитерская",
      "delete":"0"
    },
    {  
      "workshop_id":"4",
      "workshop_name":"Кальян",
      "delete":"0"
    }
  ]
}

Метод возвращает список цехов

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getWorkshops

GET-параметры запроса menu.getWorkshops

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
workshop_id Id цеха
workshop_name Название цеха
delete Признак, удалён ли цех: 0 — не удалён, 1 — удалён

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

<?php
$url = 'https://demo.joinposter.com/api/menu.getWorkshop'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&workshop_id=1';

$data = sendRequest($url);

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

{  
  "response":{  
    "workshop_id":"1",
    "workshop_name":"Бар",
    "delete":"0"
  }
}

Метод возвращает свойства цеха

HTTP запрос

GET https://{account}.joinposter.com/api/menu.getWorkshop

GET-параметры запроса menu.getWorkshop

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
workshop_id Id цеха
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
workshop_id Id цеха
workshop_name Название цеха
delete Признак, удалён ли цех: 0 — не удалён, 1 — удалён

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

<?php
$url = 'https://api-demo.joinposter.com/api/menu.createWorkshop'
 . '?token=4164553abf6a031302898da7800b59fb';

$workshop = [
    'workshop_name' => 'Мангал',
];

$data = sendRequest($url, 'post', $workshop);

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

{  
  "response":5
}

Метод создаёт цех

HTTP запрос

GET https://{account}.joinposter.com/api/menu.createWorkshop

GET-параметры запроса menu.createWorkshop

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.createWorkshop

Параметр Описание
workshop_name Обязательный параметр, название цеха
Параметр Описание
response Id созданного цеха

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

<?php
$url = 'https://demo.joinposter.com/api/menu.updateWorkshop'
 . '?token=4164553abf6a031302898da7800b59fb';

$workshop = [
    'workshop_id'  => 5,
    'product_name' => 'Суши',
];

$data = sendRequest($url, 'post', $workshop);

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

{  
  "response":5
}

Метод изменяет свойства цеха

HTTP запрос

GET https://{account}.joinposter.com/api/menu.updateWorkshop

GET-параметры запроса menu.updateWorkshop

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.updateWorkshop

Параметр Описание
workshop_id Id цеха
workshop_name Название цеха
Параметр Описание
response Id изменённого цеха

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

<?php
$url = 'https://demo.joinposter.com/api/menu.removeWorkshop'
 . '?token=4164553abf6a031302898da7800b59fb';

$workshop = [
    'workshop_id' => 2,
];

$data = sendRequest($url, 'post', $workshop);

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

{  
  "response":true
}

Метод удаляет цех

HTTP запрос

GET https://{account}.joinposter.com/api/menu.removeWorkshop

GET-параметры запроса menu.removeWorkshop

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса menu.removeWorkshop

Параметр Описание
workshop_id Id цеха
Параметр Описание
response true, если цех успешно удалён

storage: Склад

Все методы по работе с разделом склад начинаются со storage.

storage.getManufactures: Список производств

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

<?
$url = 'https://apidemo.joinposter.com/api/storage.getManufactures'
  . '?format=json'
  . '&token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "manufacture_id":"4",
      "storage_name":"Склад 1",
      "storage_id":"1",
      "user_id":"4",
      "date":"2016-12-26 14:45:00",
      "sum":70.35,
      "products":[
        {
          "ingredient_id":"205",
          "product_id":"134",
          "product_name":"Чай цветочный 360мл",
          "product_num":"3.0000",
          "type":"2"
        },
        {
          "ingredient_id":"204",
          "product_id":"137",
          "product_name":"Чай черный с чабрецом 360мл",
          "product_num":"2.0000",
          "type":"2"
        }
      ]
    },
    {
      "manufacture_id":"2",
      "storage_name":"Склад 1",
      "storage_id":"1",
      "user_id":"4",
      "date":"2016-12-26 14:44:00",
      "sum":"32.44",
      "products":[
        {
          "ingredient_id":"200",
          "product_id":"109",
          "product_name":"Американо 360мл",
          "product_num":"1.0000",
          "type":"2"
        }
      ]
    }
  ]
}

Запрос на получение списка всех производств.

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getManufactures

GET-параметры запроса storage.getManufactures

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен
num Количество производств, которое необходимо получить
offset Сколько записей необходимо пропустить от начала списка

Параметры ответа storage.getManufactures

Параметр Описание
manufacture_id id производства
storage_name Название склада
storage_id id склада
user_id id пользователя, который осуществил производство
date Дата производства
sum Общая сумма производства (в гривнах/рублях)
products Список тех.карт/полуфабрикатов, которые входят в производство

Содержимое параметра products

Под словом сущность подразумевается тех.карта или полуфабрикат. Когда сущность производится в первый раз, то она получает уникальный ingredient_id, по которому можно будет получить её остатки на складах.

Параметр Описание
ingredient_id уникальный ingredient_id сущности
product_id id сущности
product_name Название сущности
product_num Количество в шт, кг или литрах
type Тип сущности: 1 — полуфабрикат, 2 — тех.карта

storage.getManufacture: Данные производства

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

<?
$url = 'https://api-demo.joinposter.com/api/storage.getManufacture' 
  . '?format=json'
  . '&token=4164553abf6a031302898da7800b59fb'
  . '&manufacture_id=4';

$data = sendRequest($url);

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

{
  "response":{
    "manufacture_id":"4",
    "storage_name":"Склад 1",
    "storage_id":"1",
    "user_id":"4",
    "date":"2016-12-26 14:45:00",
    "sum":70.35,
    "products":[
      {
        "ingredient_id":"205",
        "product_id":"134",
        "product_name":"Чай цветочный 360мл",
        "product_num":"3.0000",
        "type":"2"
      },
      {
        "ingredient_id":"204",
        "product_id":"137",
        "product_name":"Чай черный с чабрецом 360мл",
        "product_num":"2.0000",
        "type":"2"
      }
    ]
  }
}

Запрос возвращает данные конкретного производства.

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getManufacture

GET-параметры запроса storage.getManufacture

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен
manufacture_id Id производства, для которого необходимо вернуть детальные данные

Параметры ответа storage.getManufacture

Параметр Описание
manufacture_id id производства
storage_name Название склада
storage_id id склада
user_id id пользователя, который осуществил производство
date Дата производства
sum Общая сумма производства в гривнах\рублях
products Список тех.карт/полуфабрикатов, которые входят в производство

Содержимое параметра products

Под словом сущность подразумевается тех. карта или полуфабрикат. Когда сущность производится в первый раз, то она получает уникальный ingredient_id, по которому можно будет получить её остатки на складах.

Параметр Описание
ingredient_id уникальный ingredient_id сущности
product_id id сущности
product_name Название сущности
product_num Количество в шт, кг или литрах
type Тип сущности: 1 — полуфабрикат, 2 — тех.карта

storage.createManufacture: Создание производства

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

<?
$url = 'https://api-demo.joinposter.com/api/storage.createManufacture' 
  . '?format=json'
  . '&token=4164553abf6a031302898da7800b59fb';

$manufacture = [
    "date"          => "2016-12-21 11:12:54",
    "storage_id"    => 1,
    "products"      => [
        [
            "id"    => 64,
            "type"  => 1,
            "num"   => 3
        ],
        [
            "id"    => 65,
            "type"  => 1,
            "num"   => 25
        ],
    ]
];

$data = sendRequest($url, 'post', $manufacture, true);

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

{
  "response":6
}

Запрос создает производство тех.карт и полуфабрикатов

HTTP запрос

POST https://{account}.joinposter.com/api/storage.createManufacture

GET-параметры запроса storage.createManufacture

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен

POST-параметры запроса storage.createManufacture

Параметр Описание
date Дата производства
storage_id id склада
products Список тех.карт или полуфабрикатов, которые входят в производство

Содержимое параметра products

Под словом сущность подразумевается тех.карта или полуфабрикат. Когда сущность производится в первый раз, то она получает уникальный ingredient_id, по которому можно будет получить её остатки на складах.

Параметр Описание
id id сущности
num Количество в шт или кг
type Тип сущности: 1 — полуфабрикат, 2 — тех.карта

Параметры ответа storage.createManufacture

Параметр Описание
response id созданного производства

storage.updateManufacture: Изменение данных производства

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

<?
$url = 'https://api-demo.joinposter.com/api/storage.updateManufacture?' .
  'format=json&token=4164553abf6a031302898da7800b59fb';

$manufacture = [
    "manufacture_id"  => 7,
    "date"            => "2016-12-21 12:12:54",
    "storage_id"      => 1,
    "products" => [
        [
            "id"    => 64,
            "type"  => 1,
            "num"   => 3
        ],
        [
            "id"    => 65,
            "type"  => 1,
            "num"   => 25
        ],
  ]
];

$manufacture_id = sendRequest($url, 'post', $manufacture, true);

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

{
  "response":6
}

Запрос позволяет изменить данные существующего производства.

HTTP запрос

POST https://{account}.joinposter.com/api/storage.updateManufacture

GET-параметры запроса storage.updateManufacture

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен

POST-параметры запроса storage.updateManufacture

Параметр Описание
manufacture_id id изменяемого производства
date Дата производства
storage_id id склада
products Список тех.карт/полуфабрикатов, которые входят в производство

Содержимое параметра products

Под словом сущность подразумевается тех.карта или полуфабрикат. Когда сущность производится в первый раз, то она получает уникальный ingredient_id, по которому можно будет получить её остатки на складах.

Параметр Описание
id id сущности
num Количество (в шт/кг)
type Тип сущности: 1 — полуфабрикат, 2 — тех.карта

Параметры ответа storage.updateManufacture

Параметр Описание
response id измененного производства

storage.getMoves: Получить все перемещения

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getMoves'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "moving_id":4,
      "date":"2017-11-16 21:34:00",
      "from_storage":1,
      "from_storage_name":"Склад Кухня",
      "to_storage":2,
      "to_storage_name":"Склад Бар",
      "user_id":7,
      "user_name":"Vladimir",
      "sum":150.65
    }
  ]
}

Метод возвращает все перемещения

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getMoves

GET-параметры запроса storage.getMoves

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.

Параметры ответа storage.getMoves

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
moving_id id перемещения
date Дата перемещения
from_stoarge id склада с которого делали перемещение
from_storage_name Название склада с которого делали перемещение
to_storge id склада на который делали перемещение
to_storage_name Название склада на который делали перемещение
user_id id пользователя который делал перемещение
user_name Имя пользователя который делал перемещение
sum Сумма перемещения в гривнах\рублях

storage.getMove: Получить содержимое перемещения

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getMove'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&move_id=2';

$data = sendRequest($url);

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

{
  "response":[
    {
      "moving_id":2,
      "date":"2016-10-30 12:40:00",
      "from_storage":1,
      "from_storage_name":"Склад Кухня",
      "to_storage":2,
      "to_storage_name":"Склад Бар",
      "user_id":7,
      "user_name":"Poster Root",
      "sum":59.31,
      "ingredients":[
        {
          "link_id":2,
          "ingredient_id":12,
          "product_id":142,
          "ingredient_num":10,
          "ingredient_sum":7.08,
          "type":1,
          "write_off_id":1216696,
          "packing_id":1
        },
        {
          "link_id":3,
          "ingredient_id":91,
          "ingredient_num":1,
          "ingredient_sum":52.23,
          "type":10,
          "write_off_id":1216697,
          "packing_id":2
        }
      ]
    }
  ]
}

Метод возвращает содержимое перемещения, включая ингредиенты и товары

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getMove

GET-параметры запроса storage.getMove

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
move_id Обязательный параметр, id перемещения
timezone Опциональный параметры, если равен client то дата возвращается в часовом поясе аккаунта.

Параметры ответа storage.getMove

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
moving_id id перемещения
date Дата перемещения
from_stoarge id склада с которого делали перемещение
from_storage_name Название склада с которого делали перемещение
to_storge id склада на который делали перемещение
to_storage_name Название склада на который делали перемещение
user_id id пользователя который делал перемещение
user_name Имя пользователя который делал перемещение
sum Сумма перемещения в гривнах\рублях
ingredients Список переносимых ингредиентов

Внутри параметра ingredients лежит массив объектов, внутри каждого объекта есть следующие параметры:

Параметр Описание
ingredient_id id ингредиента
product_id id товара, если это товар, модификатор, тех-карта или полуфабрикат
modificator_id id модификатора, если это модификатор
ingredient_num Количество ингредиента
ingredient_sum Стоимость перемещенного ингредиента в гривнах\рублях
type Тип ингредиента: 1 — товар, 10 — ингредиент, 8 — модификатор товара, 2 — производимая тех-карта, 3 — производимый полуфабрикат
packing_id id фасовки

storage.createMoving: Создание перемещения

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.createMoving'
 . '?token=4164553abf6a031302898da7800b59fb';

$moving = [
    "moving" => [
        "date"          => "2015-11-18 22:35:54",
        "from_storage"  => "1",
        "to_storage"    => "2"
    ],
    "ingredient" => [
        [
            "id"        => "138",
            "type"      => "1",
            "num"       => "3",
            "sum"       => "6",
        ]
    ]
];

$data = sendRequest($url, 'post', $moving);

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

{
  "success":1,
  "response":5
}

Метод создает перемещение

HTTP запрос

POST https://{account}.joinposter.com/api/storage.createMoving

GET-параметры запроса storage.createMoving

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.createMoving

Параметр Описание
date Дата и время списания в формате Ymd
from_storage_id id склада c которого делаем перемещение
to_storage_id id склада на который делаем перемещение
ingredient Массив объектов для перемещения

Каждый объект массива ingredient содержит следующие параметры

Параметр Описание
id id ингредиента, товара или модификатора товара
type Тип списываемого объекта: товар — 1, ингредиент — 4, модификатор товара — 5
num Количество списываемого ингредиента
reason Опциональный параметр, причина списания
packing Опциональный параметр, id фасовки
sum Цена за единицу в гривнах\рублях

Параметры ответа storage.createMoving

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет
response id созданного перемещения

storage.updateMoving: Изменение перемещения

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.updateMoving'
 . '?token=4164553abf6a031302898da7800b59fb';

$moving = [
    "moving" => [
        "moving_id"     => "16",
        "date"          => "2015-11-18 22:35:54",
        "from_storage"  => "1",
        "to_storage"    => "2"
    ],
    "ingredient" => [
        [
            "id"        => "138",
            "type"      => "1",
            "num"       => "3",
            "sum"       => "6",
        ]
    ]
];

$data = sendRequest($url, 'post', $moving);

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

{
  "success":1,
  "response":16
}

Метод изменяет перемещение

HTTP запрос

POST https://{account}.joinposter.com/api/storage.updateMoving

GET-параметры запроса storage.updateMoving

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.updateMoving

Параметр Описание
moving_id id перемещения которое редактируем
date Дата и время списания в формате Ymd
from_storage_id id склада c которого делаем перемещение
to_storage_id id склада на который делаем перемещение
ingredient Массив объектов для перемещения

Каждый объект массива ingredient содержит следующие параметры

Параметр Описание
id id ингредиента, товара или модификатора товара
type Тип списываемого объекта: товар — 1, ингредиент — 4, модификатор товара — 5
num Количество списываемого ингредиента
reason Опциональный параметр, причина списания
packing Опциональный параметр, id фасовки
sum Цена за единицу в гривнах\рублях

Параметры ответа storage.updateMoving

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет
response id обновленного перемещения

storage.deleteMoving: Удаление перемещения

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.deleteMoving'
    . '?token=4164553abf6a031302898da7800b59fb';

$delete = [
    'moving_id' => 7
];

$data = sendRequest($url, 'post', $delete);

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

{
  "success":1
}

Метод удаляет перемещение

HTTP запрос

POST https://{account}.joinposter.com/api/storage.deleteMoving

GET-параметры запроса storage.deleteMoving

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.deleteMoving

Параметр Описание
moving_id id перемещения для удаления

Параметры ответа storage.deleteMoving

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет

storage.getSupplies: Получить все поставки

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getSupplies'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "supply_id":"48",
      "storage_id":"1",
      "supplier_id":"1",
      "date":"2017-11-17 08:09:33",
      "supply_sum":"1800",
      "supply_comment":"",
      "storage_name":"Склад Кухня",
      "supplier_name":"Закупщик",
      "delete":"1",
      "account_id":null
    },
    {
      "supply_id":"47",
      "storage_id":"1",
      "supplier_id":"1",
      "date":"2017-05-18 09:11:00",
      "supply_sum":"300000",
      "supply_comment":"",
      "storage_name":"Склад Кухня",
      "supplier_name":"Закупщик",
      "delete":"0",
      "account_id":null
    },
    {
      "supply_id":"46",
      "storage_id":"1",
      "supplier_id":"1",
      "date":"2017-05-18 09:07:00",
      "supply_sum":"669882890",
      "supply_comment":"",
      "storage_name":"Склад Кухня",
      "supplier_name":"Закупщик",
      "delete":"0",
      "account_id":null
    }
  ]
}

Метод возвращает все поставки

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getSupplies

GET-параметры запроса storage.getSupplies

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.
limit Опциональный параметр, количество поставок, которое необходимо получить. Если используется dateFrom и dateTo то этот параметр игнорируется.
offset Опциональный параметр, сколько записей необходимо пропустить от начала списка. По умолчанию, будут выданы все поставки. Если используется dateFrom и dateTo то этот параметр игнорируется.

Параметры ответа storage.getSupplies

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
supply_id id поставки
storage_id id склада на который поставляли
supplier_id id поставщика
date Дата поставки
account_id id финансового счёта с которого списали поставку
supply_sum Сумма поставки в копейках
supply_comment Комментарий
storage_name Название склада
supplier_name Имя поставщика
delete Признак удалена ли поставка: 1 — удалена, 0 — нет

storage.createSupply: Создание поставки

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.createSupply'
    . '?token=4164553abf6a031302898da7800b59fb';

$supply = [
    "supply" => [
        "supplier_id"   => "1",
        "storage_id"    => "1",
        "date"          => date("Y-m-d H:i:s"),
        "from_storage"  => "1",
        "to_storage"    => "2"
    ],
    "ingredient" => [
        [
            "id"        => "138",
            "type"      => "1",
            "num"       => "3",
            "sum"       => "6",
        ]
    ]
];

$data = sendRequest($url, 'post', $supply);

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

{
  "success":1,
  "response":7
}

Метод создает поставку

HTTP запрос

POST https://{account}.joinposter.com/api/storage.createSupply

GET-параметры запроса storage.createSupply

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.createSupply

Параметр Описание
date Дата поставки в формате Y-m-d H:i:s
supplier_id id поставщика
storage_id id склада на который делаем поставку
account_id Опциональный параметр, id счета в бухгалтерии к которому привязываем поставку
ingredient Массив объектов для поставки

Каждый объект массива ingredient содержит следующие параметры

Параметр Описание
id id ингредиента, товара или модификатора товара
type Тип списываемого объекта: товар — 1, ингредиент — 4, модификатор товара — 5
num Количество списываемого ингредиента
sum Цена за единицу в гривнах\рублях
packing Опциональный параметр, id фасовки

Параметры ответа storage.createSupply

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет
response id созданного перемещения

storage.updateSupply: Изменение поставки

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.updateSupply'
 . '?token=4164553abf6a031302898da7800b59fb';

$supply = [
    "supply" => [
        "supply_id"     => "51",
        "supplier_id"   => "1",
        "storage_id"    => "1",
        "date"          => date("Y-m-d H:i:s"),
    ],
    "ingredient" => [
        [
            "id"        => "138",
            "type"      => "1",
            "num"       => "3",
            "sum"       => "6",
        ]
    ]
];

$data = sendRequest($url, 'post', $supply);

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

{
  "success":1,
  "response":"51"
}

Метод изменяет поставку

HTTP запрос

POST https://{account}.joinposter.com/api/storage.updateSupply

GET-параметры запроса storage.updateSupply

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.updateSupply

Параметр Описание
supply_id id поставки которую редактируем
date Дата поставки в формате Y-m-d H:i:s
supplier_id id поставщика
storage_id Обязательный параметр, id склада на который делаем поставку
account_id Опциональный параметр, id счета в бухгалтерии к которому привязываем поставку
ingredient Массив объектов для поставки

Каждый объект массива ingredient содержит следующие параметры

Параметр Описание
id id ингредиента, товара или модификатора товара
type Тип списываемого объекта: товар — 1, ингредиент — 4, модификатор товара — 5
num Количество списываемого ингредиента
sum Цена за единицу в гривнах\рублях
packing Опциональный параметр, id фасовки

Параметры ответа storage.updateSupply

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет
response id обновленной поставки

storage.deleteSupply: Удаление поставки

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.deleteSupply'
 . '?token=4164553abf6a031302898da7800b59fb';

$delete = [
    'supply_id' => 7
];

$data = sendRequest($url, 'post', $delete);

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

{
  "success":1
}

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

HTTP запрос

POST https://{account}.joinposter.com/api/storage.deleteSupply

GET-параметры запроса storage.deleteSupply

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.deleteSupply

Параметр Описание
supply_id id поставки для удаления

Параметры ответа storage.deleteSupply

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет

storage.getIngredientWriteOff: Получить не ручные списания

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getIngredientWriteOff'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "write_off_id":"1518217",
      "transaction_id":"388684",
      "tr_product_id":"2125179",
      "storage_id":"1",
      "to_storage":"0",
      "ingredient_id":"936",
      "product_id":"934",
      "modificator_id":"0",
      "prepack_id":"0",
      "weight":"1.00000",
      "unit":"p",
      "cost":"0",
      "user_id":"1",
      "type":"1",
      "time":"1510668937861",
      "date":"2017-11-14 17:15:38",
      "reason":"",
      "product_name":"Fiscal Test",
      "name":"Demo"
    }
  ]
}

Метод возвращает не ручные списания

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getIngredientWriteOff

GET-параметры запроса storage.getIngredientWriteOff

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.
storage_id Опциональный параметр, id склада по которому возвращать списания. По умолчанию по всем складам.
ingredient_id Опциональный параметр, id ингредиента по которому возвращать списания. По умолчанию по всем ингредиентам.

Параметры ответа storage.getIngredientWriteOff

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
write_off_id id списания
transaction_id Номер транзакции
storage_id id склада откуда произошло списание
to_storage id склада для перемещения
ingredient_id id ингредиента
product_id id товара
modificator_id id модификатора, 0 если без модификатора
prepack_id id полуфабриката
weight Количество ингредиента
unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры
cost Общая сумма списания по этому инргедиенту в копейках. Если вам нужно узнать себестоимость, разделите cost на weight.
user_id id официанта
type Тип действия: 4 — перемещение, 1 — списание, 2 — ручное списание
time Дата списания в формате unixtimestamp
date Дата списания
product_name Название товара
name Имя официанта

storage.createWriteOff: Создание списания

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.createWriteOff'
    . '?token=4164553abf6a031302898da7800b59fb';

$writeOff = [
    "write_off" => [
        "storage_id"    => "1",
        "date"          => date("Y-m-d H:i:s"),
    ],
    "ingredient" => [
        [
            "id"        => "138",
            "type"      => "1",
            "weight"    => "3",
            "sum"       => "6",
        ]
    ]
];

$data = sendRequest($url, 'post', $writeOff);

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

{
  "success":1,
  "response":6
}

Метод создает списание

HTTP запрос

POST https://{account}.joinposter.com/api/storage.createWriteOff

GET-параметры запроса storage.createWriteOff

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.createWriteOff

Параметр Описание
date Дата поставки в формате Y-m-d H:i:s
storage_id id склада с которого делаем списание
ingredient Массив объектов для списания

Каждый объект массива ingredient содержит следующие параметры

Параметр Описание
id id ингредиента, товара или модификатора товара
type Тип списываемого объекта: товар — 1, ингредиент — 4, модификатор товара — 5
weight Количество списываемого ингредиента
sum Цена за единицу в гривнах\рублях
packing Опциональный параметр, id фасовки
reason Опциональный параметр, причина списания

Параметры ответа storage.createWriteOff

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет
response id созданного списания

storage.updateWriteOff: Изменение списания

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.updateWriteOff'
 . '?token=4164553abf6a031302898da7800b59fb';

$writeOff = [
    "write_off" => [
        "id"  => "56",
        "storage_id"    => "1",
        "date"          => date("Y-m-d H:i:s"),
    ],
    "ingredient" => [
        [
            "id"        => "138",
            "type"      => "1",
            "weight"    => "3",
            "sum"       => "6",
        ]
    ]
];

$data = sendRequest($url, 'post', $writeOff);

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

{
  "success":1,
  "response":56
}

Метод измененяет списание

HTTP запрос

POST https://{account}.joinposter.com/api/storage.updateWriteOff

GET-параметры запроса storage.updateWriteOff

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.updateWriteOff

Параметр Описание
id id списания которое редактируем
date Дата поставки в формате Y-m-d H:i:s. Дата должна находиться в инвентаризационном периоде в котором произвели списание.
storage_id id склада с которого делаем списание
ingredient Массив объектов для списания

Каждый объект массива ingredient содержит следующие параметры

Параметр Описание
id id ингредиента, товара или модификатора товара
type Тип списываемого объекта: товар — 1, ингредиент — 4, модификатор товара — 5
weight Количество списываемого ингредиента
sum Цена за единицу в гривнах\рублях
packing Опциональный параметр, id фасовки
reason Опциональный параметр, причина списания

Параметры ответа storage.updateWriteOff

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет
response id обновленного списания

storage.deleteWriteOff: Удаление списания

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.deleteWriteOff'
 . '?token=4164553abf6a031302898da7800b59fb';

$delete = [
    'write_off_id' => 60
];

$data = sendRequest($url, 'post', $delete);

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

{
  "success":1
}

Метод удаляет списание

HTTP запрос

POST https://{account}.joinposter.com/api/storage.deleteWriteOff

GET-параметры запроса storage.deleteWriteOff

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса storage.deleteWriteOff

Параметр Описание
write_off_id id списания для удаления

Параметры ответа storage.deleteWriteOff

Параметр Описание
success Статус выполнения операции: 1 — успешно, 0 — нет

storage.getPacks: Список фасовок

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

<?
$url = 'https://api-demo.joinposter.com/api/storage.getPacks' 
  . '?format=json'
  . '&token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "pack_id":"1",
      "name":"",
      "unit":"p",
      "count":"0.0000",
      "type":"0"
    },
    {
      "pack_id":"2",
      "name":"",
      "unit":"l",
      "count":"0.0000",
      "type":"0"
    },
    {
      "pack_id":"3",
      "name":"",
      "unit":"kg",
      "count":"0.0000",
      "type":"0"
    },
    {
      "pack_id":"5",
      "name":"Пак молока",
      "unit":"p",
      "count":"20.0000",
      "type":"1"
    },
    {
      "pack_id":"6",
      "name":"Вода очищенная",
      "unit":"l",
      "count":"20.0000",
      "type":"1"
    }
  ]
}

Запрос на получение списка всех фасовок.

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getPacks

GET-параметры запроса storage.getPacks

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен

Параметры ответа storage.getPacks

Параметр Описание
pack_id id фасовки
name Название фасовки
unit Единица измерения: kg — кг, p — шт, l — л
count Количество в шт, кг или литрах
type Тип фасовки: 0 — базовый, 1 — пользовательский

storage.getPack: Получить фасовку

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getPack' 
  . '?format=json'
  . '&token=4164553abf6a031302898da7800b59fb'
  . '&pack_id=4';

$data = sendRequest($url);

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

{
  "response":{
    "pack_id":"5",
    "name":"Пак молока",
    "unit":"p",
    "count":"20.0000",
    "type":"1"
  }
}

Метод возвращает данные конкретной фасовки.

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getPack

GET-параметры запроса storage.getPack

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен
pack_id Id фасовки, для которой необходимо вернуть детальные данные

Параметры ответа storage.getPack

Параметр Описание
pack_id id фасовки
name Название фасовки
unit Единица измерения: kg — кг, p — шт, l — л
count Количество в шт, кг или литрах
type Тип фасовки: 0 — базовый, 1 — пользовательский

storage.getWastes: Список ручных списаний

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

<?
$url = 'https://api-demo.joinposter.com/api/storage.getWastes'
  . '?token=4164553abf6a031302898da7800b59fb'
  . '&dateFrom=20170101'
  . '&dateTo=20180101'
  . '&1c=true';

$data = sendRequest($url);

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

{
  "response": [
    {
      "waste_id": 1,
      "total_sum": 2800,
      "user_id": 1,
      "storage_id": 1,
      "date": "2017-04-26 14:30:02",
      "delete": 0
    },
    {
      "waste_id": 2,
      "total_sum": 791,
      "user_id": 1,
      "storage_id": 1,
      "date": "2017-04-26 15:21:12",
      "delete": 1
    }
  ]
}

Запрос на получение списка всех ручных списаний.

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getWastes

GET-параметры запроса storage.getWastes

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен.
dateFrom Опциональный параметр. Дата начала выборки (Ymd). По умолчанию дата месяц назад.
dateTo Опциональный параметр. Дата конца выборки (Ymd). По умолчанию дата текущего дня.
1с_id Опциональный параметр. Позволяет возвращать ручные списания с учётом удалённых (вернёт флаг delete). В качестве значения необходимо указать true.

Параметры ответа storage.getPacks

Параметр Описание
waste_id id ручного списания
total_sum Общая сумма списания
user_id id пользователя, который произвёл списание
storage_id id склада с которого было произведено списание
date Дата списания
delete Признак что списание удалено: 1 — удалено, 0 — нет

storage.getWaste: Данные ручного списания

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getWaste'
  . '?token=4164553abf6a031302898da7800b59fb'
  . '&waste_id=1';

$data = sendRequest($url);

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

{
  "response": {
    "waste_id": 1,
    "total_sum": 2800,
    "user_id": 1,
    "storage_id": 1,
    "date": "2017-04-26 14:30:02",
    "elements": [
      {
        "type": 8,
        "product_id": 8,
        "modificator_id": 2,
        "count": 1,
        "ingredients": [
          {
            "write_off_id": 118,
            "ingredient_id": 21,
            "product_id": 8,
            "modificator_id": 2,
            "prepack_id": 0,
            "weight": 1,
            "unit": "p",
            "cost": 800
          }
        ]
      },
      {
        "type": 3,
        "product_id": 4,
        "count": 1,
        "ingredients": [
          {
            "write_off_id": 121,
            "ingredient_id": 16,
            "product_id": 4,
            "modificator_id": 0,
            "prepack_id": 0,
            "weight": 1,
            "unit": "kg",
            "cost": 500
          },
          {
            "write_off_id": 122,
            "ingredient_id": 15,
            "product_id": 4,
            "modificator_id": 0,
            "prepack_id": 0,
            "weight": 1,
            "unit": "kg",
            "cost": 1500
          }
        ]
      }
    ]
  }
}

Метод возвращает детальные данные конкретного ручного списания

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getWaste

GET-параметры запроса storage.getWaste

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен
waste_id id ручного списания для которого необходимо вернуть детальные данные

Параметры ответа storage.getPacks

Параметр Описание
waste_id id ручного списания
total_sum Общая сумма списания
user_id id пользователя, который произвёл списание
storage_id id склада с которого было произведено списание
date Дата списания
elements Список списанных сущностей.

У каждого элемента внутри elements следующие параметры:

Параметр Описание
type Тип списанной сущности: 1 — товар, 2 — тех. карта, 3 — полуфабрикат, 8 — модификатор, 10 — ингредиент
product_id id товара
modificator_id id модификатора
count Количество списанных конкретных сущностей
ingredients Массив из ингредиентов списания

У каждого элемента внутри ingredients следующие параметры:

Параметр Описание
ingredient_id id ингредиента
write_off_id id конкретного списания
prepack_id id фасовки
product_id id товара
weight Количество списания в килограммах, литрах или единицах
unit unit
cost Общая сумма списания по этому инргедиенту в копейках. Если вам нужно узнать себестоимость, разделите cost на weight.

storage.getInventoryIngredients: Получить инвентаризацию по ингредиентам

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getInventoryIngredients'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&storage_id=1';

$data = sendRequest($url);

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

{
  "response":{
    "ingredients":{
      "115":{
        "item_id":"11",
        "item":"Яблочный",
        "startrest":655,
        "startrestcurrency":8508.45,
        "income":0,
        "charges":1563,
        "writeoff":0,
        "writeoffcurrency":0,
        "estimatedrest":-908,
        "primecost":12.99,
        "factrest":"''",
        "fact_rest_in_prepack":"''",
        "fact_rest_sum":"''",
        "difference":"''",
        "diffcurrency":"''",
        "partial_write_off":"0",
        "unit":"pcs",
        "db_unit":"p"
      },
      "116":{
        "item_id":"76",
        "item":"Яйца куринные (ing)",
        "startrest":21,
        "startrestcurrency":36.54,
        "income":0,
        "charges":1699,
        "writeoff":0,
        "writeoffcurrency":0,
        "estimatedrest":-1678,
        "primecost":1.74,
        "factrest":"''",
        "fact_rest_in_prepack":"''",
        "fact_rest_sum":"''",
        "difference":"''",
        "diffcurrency":"''",
        "partial_write_off":"0",
        "unit":"pcs",
        "db_unit":"p"
      }
    },
    "manufactures":[

    ],
    "prepacks":{      
      "930":{
        "product_id":"930",
        "product_name":"Кальян с сюрпризом",
        "type":"2",
        "weight_flag":"0",
        "delete":"0",
        "factrest":0,
        "count":0,
        "cost":0,
        "saved":0
      },
      "931":{
        "product_id":"931",
        "product_name":"Маринованные грибы",
        "type":"1",
        "weight_flag":"0",
        "delete":"0",
        "factrest":0,
        "count":0,
        "cost":0,
        "saved":0
      }
    }
  }
}

Метод возвращает инвентаризацию по ингредиентам

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getInventoryIngredients

GET-параметры запроса storage.getInventoryIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
storage_id id склада, если inventory_id не указан то обязательный параметр
inventory_id id инвентаризации, если storage_id не указан то обязательный параметр

Параметры ответа storage.getInventoryIngredients

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
ingredients Массив ингредиентов
manufactures Массив производств
prepacks Массив тех. карт, и полуфабрикатов

Массив ingredients содержит объекты со следующими параметрами:

Параметр Описание
item_id id ингредиента
item Название ингредиента
startrest Начальный остаток
startrestcurrency Начальный остаток в гривнах\рублях
income Количество приходов на склад по данному ингредиенту, учитывая поставки и перемещения
charset Количество расходов по данному ингредиенту, учитывая списания, производства, продажи и перемещения
writeoff Списанное количество
writeoffcurrency Списано в гривнах\рублях
estimatedrest Плановый остаток
primecost Себестоимость в гривнах\рублях
factrest Фактический остаток
fact_rest_in_prepack Фактический остаток в блюдах и полуфабрикатах
fact_rest_in_sum Сумма фактических остатков
difference Разница в кол-ве между плановым и фактическим остатком
diffcurrency Разница в гривнах\рублях. difference * primecost
partial_write_off Признак что штучный ингредиент можно списывать как дробный: 1 — можно списывать, 0 — нет
unit Единица измерения (шт/кг/л)
db_unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры

Массив manufactures содержит объекты со следующими параметрами:

Параметр Описание
item_id id производства
item Название производства
startrest Начальный остаток в кол-ве
startrestcurrency Начальный остаток в гривнах\рублях
income Количество приходов на склад по данному ингредиенту, учитывая поставки и перемещения
charset Количество расходов по данному ингредиенту, учитывая списания, производства, продажи и перемещения
writeoff Списанное количество
writeoffcurrency Сумма списания в гривнах\рублях
estimatedrest Плановый остаток
primecost Себестоимость в гривнах\рублях
factrest Фактический остаток
fact_rest_in_prepack Фактический остаток в блюдах и полуфабрикатах
fact_rest_in_sum Сумма в гривнах\рублях фактических остатков. Разница между фактическим и плановым остатком умноженная на себестоимость.
difference Разница в кол-ве между плановым и фактическим остатком
diffcurrency Разница в гривнах\рублях. difference * primecost
unit Единица измерения (шт/кг/л)
db_unit Единица измерения ингредиента: kg — килограммы, p — штуки, l — литры

Массив prepacks содержит объекты со следующими параметрами:

Параметр Описание
product_id id тех. карты или полуфабриката
product_name Название тех. карты или полуфабриката
count Количество списанное в шт или кг
type Тип товара: 1 — полуфабрикат, 2 — тех. карта
cost Сумма списаний в гривнах\рублях
weight_flag Признак весовой тех. карты: 1 — весовая, 0 — нет
factrest Фактический остаток

storage.getStorageInventories: Получить архив инвентаризаций по складам

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getStorageInventories'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&storage_id=1';

$data = sendRequest($url);

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

{
  "response":[
    {
      "inventory_id":"3",
      "storage_id":"1",
      "date_start":"2015-08-12 19:07:08",
      "date_end":"2017-05-18 09:10:31",
      "date_set":"0000-00-00 00:00:00",
      "date_inventory":"2017-05-18 09:10:31",
      "sum":"871875648398",
      "inventory_status":"1"
    },
    {
      "inventory_id":"2",
      "storage_id":"1",
      "date_start":"2015-02-05 13:10:26",
      "date_end":"2015-08-12 19:07:08",
      "date_set":"0000-00-00 00:00:00",
      "date_inventory":"0000-00-00 00:00:00",
      "sum":"104384",
      "inventory_status":"1"
    },
    {
      "inventory_id":"1",
      "storage_id":"1",
      "date_start":"2013-08-09 16:30:13",
      "date_end":"2015-02-05 13:10:26",
      "date_set":"0000-00-00 00:00:00",
      "date_inventory":"0000-00-00 00:00:00",
      "sum":"-21236",
      "inventory_status":"1"
    }
  ]
}

Метод возвращает архив инвентаризаций по складам

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getStorageInventories

GET-параметры запроса storage.getStorageInventories

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
storage_id Обязательный параметр, id склада по которому возвращать инвентаризации

Параметры ответа storage.getStorageInventories

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
inventory_id id инвентаризации
storage_id id склада
data_start Дата начала инвентаризации
data_end Дата окончания инвентаризации
date_set Дата проведения задним числом. Если инвентаризацию проводили задним числом то соответсвует date_end.
data_inventory Реальная дата проведения инвентаризации
sum Общая сума себестоимостей товаров инвентаризации в копейках
inventory_status Статус инвентаризации: 1 — проведенная, 0 — не проведенная

storage.getStorageLeftovers: Получить все остатки на складах

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getStorageLeftovers'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "ingredient_id":"39",
      "ingredient_name":"Яблоки",
      "ingredient_left":"3143.00000",
      "limit_value":"0",
      "ingredient_unit":"p",
      "ingredients_type":"2",
      "storage_ingredient_sum":"4591923",
      "prime_cost":1461,
      "hidden":"0"
    },
    {
      "ingredient_id":"11",
      "ingredient_name":"Яблочный",
      "ingredient_left":"-908.00000",
      "limit_value":"0",
      "ingredient_unit":"p",
      "ingredients_type":"2",
      "storage_ingredient_sum":"0",
      "prime_cost":1299,
      "hidden":"0"
    },
    {
      "ingredient_id":"76",
      "ingredient_name":"Яйца куринные",
      "ingredient_left":"-1678.00000",
      "limit_value":"0",
      "ingredient_unit":"p",
      "ingredients_type":"1",
      "storage_ingredient_sum":"0",
      "prime_cost":174,
      "hidden":"0"
    }
  ]
}

Метод возвращает остатки по складам

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getStorageLeftovers

GET-параметры запроса storage.getStorageLeftovers

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
storage_id Опциональный параметр, id склада по которому возвращать остатки. Если не указан, будут выданы по все складам.
type Опциональный параметр, тип сущности по которой возвращать остатки: 1 — товар, 2 — производимая тех-карта, 3 — производимый полуфабрикат, ингредиент — 4, модификатор товара — 5. Если не указан, будут выданы по все сущностям.
category_id Опциональный параметр, id категории по которой получать ингредиенты. По умолчанию по всем категориям.
zero_leftovers Опциональный параметр, если true, метод возвращает нулевые остатки. По умолчанию, не возвращаются.

Параметры ответа storage.getStorageLeftovers

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
ingredient_id id ингредиента
ingredient_name Название ингредиента
ingredient_left Общий остаток по всем складам
limit_value Лимит на складе после привышения которого присылается оповещение
ingredient_unit Единица измерения: kg — кг, p — шт, l — л
ingredients_type Тип объекта: ингредиент — 1, 2 — товар, модификатор товара
storage_ingredient_sum Общая сумма товара на складе в копейках
prime_cost Себестоимость ингредиента в копейках
hidden Признак скрыт ли ингредиент: 1 — скрыт, 0 — нет

storage.getStorages: Получить все склады

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getStorages'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "storage_id":"1",
      "storage_name":"Склад Кухня",
      "storage_adress":"",
      "delete":"0"
    },
    {
      "storage_id":"2",
      "storage_name":"Склад Бар",
      "storage_adress":"",
      "delete":"0"
    }
  ]
}

Метод возвращает все склады

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getStorages

GET-параметры запроса storage.getStorages

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа storage.getStorages

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
storage_id id склада
storage_name Название склада
storage_adress Адрес склада
delete Признак удален ли склад: 1 — удален, 0 — нет

storage.getSuppliers: Получить всех поставщиков

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getSuppliers'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "supplier_id":"1",
      "supplier_name":"Закупщик",
      "supplier_phone":"+7 499 555 55 55",
      "supplier_adress":"",
      "supplier_comment":"",
      "supplier_code":"",
      "supplier_tin":"",
      "delete":"0"
    },
    {
      "supplier_id":"2",
      "supplier_name":"Напитков Иван",
      "supplier_phone":"0956734678",
      "supplier_adress":"ул. Лесная 3",
      "supplier_comment":"",
      "supplier_code":"",
      "supplier_tin":"",
      "delete":"0"
    },
    {
      "supplier_id":"3",
      "supplier_name":"Овощной Иван",
      "supplier_phone":"0987658943",
      "supplier_adress":"ул. Байкальская",
      "supplier_comment":"",
      "supplier_code":"",
      "supplier_tin":"",
      "delete":"0"
    }
  ]
}

Метод возвращает всех поставщиков

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getSuppliers

GET-параметры запроса storage.getSuppliers

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
id_1c Опциональный параметр, true если возвращать id_1

Параметры ответа storage.getSuppliers

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
supplier_id id поставщика
supplier_name Имя поставщика
supplier_phone Номер поставщика
supplier_adress Адрес поставщика
supplier_comment Комментарий
supplier_code Уникальный идентификационный номер юридического лица
supplier_tin ИНН поставщика
delete Признак удален ли поставщик: 1 — удален, 0 — нет

storage.getSupplyIngredients: Получить ингредиенты в поставке

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

<?php
$url = 'https://api-demo.joinposter.com/api/storage.getSupplyIngredients'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&supply_id=46';

$data = sendRequest($url);

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

{
  "response":[
    {
      "ingredient_id":"66",
      "supply_ingredient_num":"3.00000",
      "supply_ingredient_sum":"15000",
      "ingredient_name":"Шен Да Бай Ча-Дзень Гу",
      "ingredient_unit":"kg"
    },
    {
      "ingredient_id":"68",
      "supply_ingredient_num":"2.50000",
      "supply_ingredient_sum":"17500",
      "ingredient_name":"Шен Мен Ку",
      "ingredient_unit":"kg"
    },
    {
      "ingredient_id":"67",
      "supply_ingredient_num":"130000.00000",
      "supply_ingredient_sum":"650000000",
      "ingredient_name":"Шен с горы У Лянь Шань-Дзень Гу",
      "ingredient_unit":"kg"
    },
    {
      "ingredient_id":"69",
      "supply_ingredient_num":"1400.00000",
      "supply_ingredient_sum":"16100000",
      "ingredient_name":"Шу Пуэр 20 лет",
      "ingredient_unit":"p"
    },
    {
      "ingredient_id":"76",
      "supply_ingredient_num":"30.00000",
      "supply_ingredient_sum":"390",
      "ingredient_name":"Яйца куринные",
      "ingredient_unit":"p"
    }
  ]
}

Метод возвращает ингредиенты в поставке

HTTP запрос

GET https://{account}.joinposter.com/api/storage.getSupplyIngredients

GET-параметры запроса storage.getSupplyIngredients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
supply_id Обязательный параметр, id поставки

Параметры ответа storage.getSupplyIngredients

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
ingredient_id id ингредиента
supply_ingredient_num Количество ингредиента
supply_ingredient_sum Общая сумма поставки по ингредиенту в копейках
ingredient_name Название ингредиента
ingredient_unit Единица измерения: kg — кг, p — шт, l — л

clients: Маркетинг

Методы для работы с разделом маркетинга. Все методы данного раздела начинаются с «clients».

clients.getClients: Список клиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.getClients'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&num=100'
 . '&offset=0';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "client_id":"55",
      "firstname":"",
      "lastname":"Антон",
      "patronymic":"",
      "discount_per":"0",
      "bonus":"10000",
      "total_payed_sum":"0",
      "date_activale":"2017-10-09 15:28:14",
      "phone":"+7 963 031-38-44",
      "phone_number":"79630313844",
      "email":"bezmuki@gmail.com",
      "birthday":"0000-00-00",
      "card_number":"0",
      "client_sex":"0",
      "country":"0",
      "city":"0",
      "comment":"0",
      "address":"0",
      "client_groups_id":"3",
      "client_groups_name":"Накопительная скидка",
      "client_groups_discount":"0",
      "loyalty_type":"1",
      "birthday_bonus":"0",
      "delete":"0"
    },
    {  
      "client_id":"54",
      "firstname":"",
      "lastname":"Вася",
      "patronymic":"",
      "discount_per":"0",
      "bonus":"10000",
      "total_payed_sum":"0",
      "date_activale":"2017-10-09 11:39:59",
      "phone":"+7 977 345-34-45",
      "phone_number":"79773453445",
      "email":"sdfs@ffy.hu",
      "birthday":"0000-00-00",
      "card_number":"0",
      "client_sex":"0",
      "country":"0",
      "city":"0",
      "comment":"0",
      "address":"0",
      "client_groups_id":"2",
      "client_groups_name":"Скидка Выходной",
      "client_groups_discount":"15",
      "loyalty_type":"1",
      "birthday_bonus":"0",
      "delete":"0"
    }
  ]
}

Метод возвращает список клиентов

HTTP запрос

GET https://{account}.joinposter.com/api/clients.getClients

GET-параметры запроса clients.getClients

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
num Количество клиентов, которое необходимо получить. По умолчанию не передаётся.
offset Количество клиентов, которое необходимо пропустить от начала. По умолчанию не передаётся.
group_id Id группы клиентов. По умолчанию не передаётся.
phone Номер телефона клиента в международном формате. По умолчанию не передаётся.
birthday Дата дня рождения клиентов, формат “md”. По умолчанию не передаётся.
client_id_only Опциональный параметр, позволяет возвращать только client_id клиентов. В качестве значения необходимо указать true.
1c Позволяет вернуть в ответе id клиента в системе 1С. В качестве значения необходимо передать true. По умолчанию не передаётся.

Параметры ответа clients.getClients

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
client_id Id клиента
firstname Имя клиента
lastname Фамилия клиента
patronymic Отчество клиента
discount_per Персональный процент скидки или бонусов. Будет использоваться, если больше, чем процент группы клиента.
bonus Текущий размер накопленных бонусов клиента в копейках
total_payed_sum Общая сумма покупок в копейках
date_activale Дата создания клиента
phone Телефон клиента
phone_number Телефон клиента в формате цифр
email Адрес электронной почты клиента
birthday Дата рождения клиента
card_number Номер карты
client_sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
country Страна клиента
city Город клиента
address Адрес клиента
comment Комментарий к учетной записи клиента
id_1c Id клиента в системе 1С
client_groups_id Id группы клиента
client_groups_name Название группы клиента
loyalty_type Тип группы клиента: 1 — бонусная, 2 — скидочная
client_groups_discount Процент группы. Если группа бонусная – 1, то будет начислять бонусы на оплаченную сумму заказа. Если группа скидочная – 1, то будет давать процент скидки на сумму заказа.
birthday_bonus Количество бонусов в копейках начисляемые в день рождения клиента. Используется только бонусными группами.

clients.getClient: Свойства клиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.getClient'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&client_id=6';

$data = sendRequest($url);

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

{
  "response":[
    {
      "client_id":"38",
      "firstname":"Попова",
      "lastname":"000022",
      "patronymic":"Елена",
      "discount_per":"0",
      "bonus":"0",
      "total_payed_sum":"417000",
      "date_activale":"2016-04-23 05:14:26",
      "phone":"+380 50 11-11-111",
      "phone_number":"380501111111",
      "email":"contact@joinposter.com",
      "birthday":"1986-11-23",
      "card_number":"0000000000222",
      "client_sex":"0",
      "country":"",
      "city":"",
      "comment":"",
      "address":"",
      "client_groups_id":"7",
      "client_groups_name":"Постоянный клиент",
      "client_groups_discount":"0",
      "loyalty_type":"2",
      "birthday_bonus":"0",
      "accumulation_products":{
        "4":{
          "promotion_id":"4",
          "products":[
            {
              "count":"3",
              "sum":540,
              "product_id":"24",
              "modification_id":"0"
            }
          ]
        }
      },
      "prize_products":[
        {
          "prize_product_id":"301",
          "promotion_id":"4",
          "conditions":{
            "bonus_products":[
              {
                "type":"1",
                "id":"1"
              }
            ],
            "bonus_products_pcs":1,
            "bonus_products_g":0,
            "bonus_products_condition_type":"1",
            "bonus_products_condition_value":"100"
          },
          "date_accrual":"2016-05-11 11:40:10"
        }
      ]
    }
  ]
}

Метод возвращает свойства клиента

HTTP запрос

GET https://{account}.joinposter.com/api/clients.getClient

GET-параметры запроса clients.getClient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
client_id Id клиента
1c Позволяет вернуть в ответе id клиента в системе 1С. В качестве значения необходимо передать true. По умолчанию не передаётся.

Параметры ответа clients.getClient

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив с одним объектом, в каждом элементе которого есть следующие параметры:

Параметр Описание
client_id Id клиента
firstname Имя клиента
lastname Фамилия клиента
patronymic Отчество клиента
discount_per Персональный процент скидки или бонусов. Будет использоваться, если будет больше, чем процент группы клиента.
bonus Текущий размер накопленных бонусов клиента в копейках
total_payed_sum Общая сумма покупок в копейках
date_activale Дата создания клиента
phone Телефон клиента
phone_number Телефон клиента в формате цифр
email Адрес электронной почты клиента
birthday Дата рождения клиента
card_number Номер карты
client_sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
country Страна клиента
city Город клиента
address Адрес клиента
comment Комментарий к учетной записи клиента
id_1c Id клиента в системе 1С
client_groups_id Id группы клиента
client_groups_name Название группы клиента
loyalty_type Тип группы клиента: 1 — бонусная, 2 — скидочная
client_groups_discount Процент группы. Если группа бонусная – 1, то будет начислять бонусы на оплаченную сумму заказа. Если группа скидочная – 2, то будет давать процент скидки на сумму заказа.
birthday_bonus Количество бонусов в копейках начисляемые в день рождения клиента. Используется только бонусными группами.
accumulation_products Список продаж, что относятся к акциям с накоплением. Например, акция «5+1», где учитываются покупки в разных чеках.
prize_products Список отложенных бонусов, что относятся к призовым акциям. Например, акция «Купи пиццу и получи завтра еще одну на 10% дешевле», то есть призы, которые выдаются не сразу, а откладываются на следующую покупку.

Параметр accumulation_products содержит объект:

Параметр Описание
promotion_id Id акции с накоплением, за которой закрепили данную продажу
products Список товаров осуществленной продажи, что относится к акции с накоплением. Ниже описано содержимое данного массива товаров.
product_id Id товара
modification_id Id модификации, если товар с модификациями
count Количество товара
sum Стоимость товара

Параметр prize_products сожержит объект:

Параметр Описание
prize_product_id Уникальный id отложенного приза
promotion_id id призовой акции
conditions Список условий, по которым определяется какой именно приз надо выдать. type обозначет: 0 — из всех товаров, 1 — из категории, что указана в id, 2 — конкретный товар с указанным id, 3 — модификация товара с указанным id (для удобства еще будет передан product_id товара, к которому относится модификация)
bonus_products_pcs Сколь штук бонусного товара выдавать, если он штучный
bonus_products_g Сколь грамм бонусного товара выдавать, если он весовой
bonus_products_condition_type На каких условиях выдавать бонус: 1 — процент скидки (например, с 50 или 100% скидкой), 2 — фиксированная сумма скидки (например, дать 5 гривен/рублей скидки на товар), 3 — фиксированная стоимость товара (например, продавать по 1 гривне/рублю)
bonus_products_condition_value Количество для параметра bonus_products_condition_type. Если денежное значение, то возвращается в гривнах/рублях.

clients.createClient: Создание клиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.createClient'
 . '?token=4164553abf6a031302898da7800b59fb';

$client = [
    'client_name'             => 'Попова Елена Андреевна',
    'client_sex'              => 2,
    'client_groups_id_client' => 7,
    'card_number'             => '0000000000222',
    'discount_per'            => 0,
    'phone'                   => '+380519911122',
    'email'                   => 'contact@joinposter.com',
    'birthday'                => '1986-11-23',
    'bonus'                   => 10,
    'total_payed_sum'         => 417000,
];

$data = sendRequest($url, 'post', $client);

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

{
  "response":4082
}

Метод создаёт клиента

HTTP запрос

POST https://{account}.joinposter.com/api/clients.createClient

GET-параметры запроса clients.createClient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.createClient

Параметр Описание
client_name ФИО клиента
client_sex Пол клиента: 0 — не указан, 1 — мужской, 2 — женский
client_groups_id_client Id группы клиентов
card_number Номер карты клиента
discount_per Персональный процент скидки или бонсов. Будет использоваться, если больше, чем процент группы клиента.
phone Телефон клиента, уникальный, в системе не может быть два клиента с одинаковым номером
email Адрес электронной почты клиента
birthday Дата рождения клиента, формат “Y-m-d”
city Город клиента
country Страна клиента
address Адрес клиента
comment Комментарий к учетной записи клиента
bonus Текущий размер накопленных бонусов клиента
total_payed_sum Общая сумма покупок в копейках

Параметры ответа clients.createClient

Параметр Описание
response Id созданного клиента

clients.updateClient: Изменение свойств клиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.updateClient'
 . '?token=4164553abf6a031302898da7800b59fb';

$client = [
  'client_id'               => 50,
  'client_name'             => 'Попова Елена Андреевна',
  'client_sex'              => 2,
  'client_groups_id_client' => 7,
  'card_number'             => '0000000000222',
  'discount_per'            => 0,
  'phone'                   => '+380 50 22-11-111',
  'email'                   => 'contact@joinposter.com',
  'birthday'                => '1986-11-23',
  'bonus'                   => 10,
  'total_payed_sum'         => 417000,
];

$data = sendRequest($url, 'post', $client);

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

{
  "response":4082
}

Метод изменяет свойства клиента

HTTP запрос

POST https://{account}.joinposter.com/api/clients.updateClient

GET-параметры запроса clients.updateClient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.updateClient

Параметр Описание
client_id Id клиента
client_name ФИО клиента
client_sex Пол клиента: 0 — не указан, 1 — мужской, 2 — женский
client_groups_id_client Id группы клиентов
card_number Номер карты клиента
discount_per Персональный процент скидки или бонсов. Будет использоваться, если будет больше, чем процент группы клиента.
phone Телефон клиента, уникальный, в системе не может быть два клиента с одинаковым номером
email Адрес электронной почты клиента
birthday Дата рождения клиента, формат “Y-m-d”
city Город клиента
country Страна клиента
address Адрес клиента
comment Комментарий к учетной записи клиента
bonus Текущий размер накопленных бонусов клиента
total_payed_sum Общая сумма покупок в копейках

Параметры ответа clients.updateClient

Параметр Описание
response Id измененного клиента

clients.changeClientBonus: Изменение количества бонусов клиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.changeClientBonus'
 . '?token=4164553abf6a031302898da7800b59fb';

$bonus = [
  'client_id' => 7,
  'count'     => 10,
];

$data = sendRequest($url, 'post', $bonus);

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

{
  "response":30
}

Метод изменяет количество бонусов клиента. Используется только для клиентов с бонусной системой лояльности.

HTTP запрос

POST https://{account}.joinposter.com/api/clients.changeClientBonus

GET-параметры запроса clients.changeClientBonus

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.changeClientBonus

Параметр Описание
client_id Id клиента
count Количество бонусов, которые надо начилить клиенту. Если число положительное — начислить, если число отрицательное — списать.
block_webhook Опциональный параметр, если true — в ответ не прийдет вебхук об измении данных этого клиента

Параметры ответа clients.changeClientBonus

Параметр Описание
response Количество бонусов, которое стало у клиента после внесения изменений

clients.changeClientPayedSum: Изменение общей суммы покупок клиента

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.changeClientPayedSum'
 . '?token=4164553abf6a031302898da7800b59fb';

$sum = [
  'client_id' => 50,
  'count'     => 20,
];

$data = sendRequest($url, 'post', $sum);

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

{
  "response":110
}

Метод изменяет общую сумму покупок клиента

HTTP запрос

POST https://{account}.joinposter.com/api/clients.changeClientPayedSum

GET-параметры запроса clients.changeClientPayedSum

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.changeClientPayedSum

Параметр Описание
client_id Id клиента
count Сумма покупок, которую надо начилить клиенту. Если число положительное — начислить, если число отрицательное — списать.
block_webhook Опциональный параметр, если true — в ответ не прийдет вебхук об измении данных этого клиента

Параметры ответа clients.changeClientPayedSum

Параметр Описание
response Общая сумма покупок, которая стала у клиента после внесения изменений

clients.set1cClientId: Изменение id клиента в системе 1С

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.set1cClientId'
 . '?token=4164553abf6a031302898da7800b59fb';

$client = [
    'id' => [
        [
            'client_id' => 38,
            'id_1c'     => 'b80ffc81-0fc9-11e7-9ab4-ace01035e460',
        ],
    ],
];

$data = sendRequest($url, 'post', $client);

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

{  
  "success":1
}

Метод изменяет id клиента в системе 1С

HTTP запрос

GET https://{account}.joinposter.com/api/clients.set1cClientId

GET-параметры запроса clients.set1cClientId

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.set1cClientId

Параметр Описание
id Массив объектов

В свою очередь, каждый объект должен содержать следующие свойства:

Параметр Описание
client_id Id клиента
id_1c Id клиента в системе 1С

Параметры ответа clients.set1cClientId

Параметр Описание
success 1, если id клиента в системе 1С успешно изменён

clients.removeClient: Удаление клиента

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

<?php
$url = 'https://demo.joinposter.com/api/clients.removeClient'
 . '?token=4164553abf6a031302898da7800b59fb';

$client = [
    'client_id' => 2,
];

$data = sendRequest($url, 'post', $client);

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

{  
  "response":true
}

Метод удаляет клиента

HTTP запрос

GET https://{account}.joinposter.com/api/clients.removeClient

GET-параметры запроса clients.removeClient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.removeClient

Параметр Описание
client_id Id клиента

Параметры ответа clients.removeClient

Параметр Описание
response true, если клиент успешно удалён

clients.getGroups: Список групп клиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.getGroups'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "client_groups_id":"2",
      "client_groups_name":"Скидка Выходной",
      "client_groups_discount":"15",
      "loyalty_type":"1",
      "birthday_bonus":"0",
      "count_groups_clients":"21",
      "delete":"0"
    },
    {  
      "client_groups_id":"3",
      "client_groups_name":"Накопительная скидка",
      "client_groups_discount":"0",
      "loyalty_type":"1",
      "birthday_bonus":"0",
      "count_groups_clients":"8",
      "delete":"0"
    }
  ]
}

Метод возвращает список групп клиентов

HTTP запрос

GET https://{account}.joinposter.com/api/clients.getGroups

GET-параметры запроса clients.getGroups

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа clients.getGroups

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
client_groups_id Id группы клиентов
client_groups_name Название группы клиентов
client_groups_discount Процент группы. Если группа бонусная, то будет начислять бонусы на оплаченную сумму заказа. Если группа скидочная, то будет давать процент скидки на сумму заказа.
loyalty_type Тип группы клиентов: 1 — бонусная, 2 — скидочная
birthday_bonus Количество бонусов в копейках начисляемые в день рождения клиента. Используется только бонусными группами.
count_groups_clients Количество клиентов, которые находятся в данной группе
delete Определяет удалена ли группа: 1 — удалена, 0 – нет

clients.getGroup: Свойства группы клиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.getGroup'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&group_id=2';

$data = sendRequest($url);

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

{  
  "response":{  
    "client_groups_id":"2",
    "client_groups_name":"Скидка Выходной",
    "client_groups_discount":"15",
    "loyalty_type":"1",
    "birthday_bonus":"0",
    "count_groups_clients":"21",
    "delete":"0"
  }
}

Метод возвращает свойства группы клиентов

HTTP запрос

GET https://{account}.joinposter.com/api/clients.getGroup

GET-параметры запроса clients.getGroup

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
group_id Id группы клиентов

Параметры ответа clients.getGroup

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
client_groups_id Id группы клиентов
client_groups_name Название группы клиентов
client_groups_discount Процент группы. Если группа бонусная – 1, то будет начислять бонусы на оплаченную сумму заказа. Если группа скидочная – 2, то будет давать процент скидки на сумму заказа.
loyalty_type Тип группы клиентов: 1 — бонусная, 2 — скидочная
birthday_bonus Количество бонусов в копейках начисляемые в день рождения клиента. Используется только бонусными группами.
count_groups_clients Количество клиентов, которые находятся в данной группе
delete Определяет удалена ли группа: 1 — удалена, 0 – нет

clients.createGroup: Создание группы клиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.createGroup'
 . '?token=4164553abf6a031302898da7800b59fb';

$group = [
    'client_groups_name'     => 'Постоянный посетитель',
    'loyalty_type'           => 1,
    'client_groups_discount' => 10,
    'birthday_bonus'         => 50.00,
];

$data = sendRequest($url, 'post', $group);

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

{
  "response":6
}

Метод создаёт группу клиентов

HTTP запрос

POST https://{account}.joinposter.com/api/clients.createGroup

GET-параметры запроса clients.createGroup

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.createGroup

Параметр Описание
client_groups_name Название группы клиентов
loyalty_type Тип группы клиентов: 1 — бонусная, 2 — скидочная
client_groups_discount Процент группы. Если группа бонусная - 1, то будет начислять бонусы на оплаченную сумму заказа. Если группа скидочная – 2, то будет давать процент скидки на сумму заказа.
birthday_bonus Количество бонусов в копейках начисляемые в день рождения клиента. Используется только бонусными группами.

Параметры ответа clients.createGroup

Параметр Описание
response Id созданной группы клиентов

clients.updateGroup: Изменение свойств группы клиентов

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

<?php
$url = 'https://api-demo.joinposter.com/api/clients.updateGroup'
 . '?token=4164553abf6a031302898da7800b59fb';

$group = [
  'client_groups_id'       => 5,
  'client_groups_name'     => 'Постоянный посетитель',
  'loyalty_type'           => 1,
  'client_groups_discount' => 10,
  'birthday_bonus'         => 50.00,
];

$data = sendRequest($url, 'post', $group);

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

{
  "response":6
}

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

HTTP запрос

POST https://{account}.joinposter.com/api/clients.updateGroup

GET-параметры запроса clients.updateGroup

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.updateGroup

Параметр Описание
client_groups_id Id группы клиентов
client_groups_name Название группы клиентов
loyalty_type Тип группы клиентов: 1 — бонусная, 2 — скидочная
client_groups_discount Процент группы. Если группа бонусная – 1, то будет начислять бонусы на оплаченную сумму заказа. Если группа скидочная – 2, то будет давать процент скидки на сумму заказа.
birthday_bonus Количество бонусов в копейках начисляемые в день рождения клиента. Используется только бонусными группами.

Параметры ответа clients.updateGroup

Параметр Описание
response id измененной группы клиентов

clients.removeGroup: Удаление группы клиентов

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

<?php
$url = 'https://demo.joinposter.com/api/clients.removeGroup?'
 . '?token=4164553abf6a031302898da7800b59fb';

$group = [
  'group_id' => 6,
];

$data = sendRequest($url, 'post', $group);

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

{
  "response":true
}

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

HTTP запрос

POST https://{account}.joinposter.com/api/clients.removeGroup

GET-параметры запроса clients.removeGroup

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса clients.removeGroup

Параметр Описание
group_id Id группы клиентов

Параметры ответа clients.removeGroup

Параметр Описание
response true, если группа клиентов успешно удалена

transactions: Чеки

Методы для работы с разделом чеков. Все методы данного раздела начинаются с «transactions».

transactions.getTransactions: Список чеков

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.getTransactions'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&date_from=2017-11-30'
 . '&date_to=2017-10-30'
 . '&per_page=10'
 . '&page=5';

$data = sendRequest($url);

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

{  
  "response":{  
    "count":41,
    "page":{  
      "per_page":10,
      "page":5,
      "count":1
    },
    "data":[  
      {  
        "transaction_id":25221,
        "spot_id":1,
        "client_id":68,
        "sum":360,
        "payed_sum":0,
        "payed_cash":0,
        "payed_card":0,
        "payed_cert":0,
        "payed_bonus":0,
        "pay_type":3,
        "reason":0,
        "bonus":0,
        "discount":100,
        "print_fiscal":0,
        "date_close":"2017-11-30 13:48:09",
        "products":[  
          {  
            "product_id":469,
            "modification_id":0,
            "type":2,
            "workshop_id":2,
            "num":2,
            "product_sum":360,
            "payed_sum":0,
            "cert_sum":0,
            "bonus_sum":0,
            "bonus_accrual":0,
            "discount":100,
            "tax_fiscal":1
          }
        ]
      }
    ]
  }
}

Метод возвращает список чеков с товарами в диапазоне дат и с постраничной разбивкой

HTTP GET запрос

https://{account}.joinposter.com/api/transactions.getTransactions

GET-параметры запроса transactions.getTransactions

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
date_from Дата начала выборки, формат “Y-m-d”
date_to Дата конца выборки, формат “Y-m-d”
per_page Количество чеков на одной странице. По умолчанию принимает 100, максимальное значение — 1000.
page Номер страницы, по умолчанию принимает 1

Параметры ответа transactions.getTransactions

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
count Общее количество чеков в выбранном диапазоне дат
page Информация о странице
data Информация по чекам

Внутри параметра page лежит объект, внутри которого есть следующие параметры:

Параметр Описание
per_page Количество чеков на одной странице
page Номер текущей страницы
count Количество чеков на текущей странице

Внутри параметра data лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
transaction_id Id чека
spot_id Id заведения
client_id Id клиента
sum Общая сумма чека
payed_sum Общая сумма оплаты, от payed_cash и payed_card
payed_cash Сумма оплаты наличным расчётом
payed_card Сумма оплаты безналичным расчётом
payed_cert Сумма оплаты сертификатом
payed_bonus Сумма оплаты бонусами
pay_type Тип оплаты: 0 — закрыт без оплаты, 1 — оплата наличным расчётом, 2 — оплата безналичным расчётом, 3 — смешанная оплата
reason Причина закрытия чека без оплаты: 1 — гость ушел, 2 — за счёт заведения, 3 — ошибка официанта
bonus Начисленный бонус, в процентах от payed_sum
discount Скидка на чек в процентах
print_fiscal Признак печати фискального чека: 0 — не печатали, 1 — печатали
date_close Дата закрытия чека, формат “Y-m-d H:i:s”
products Товары в чеке

Внутри параметра products лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
product_id Id товара
modification_id Id модификации
type Тип товара: 2 — тех. карта, 3 — товар
workshop_id Id цеха
num Количество товара в чеке
product_sum Стоимость товара
payed_sum Сумма оплаты
cert_sum Сумма оплаты сертификатом
bonus_sum Сумма оплаты бонусами
bonus_accrual Начислено бонусов
discount Скидка на товар в процентах
tax_fiscal Налог по фискальному регистратору

transactions.getTransactionsWriteOffs: Списания по чекам

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.getTransactionsWriteOffs'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&date_from=2017-11-30'
 . '&date_to=2017-10-30'
 . '&per_page=10'
 . '&page=5';

$data = sendRequest($url);

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

{  
  "response":{  
    "count":41,
    "page":{  
      "per_page":10,
      "page":5,
      "count":1
    },
    "data":[  
      {  
        "transaction_id":25221,
        "write_offs":[  
          {  
            "write_off_id":143731,
            "storage_id":3,
            "product_id":469,
            "modificator_id":0,
            "ingredient_id":30,
            "prepack_id":0,
            "cost":26.68,
            "weight":0.16,
            "unit":"kg",
            "reason":""
          }
        ]
      }
    ]
  }
}

Метод возвращает списания по чекам в диапазоне дат и с постраничной разбивкой

HTTP GET запрос

https://{account}.joinposter.com/api/transactions.getTransactionsWriteOffs

GET-параметры запроса transactions.getTransactionsWriteOffs

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
date_from Дата начала выборки, формат “Y-m-d”
date_to Дата конца выборки, формат “Y-m-d”
per_page Количество чеков на одной странице. По умолчанию принимает 100, максимальное значение — 1000.
page Номер страницы, по умолчанию принимает 1

Параметры ответа transactions.getTransactionsWriteOffs

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
count Общее количество чеков в выбранном диапазоне дат
page Информация о странице
data Информация по чекам

Внутри параметра page лежит объект, внутри которого есть следующие параметры:

Параметр Описание
per_page Количество чеков на одной странице
page Номер текущей страницы
count Количество чеков на текущей странице

Внутри параметра data лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
transaction_id Id чека
write_offs Списания по чеку

Внутри параметра write_offs лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
write_off_id Id списания
storage_id Id склада с которого произошло списание
product_id Id товара
modificator_id Id модификатора
ingredient_id Id ингредиента
prepack_id Id полуфабриката
cost Стоимость
weight Количество
unit Единица измерения: kg — килограммы, p — штуки, l — литры
reason Причина списания

transactions.createTransaction: Создание чека

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.createTransaction'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'table_id'       => 1,
    'user_id'        => 3,
    'guests_count'   => 2,
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "transaction_id":1950,
    "transaction_tablet_id":1508850241000
  }
}

Метод создаёт чек

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.createTransaction

GET-параметры запроса transactions.createTransaction

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.createTransaction

Параметр Описание
spot_id Id заведения в котором нужно создать чек
spot_tablet_id Id терминала в котором нужно создать чек
table_id Id стола
user_id Id сотрудника
guests_count Количество гостей за столом
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.createTransaction

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
transaction_id Id созданного чека, соответсвует номеру чека
transaction_tablet_id Id созданного чека на терминале, соответствует времени открытия чека

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.addTransactionProduct: Добавление товара в чек

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.addTransactionProduct'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'product_id'     => 112,
    'modification'   => '[{"m":19,"a":1}]',
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "transaction_product":10990
  }
}

Метод добавляет товар в чек

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.addTransactionProduct

GET-параметры запроса transactions.addTransactionProduct

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.addTransactionProduct

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id чека
product_id Id товара или тех. карты
modificator_id Id модификатора товара, по умолчанию не передаётся
modification Модификации тех. карты, по умолчанию не передаётся
price Стоимость товара или тех. карты, если она должна отличаться от базовой, по умолчанию не передаётся
time Время операции в формате microtime, по умолчанию принимает текущее время

Внутри параметра modification должна быть JSON строка. JSON должен состоять из массива объектов, где в каждом объекте должны быть следующие параметры:

Параметр Описание
m Id модификации тех. карты
a Количество модификации тех. карты

Параметры ответа transactions.addTransactionProduct

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
transaction_product Id добавленного товара в текущем чеке

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.changeTransactionProductCount: Изменение количества товара в чеке

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.changeTransactionProductCount'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'product_id'     => 112,
    'modification'   => '[{"m":19,"a":1}]',
    'count'          => 2,
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод изменяет количество товара в чеке

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.changeTransactionProductCount

GET-параметры запроса transactions.changeTransactionProductCount

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.changeTransactionProductCount

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id чека
product_id Id товара или тех. карты
modificator_id Id модификатора товара, по умолчанию не передаётся
modification Модификации тех. карты, по умолчанию не передаётся
count Количество товара или тех. карты
time Время операции в формате microtime, по умолчанию принимает текущее время

Внутри параметра modification должна быть JSON строка. JSON должен состоять из массива объектов, где в каждом объекте должны быть следующие параметры:

Параметр Описание
m Id модификации тех. карты
a Количество модификации тех. карты

Параметры ответа transactions.changeTransactionProductCount

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если количество товара или тех. карты успешно изменено

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.removeTransactionProduct: Удалить товар из чека

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.removeTransactionProduct'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'product_id'     => 113,
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод удаляет товар из чека

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.removeTransactionProduct

GET-параметры запроса transactions.removeTransactionProduct

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.removeTransactionProduct

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id чека
product_id Id товара или тех. карты
modificator_id Id модификатора товара, по умолчанию не передаётся
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.removeTransactionProduct

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если товар или тех. карта успешно удалена из чека

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.changeClient: Добавление клиента в чек

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.changeClient'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'client_id'      => 3,
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод добавляет клиента в чек

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.changeClient

GET-параметры запроса transactions.changeClient

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.changeClient

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id чека
client_id Id клиента
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.changeClient

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если клиент успешно добавлен в чек

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.changeComment: Добавление комментария в чек

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.changeComment'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'comment'        => 'День рождения',
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод добавляет комментарий в чек

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.changeComment

GET-параметры запроса transactions.changeComment

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.changeComment

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id чека
comment Комментарий к чеку
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.changeComment

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если комментарий успешно добавлен

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.changeRecipientFor54FZ: Указание адресата

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.changeRecipientFor54FZ'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'type'           => 'email',
    'contact'        => 'admin@sample.com',
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод указывает адресат для получения копии фискального чека по 54-ФЗ

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.changeRecipientFor54FZ

GET-параметры запроса transactions.changeRecipientFor54FZ

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.changeRecipientFor54FZ

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id чека
type Способ отправления копии фискального чека: email — через эл. почту, phone — через SMS (не передавать свойство, если нужно отвязать получателя)
contact Контакт получателя: эл. почта или номер телефона
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.changeRecipientFor54FZ

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если метод успешно отработал

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.closeTransaction: Закрытие чека

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.closeTransaction'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_id'        => 1,
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'payed_cash'     => 1000,
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод закрывает чек

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.closeTransaction

GET-параметры запроса transactions.closeTransaction

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.closeTransaction

Параметр Описание
spot_id Id заведения
spot_tablet_id Id терминала
transaction_id Id стола
payed_cash Сумма оплаты наличным расчётом
payed_card Сумма оплаты безналичным расчётом
payed_cert Сумма оплаты сертификатом
reason Причина закрытия чека без оплаты: 1 — гость ушел, 2 — за счёт заведения, 3 — ошибка официанта. Обязательное поле для закрытия чека без оплаты, сумма всех оплат должна быть равна нулю. По умолчанию не передаётся.
print_fiscal Печатать фискального чека: 0 — не печатать, 1 — печатать. По умолчанию принимает 0.
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.closeTransaction

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если чек успешно закрыт

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

transactions.removeTransaction: Удаление чека

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

<?php
$url = 'https://api-demo.joinposter.com/api/transactions.removeTransaction'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'spot_tablet_id' => 1,
    'transaction_id' => 1950,
    'user_id'        => 3,
];

$data = sendRequest($url, 'post', $transaction);

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

{  
  "response":{  
    "err_code":0
  }
}

Метод удаляет чек

HTTP запрос

GET https://{account}.joinposter.com/api/transactions.removeTransaction

GET-параметры запроса transactions.removeTransaction

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса transactions.removeTransaction

Параметр Описание
spot_tablet_id Id терминала
transaction_id Id стола
user_id Id сотрудника
time Время операции в формате microtime, по умолчанию принимает текущее время

Параметры ответа transactions.removeTransaction

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
err_code 0, если чек успешно удалён

В ходе выполнения могут произойти общие ошибки, их описание находится в разделе Коды ошибок.

incomingOrders: Онлайн-заказы

Методы для работы с разделом онлайн-заказов. Онлайн-заказы — это заказы которые присылаются сторонними приложениями на терминал. Посмотрите видео о том как интернет-магазины интегрируются с Poster.

incomingOrders.createIncomingOrder: Создание онлайн-заказа

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

<?php
$url = 'https://api-demo.joinposter.com/api/incomingOrders.createIncomingOrder'
 . '?token=4164553abf6a031302898da7800b59fb';

$incoming_order = [
    'spot_id'  => 1,
    'products' => [
        [
            'product_id' => 169,
        ],
    ],
];

$data = sendRequest($url, 'post', $incoming_order);

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

{  
  "response":{  
    "incoming_order_id":2,
    "spot_id":1,
    "status":0,
    "client_id":0,
    "first_name":null,
    "last_name":null,
    "phone":null,
    "email":null,
    "sex":null,
    "birthday":null,
    "address":null,
    "comment":null,
    "created_at":"2017-10-27 11:47:19",
    "updated_at":"2017-10-27 11:47:19",
    "transaction_id":null,
    "fiscal_spreading":0,
    "fiscal_method":"",
    "products":[  
      {  
        "io_product_id":2,
        "product_id":169,
        "modificator_id":null,
        "incoming_order_id":2,
        "count":1,
        "created_at":"2017-10-27 11:47:19"
      }
    ]
  }
}

Пример запроса с автоприменением акций:

<?php
$url = 'https://api-demo.joinposter.com/api/incomingOrders.createIncomingOrder'
 . '?token=4164553abf6a031302898da7800b59fb';

$incoming_order = [
    "spot_id"   => 1,
    "products"  => [
        [
            "product_id"    => 139,
            "count"         => 1
        ]
    ],
    "promotion" => [
        [
            "id" => 1, 
            "involved_products" => [
                ["id" => 139, "count"  => 1]
            ],
            "result_products"   => [
                ["id" => 161]
            ]
        ]
    ]
];

$data = sendRequest($url, 'post', $incoming_order);

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

{
  "response":{
    "incoming_order_id":"106",
    "spot_id":"1",
    "status":0,
    "client_id":0,
    "first_name":null,
    "last_name":null,
    "phone":null,
    "email":null,
    "sex":null,
    "birthday":null,
    "address":null,
    "comment":null,
    "created_at":"2017-12-06 18:45:06",
    "updated_at":"2017-12-06 18:45:06",
    "transaction_id":null,
    "fiscal_spreading":"0",
    "fiscal_method":"",
    "promotion":"[{\"id\":1,\"involved_products\":[{\"id\":139,\"count\":1}],\"result_products\":[{\"id\":161}]}]",
    "products":[
      {
        "io_product_id":"194",
        "product_id":"139",
        "modificator_id":null,
        "incoming_order_id":"106",
        "count":"1.00000",
        "created_at":"2017-12-06 18:45:06"
      }
    ]
  }
}

Метод создаёт онлайн-заказ

HTTP POST запрос

https://{account}.joinposter.com/api/incomingOrders.createIncomingOrder

GET-параметры запроса incomingOrders.createIncomingOrder

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса incomingOrders.createIncomingOrder

Параметр Описание
spot_id Id заведения в которое придет онлайн заказ
client_id Id клиента в Poster, по умолчанию не передаётся. Если id не указан, то Poster попробует найти клиента с таким же номером телефона и привяжет его к заказу. Если это новый клиент, то официант выберет для него группу и Poster создаст нового клиента.
first_name Имя клиента, по умолчанию не передаётся
last_name Фамилия клиента, по умолчанию не передаётся
phone Телефон клиента, по умолчанию не передаётся
email Эл. почта, по умолчанию не передаётся
sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский. По умолчанию не передаётся.
birthday Дата рождения клиента, формат Y-m-d. По умолчанию не передаётся.
address Адрес клиента, по умолчанию не передаётся
comment Комментарий к онлайн-заказу, по умолчанию не передаётся
products Список товаров
payment Информация об оплате, по умолчанию не передаётся
promotion Список акций которые нужно применить к заказу

Внутри параметра products должен быть массив, в каждом элементе которого должны быть следующие параметры:

Параметр Описание
product_id Id товара
modificator_id Id модификатора товара
count Количество товара, по умолчанию принимает 1

Внутри параметра payment должен быть объект, внутри которого должны быть следующие параметры:

Параметр Описание
type Признак, что была предварительная оплата: 0 — не была, 1 — была. По умолчанию принимает 0.
sum Сумма оплаты в копейках
currency ISO код валюты оплаты, должен совпадать с валютой аккаунта, например: UAH — гривна, RUB — рубль, USD — доллар

Внутри параметра promotion находится массив объектов, внутри каждого объекта есть следующие параметры:

Параметр Описание
id Id акции которую нужно применить
involved_products Массив товаров которые учавствую в акции.
result_products Массив товаров которые являются результатом акции. Нужно передавать только в бонусных акциях.

В массиве involved_products лежат объекты со следующими свойствами:

Параметр Описание
id Обязательный параметр, id товара который учавтсвует в акции
count Обязательный параметр, кол-во товара которое учавтвует в акции
modification Опциональный параметр, id модификации которая учавствует в акции

В массиве result_products лежат объекты со следующими свойствами:

Параметр Описание
id Обязательный параметр, id товара который нужно добавить в заказ как результат акции
count Обязательный параметр, кол-во товара которое нужно добавить а заказ
modification Опциональный параметр, id модификации которую нужно добавить как результат акции

Параметры ответа incomingOrders.createIncomingOrder

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
incoming_order_id Id онлайн-заказа
spot_id Id заведения
status Статус заказа: 0 — новый, 1 — принят, 7 — отменён
client_id Id клиента
first_name Имя клиента
last_name Фамилия клиента
phone Телефон клиента
email Эл. почта клиента
sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
birthday Дата рождения клиента, формат Y-m-d
address Адрес клиента
comment Комментарий к онлайн-заказу
created_at Дата создания онлайн-заказа
updated_at Дата изменения статуса онлайн-заказа
transaction_id Id связанного чека

fiscal_spreading fiscal_method products | Список товаров

Внутри параметра products лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
io_product_id Id товара в онлайн-заказе
product_id Id товара
modificator_id Id модификатора товара
incoming_order_id Id онлайн-заказа
count Количество товара в онлайн-заказе
created_at Дата добавления товара в онлайн-заказ

incomingOrders.getIncomingOrders: Список онлайн-заказов

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

<?php
$url = 'https://api-demo.joinposter.com/api/incomingOrders.getIncomingOrders'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&status=1'
 . '&date_from=2017-10-26+14:00:00'
 . '&date_to=2017-10-26+15:00:00';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "incoming_order_id":1,
      "spot_id":1,
      "status":1,
      "client_id":0,
      "first_name":"Антон",
      "last_name":"Талышкин",
      "phone":"79630313844",
      "email":"contact@joinposter.com",
      "sex":1,
      "birthday":"1986-11-23",
      "address":"ул. Малышева, 3",
      "comment":"",
      "created_at":"2017-10-26 14:58:02",
      "updated_at":"2017-10-26 15:25:17",
      "transaction_id":1949,
      "products":[  
        {  
          "io_product_id":1,
          "product_id":113,
          "modificator_id":null,
          "incoming_order_id":1,
          "count":1,
          "created_at":"2017-10-26 14:58:02"
        }
      ]
    }
  ]
}

Метод возвращает список онлайн-заказов

HTTP GET запрос

https://{account}.joinposter.com/api/incomingOrders.getIncomingOrders

GET-параметры запроса incomingOrders.getIncomingOrders

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
status Фильтр по статусу заказа: 0 — новый, 1 — принят, 7 — отменён. По умолчанию не передаётся.
date_from Дата и время начала выборки, формат “Y-m-d H:i:s”. По умолчанию не передаётся.
date_to Дата и время конца выборки, формат “Y-m-d H:i:s”. По умолчанию не передаётся.

Параметры ответа incomingOrders.getIncomingOrders

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
incoming_order_id Id онлайн-заказа
spot_id Id заведения
status Статус заказа: 0 — новый, 1 — принят, 7 — отменён
client_id Id клиента
first_name Имя клиента
last_name Фамилия клиента
phone Телефон клиента
email Эл. почта клиента
sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
birthday Дата рождения клиента, формат Y-m-d
address Адрес клиента
comment Комментарий к онлайн-заказу
created_at Дата создания онлайн-заказа
updated_at Дата изменения статуса онлайн-заказа
transaction_id Id связанного чека
products Список товаров

Внутри параметра products лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
io_product_id Id товара в онлайн-заказе
product_id Id товара
modificator_id Id модификатора товара
incoming_order_id Id онлайн-заказа
count Количество товара в онлайн-заказе
created_at Дата добавления товара в онлайн-заказ

incomingOrders.getOwnIncomingOrders: Список онлайн-заказов со своего приложения

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

<?php
$url = 'https://api-demo.joinposter.com/api/incomingOrders.getOwnIncomingOrders'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&status=1'
 . '&date_from=2017-10-26+14:00:00'
 . '&date_to=2017-10-26+15:00:00';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "incoming_order_id":1,
      "spot_id":1,
      "status":1,
      "client_id":0,
      "first_name":"Антон",
      "last_name":"Талышкин",
      "phone":"79630313844",
      "email":"contact@joinposter.com",
      "sex":1,
      "birthday":"1986-11-23",
      "address":"ул. Малышева, 3",
      "comment":"",
      "created_at":"2017-10-26 14:58:02",
      "updated_at":"2017-10-26 15:25:17",
      "transaction_id":1949,
      "products":[  
        {  
          "io_product_id":1,
          "product_id":113,
          "modificator_id":null,
          "incoming_order_id":1,
          "count":1,
          "created_at":"2017-10-26 14:58:02"
        }
      ]
    }
  ]
}

Метод возвращает список онлайн-заказов со своего приложения

HTTP GET запрос

https://{account}.joinposter.com/api/incomingOrders.getOwnIncomingOrders

GET-параметры запроса incomingOrders.getOwnIncomingOrders

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
status Фильтр по статусу заказа: 0 — новый, 1 — принят, 7 — отменён. По умолчанию не передаётся.
date_from Дата и время начала выборки, формат “Y-m-d H:i:s”. По умолчанию не передаётся.
date_to Дата и время конца выборки, формат “Y-m-d H:i:s”. По умолчанию не передаётся.

Параметры ответа incomingOrders.getOwnIncomingOrders

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
incoming_order_id Id онлайн-заказа
spot_id Id заведения
status Статус заказа: 0 — новый, 1 — принят, 7 — отменён
client_id Id клиента
first_name Имя клиента
last_name Фамилия клиента
phone Телефон клиента
email Эл. почта клиента
sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
birthday Дата рождения клиента, формат Y-m-d
address Адрес клиента
comment Комментарий к онлайн-заказу
created_at Дата создания онлайн-заказа
updated_at Дата изменения статуса онлайн-заказа
transaction_id Id связанного чека
products Список товаров

Внутри параметра products лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
io_product_id Id товара в онлайн-заказе
product_id Id товара
modificator_id Id модификатора товара
incoming_order_id Id онлайн-заказа
count Количество товара в онлайн-заказе
created_at Дата добавления товара в онлайн-заказ

incomingOrders.getIncomingOrder: Свойства онлайн-заказа

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

<?php
$url = 'https://api-demo.joinposter.com/api/incomingOrders.getIncomingOrder'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&incoming_order_id=1';

$data = sendRequest($url);

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

{  
  "response":{  
    "incoming_order_id":1,
    "spot_id":1,
    "status":1,
    "client_id":0,
    "first_name":"Антон",
    "last_name":"Талышкин",
    "phone":"79630313844",
    "email":"contact@joinposter.com",
    "sex":1,
    "birthday":"1986-11-23",
    "address":"ул. Малышева, 3",
    "comment":"",
    "created_at":"2017-10-26 14:58:02",
    "updated_at":"2017-10-26 15:25:17",
    "transaction_id":1949,
    "products":[  
      {  
        "io_product_id":1,
        "product_id":113,
        "modificator_id":null,
        "incoming_order_id":1,
        "count":1,
        "created_at":"2017-10-26 14:58:02"
      }
    ]
  }
}

Метод возвращает свойства онлайн-заказа

HTTP GET запрос

https://{account}.joinposter.com/api/incomingOrders.getIncomingOrder

GET-параметры запроса incomingOrders.getIncomingOrder

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
incoming_order_id Id онлайн-заказа

Параметры ответа incomingOrders.getIncomingOrder

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
incoming_order_id Id онлайн-заказа
spot_id Id заведения
status Статус заказа: 0 — новый, 1 — принят, 7 — отменён
client_id Id клиента
first_name Имя клиента
last_name Фамилия клиента
phone Телефон клиента
email Эл. почта клиента
sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
birthday Дата рождения клиента, формат Y-m-d
address Адрес клиента
comment Комментарий к онлайн-заказу
created_at Дата создания онлайн-заказа
updated_at Дата изменения статуса онлайн-заказа
transaction_id Id связанного чека
products Список товаров

Внутри параметра products лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
io_product_id Id товара в онлайн-заказе
product_id Id товара
modificator_id Id модификатора товара
incoming_order_id Id онлайн-заказа
count Количество товара в онлайн-заказе
created_at Дата добавления товара в онлайн-заказ

incomingOrders.getOwnIncomingOrder: Свойства онлайн-заказа со своего приложения

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

<?php
$url = 'https://api-demo.joinposter.com/api/incomingOrders.getOwnIncomingOrder'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&incoming_order_id=1';

$data = sendRequest($url);

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

{  
  "response":{  
    "incoming_order_id":1,
    "spot_id":1,
    "status":1,
    "client_id":0,
    "first_name":"Антон",
    "last_name":"Талышкин",
    "phone":"79630313844",
    "email":"contact@joinposter.com",
    "sex":1,
    "birthday":"1986-11-23",
    "address":"ул. Малышева, 3",
    "comment":"",
    "created_at":"2017-10-26 14:58:02",
    "updated_at":"2017-10-26 15:25:17",
    "transaction_id":1949,
    "products":[  
      {  
        "io_product_id":1,
        "product_id":113,
        "modificator_id":null,
        "incoming_order_id":1,
        "count":1,
        "created_at":"2017-10-26 14:58:02"
      }
    ]
  }
}

Метод возвращает свойства онлайн-заказа со своего приложения

HTTP GET запрос

https://{account}.joinposter.com/api/incomingOrders.getOwnIncomingOrder

GET-параметры запроса incomingOrders.getOwnIncomingOrder

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
incoming_order_id Id онлайн-заказа

Параметры ответа incomingOrders.getOwnIncomingOrder

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
incoming_order_id Id онлайн-заказа
spot_id Id заведения
status Статус заказа: 0 — новый, 1 — принят, 7 — отменён
client_id Id клиента
first_name Имя клиента
last_name Фамилия клиента
phone Телефон клиента
email Эл. почта клиента
sex Пол клинета: 0 — не указан, 1 — мужской, 2 — женский
birthday Дата рождения клиента, формат Y-m-d
address Адрес клиента
comment Комментарий к онлайн-заказу
created_at Дата создания онлайн-заказа
updated_at Дата изменения статуса онлайн-заказа
transaction_id Id связанного чека
products Список товаров

Внутри параметра products лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
io_product_id Id товара в онлайн-заказе
product_id Id товара
modificator_id Id модификатора товара
incoming_order_id Id онлайн-заказа
count Количество товара в онлайн-заказе
created_at Дата добавления товара в онлайн-заказ

spots: Заведения

Методы для работы с разделом заведений. Все методы данного раздела начинаются с «spots».

spots.getSpotTablesHalls: Список залов

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

<?php
$url = 'https://api-demo.joinposter.com/api/spots.getSpotTablesHalls'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "hall_id":"3",
      "hall_name":"Зал в кафе на Полянке",
      "hall_order":"1",
      "spot_id":"1",
      "delete":"0",
      "last_modified_time":"2017-06-22 13:54:58"
    },
    {  
      "hall_id":"5",
      "hall_name":"Зал у львівській кав&#39;ярні",
      "hall_order":"2",
      "spot_id":"2",
      "delete":"0",
      "last_modified_time":"2017-06-22 13:54:58"
    }
  ]
}

Метод возвращает список залов

HTTP запрос

GET https://{account}.joinposter.com/api/spots.getSpotTablesHalls

GET-параметры запроса spots.getSpotTablesHalls

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа spots.getSpotTablesHalls

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
hall_id Id зала
hall_name Название зала
hall_order Порядок залов
spot_id Id заведения
delete Признак, что зал удалён: 0 — не удалён, 1 — удалён
last_modified_time Время последнего изменения свойств зала

spots.getTableHallTables: Список столов

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

<?php
$url = 'https://api-demo.joinposter.com/api/spots.getTableHallTables'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&spot_id=1'
 . '&hall_id=3'
 . '&without_deleted=1';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "table_id":"3",
      "table_num":"1",
      "table_title":"Возле барной стойки",
      "spot_id":"1",
      "table_shape":"square",
      "hall_id":"1",
      "table_x":"9",
      "table_y":"12",
      "table_height":"4",
      "table_width":"8",
      "is_deleted":"0",
      "status":"1"
    },
    {  
      "table_id":"4",
      "table_num":"2",
      "table_title":"Дальний",
      "spot_id":"1",
      "table_shape":"circle",
      "hall_id":"1",
      "table_x":"15",
      "table_y":"11",
      "table_height":"10",
      "table_width":"13",
      "is_deleted":"0",
      "status":"2"
    }
  ]
}

Метод возвращает список столов

HTTP запрос

GET https://{account}.joinposter.com/api/spots.getTableHallTables

GET-параметры запроса spots.getTableHallTables

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
spot_id Id заведения, по умолчанию не передаётся
hall_id Id зала, по умолчанию не передаётся
without_deleted Признак, возвращать ли без удалённых столов: 0 — с удалёнными столами, 1 — без удалённых столов. По умолчанию принимает 0.

Параметры ответа spots.getTableHallTables

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
table_id Id стола
table_num Номер стола
table_title Название стола
spot_id Id заведения
table_shape Форма стола: square — прямоугольная, circle — с закруглёнными краями
hall_id Id зала
table_x Координаты стола по оси X
table_y Координаты стола по оси Y
table_height Высота стола
table_width Ширина стола
is_deleted Признак, что стол удалён: 0 — не удалён, 1 — удалён
status Признак, есть ли на столе открытые заказы: 1 — нету открытых заказов, 2 — есть открытые заказы

finance: Финансы

Методы для работы с разделом финансов. Все методы данного раздела начинаются с «finance».

finance.getCashShifts: Список кассовых смен

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getCashShifts'
    . '?token=4164553abf6a031302898da7800b59fb'
    . '&dateFrom=20170701'
    . '&dateTo=20170901';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "cash_shift_id":333,
      "spot_id":1,
      "timestart":1505977200000,
      "timeend":1505980800000,
      "amount_start":10000,
      "amount_end":10000,
      "amount_debit":0,
      "amount_sell_cash":0,
      "amount_sell_card":0,
      "amount_credit":0,
      "amount_collection":0,
      "user_id_start":3,
      "user_id_end":3,
      "comment":"бар",
      "spot_name":"Киоск",
      "spot_adress":"ул. Вокзальная, 12",
      "table_num":"0"
    }
  ]
}

Метод возвращает список кассовых смен

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getCashShifts

GET-параметры запроса finance.getCashShifts

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
spot_id Опциональный параметр, Id заведения по которому возвращать статистику
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.

Параметры ответа finance.getCashShifts

Параметр Описание
response Массив кассовых смен

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
cash_shift_id Id кассовой смены
spot_id Id заведения
timestart Дата и время открытия кассовой смены, формат microtime
timeend Дата и время закрытия кассовой смены, формат microtime
amount_start Сумма в кассе при открытии кассовой смены в копейках
amount_end Сумма в кассе при закрытии кассовой смены в копейках
amount_debit Сумма приходов в копейках
amount_sell_cash Сумма выручки наличной оплаты в копейках
amount_sell_card Сумма выручки безналичной оплаты в копейках
amount_credit Сумма расходов в копейках
amount_collection Сумма инкассаций в копейках
user_id_start Id сотрудника открывшего кассовую смену
user_id_end Id сотрудника закрывшего кассовую смену
comment Комментарий
spot_name Название заведения
spot_adress Адрес заведения

finance.getCashShift: Свойства кассовой смены

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getCashShift'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&cash_shift_id=333';

$data = sendRequest($url);

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

{  
  "response":{  
    "cash_shift_id":333,
    "spot_id":1,
    "timestart":1505977200000,
    "timeend":1505980800000,
    "amount_start":10000,
    "amount_end":10000,
    "amount_debit":0,
    "amount_sell_cash":0,
    "amount_sell_card":0,
    "amount_credit":0,
    "amount_collection":0,
    "user_id_start":3,
    "user_id_end":3,
    "comment":"бар"
  }
}

Метод возвращает свойства кассовой смены

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getCashShift

GET-параметры запроса finance.getCashShift

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
cash_shift_id Обязательный параметр, id кассовой смены

Параметры ответа finance.getCashShift

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
cash_shift_id Id кассовой смены
spot_id Id заведения
timestart Дата и время открытия кассовой смены, формат microtime
timeend Дата и время закрытия кассовой смены, формат microtime
amount_start Сумма в кассе при открытии кассовой смены в копейках
amount_end Сумма в кассе при закрытии кассовой смены в копейках
amount_debit Сумма приходов в копейках
amount_sell_cash Сумма выручки наличной оплаты в копейках
amount_sell_card Сумма выручки безналичной оплаты в копейках
amount_credit Сумма расходов в копейках
amount_collection Сумма инкассаций в копейках
user_id_start Id сотрудника открывшего кассовую смену
user_id_end Id сотрудника закрывшего кассовую смену
comment Комментарий

finance.openCashShift: Открытие кассовой смены

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

<?php
$url = 'https://demo.joinposter.com/api/finance.openCashShift'
 . '?token=4164553abf6a031302898da7800b59fb';

$cash_shift = [
    'spot_id'   => 1,
    'user_id'   => 1,
    'amount'    => 123.45,
    'time'      => '2017-09-21 10:00',
    'is_fiscal' => 1,
];

$data = sendRequest($url, 'post', $cash_shift);

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

{  
  "response":{  
    "cash_shift_id":333
  }
}

Метод открывает кассовую смену

HTTP запрос

GET https://{account}.joinposter.com/api/finance.openCashShift

GET-параметры запроса finance.openCashShift

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.openCashShift

Параметр Описание
spot_id Id заведения
user_id Id сотрудника
amount Сумма в кассе при открытии кассовой смены в гривнах\рублях
time Дата и время открытия кассовой смены в минутах в формате Y-m-d H:i
is_fiscal Признак, что транзакция открытия кассовой смены фискальная: 0 — не фискальная, 1 — фискальная. По умолчанию принимает 0.

Параметры ответа finance.openCashShift

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
cash_shift_id Id открытой кассовой смены

finance.closeCashShift: Закрытие кассовой смены

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

<?php
$url = 'https://demo.joinposter.com/api/finance.closeCashShift'
 . '?token=4164553abf6a031302898da7800b59fb';

$cash_shift = [
    'cash_shift_id' => 335,
    'user_id'       => 3,
    'amount'        => 234.56,
    'time'          => '2017-09-21 20:00',
    'is_fiscal'     => 1,
    'comment'       => 'бар',
];

$data = sendRequest($url, 'post', $cash_shift);

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

{  
  "response":true
}

Метод закрывает кассовую смену

HTTP запрос

POST https://{account}.joinposter.com/api/finance.closeCashShift

GET-параметры запроса finance.closeCashShift

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.closeCashShift

Параметр Описание
cash_shift_id Id кассовой смены
user_id Id сотрудника
amount Сумма в кассе при закрытии кассовой смены в гривнах\рублях
time Дата и время закрытия кассовой смены с точностью до минут в формате Y-m-d H:i
is_fiscal Признак, что транзакция закрытия кассовой смены фискальная: 0 — не фискальная, 1 — фискальная. По умолчанию принимает 0.
comment Комментарий к кассовой смене. По умолчанию не передаётся.

Параметры ответа finance.closeCashShift

Параметр Описание
response true, если кассовая смена успешно закрыта

finance.getCashShiftTransactions: Список транзакций кассовой смены

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getCashShiftTransactions'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&shift_id=333';

$data = sendRequest($url);

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

{  
  "response":[  
    {  
      "shift_tr_id":1648,
      "shift_id":333,
      "time":1505980800000,
      "type":5,
      "tr_amount":10000,
      "user_id":3,
      "comment":"бар",
      "shift_tr_id_edit":0,
      "user_id_edit":0,
      "edit_time":0,
      "edit":0,
      "delete":0,
      "is_fiscal":0
    },
    {  
      "shift_tr_id":1647,
      "shift_id":333,
      "time":1505977200000,
      "type":1,
      "tr_amount":10000,
      "user_id":3,
      "comment":"",
      "shift_tr_id_edit":0,
      "user_id_edit":0,
      "edit_time":0,
      "edit":0,
      "delete":0,
      "is_fiscal":1
    }
  ]
}

Метод возвращает список транзакций кассовой смены

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getCashShiftTransactions

GET-параметры запроса finance.getCashShiftTransactions

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
shift_id Обязательный параметр, id кассовой смены по которой возвращать транзкации

Параметры ответа finance.getCashShiftTransactions

Параметр Описание
response Массив транзакций кассовой смены

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
shift_tr_id Id транзакции кассовой смены
shift_id Id кассовой смены
time Дата и время транзакции кассовой смены, формат microtime
type Тип транзакции кассовой смены: 1 — открытие, 2 — доход, 3 — расход, 4 — инкассация, 5 — закрытие.
tr_amount Сумма транзакции кассовой смены
user_id Id сотрудника
comment Комментарий
shift_tr_id_edit Id транзакции кассовой смены от которой было редактирование. Если редактирования не было, возвращает 0.
user_id_edit Id сотрудника который редактировал транзакцию кассовой смены. Если редактирования не было, возвращает 0.
edit_time Время редактирования транзакции кассовой смены. Если редактирования не было, возвращает 0.
edit Признак, что транзакция кассовой смены отредактирована: 0 — не редактировалась, 1 — редактировалась.
delete Признак, что транзакция кассовой смены удалена: 0 — не удалена, 1 — удалена.
is_fiscal Признак, что транзакция кассовой смены фискальная: 0 — не фискальная, 1 — фискальная.

finance.createCashShiftTransaction: Создание транзакции кассовой смены

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

<?php
$url = 'https://demo.joinposter.com/api/finance.createCashShiftTransaction'
 . '?token=4164553abf6a031302898da7800b59fb';

$cash_shift_transaction = [
    'cash_shift_id' => 333,
    'type_id'       => 3,
    'category_id'   => 4,
    'user_id'       => 1,
    'amount'        => 499.99,
    'time'          => '2017-09-21 15:00',
    'is_fiscal'     => 1,
    'comment'       => 'Расход',
];

$data = sendRequest($url, 'post', $cash_shift_transaction);

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

{  
  "response":{  
    "cash_shift_transaction_id":1649
  }
}

Метод создаёт транзакцию кассовой смены

HTTP запрос

GET https://{account}.joinposter.com/api/finance.createCashShiftTransaction

GET-параметры запроса finance.createCashShiftTransaction

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.createCashShiftTransaction

Параметр Описание
cash_shift_id Id кассовой смены
type_id Тип транзакции кассовой смены: 2 — доход, 3 — расход, 4 — инкассация.
category_id Id финансовой категории. Обязательное поле, если тип транзакции кассовой смены 2 или 3 и к заведению привязан счёт для наличных.
user_id Id сотрудника
amount Сумма транзакции кассовой смены
time Дата и время транзакции кассовой смены в формате Y-m-d H:i
is_fiscal Признак, что транзакция кассовой смены фискальная: 0 — не фискальная, 1 — фискальная. По умолчанию принимает 0.
comment Комментарий

Параметры ответа finance.createCashShiftTransaction

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
cash_shift_transaction_id Id транзакции кассовой смены

finance.updateCashShiftTransaction: Изменение свойств транзакции кассовой смены

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

<?php
$url = 'https://demo.joinposter.com/api/finance.updateCashShiftTransaction'
 . '?token=4164553abf6a031302898da7800b59fb';

$cash_shift_transaction = [
    'cash_shift_transaction_id' => 611,
    'type_id'                   => 3,
    'category_id'               => 4,
    'user_id'                   => 3,
    'amount'                    => 499.99,
    'time'                      => '2017-09-21 15:00',
    'is_fiscal'                 => 1,
    'comment'                   => 'Расход',
];

$data = sendRequest($url, 'post', $cash_shift_transaction);

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

{  
  "response":{  
    "cash_shift_transaction_id":1650
  }
}

Метод изменяет свойства транзакции кассовой смены

HTTP запрос

GET https://{account}.joinposter.com/api/finance.updateCashShiftTransaction

GET-параметры запроса finance.updateCashShiftTransaction

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.updateCashShiftTransaction

Параметр Описание
cash_shift_transaction_id Id транзакции кассовой смены
type_id Тип транзакции кассовой смены: 1 — открытие, 2 — доход, 3 — расход, 4 — инкассация, 5 — закрытие. Типы 1 и 5 изменять нельзя. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.
category_id Id финансовой категории. Обязательное поле, если тип транзакции кассовой смены 2 или 3 и к заведению привязан счёт для наличных. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.
user_id Id сотрудника. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.
amount Сумма транзакции кассовой смены. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.
time Дата и время транзакции кассовой смены, формат “Y-m-d H:i”. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.
is_fiscal Признак, что транзакция кассовой смены фискальная: 0 — не фискальная, 1 — фискальная. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.
comment Комментарий. По умолчанию принимает предыдущее значение редактируемой транзакции кассовой смены.

Параметры ответа finance.updateCashShiftTransaction

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
cash_shift_transaction_id Новый id транзакции кассовой смены

finance.removeCashShiftTransaction: Удаление транзакции кассовой смены

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.removeCashShiftTransaction'
 . '?token=4164553abf6a031302898da7800b59fb';

$cash_shift_transaction = [
    'cash_shift_transaction_id' => 611,
];

$data = sendRequest($url, 'post', $cash_shift_transaction);

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

{  
  "response":true
}

Метод удаляет транзакцию кассовой смены.

HTTP запрос

GET https://{account}.joinposter.com/api/finance.removeCashShiftTransaction

GET-параметры запроса finance.removeCashShiftTransaction

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.removeCashShiftTransaction

Параметр Описание
cash_shift_transaction_id Id транзакции кассовой смены

Параметры ответа finance.removeCashShiftTransaction

Параметр Описание
response true, если транзакция кассовой смены успешно удалена

finance.getTransactions: Получить все транзакции

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getTransactions'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&dateFrom=20170701'
 . '&dateTo=20170901';


$data = sendRequest($url);

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

{
  "response":[
    {
      "transaction_id":"538",
      "account_id":"1",
      "user_id":"1",
      "category_id":"7",
      "type":"0",
      "amount":"-8137663",
      "balance":"545516997964",
      "date":"2017-08-31 09:20:22",
      "recipient_type":"0",
      "recipient_id":"0",
      "binding_type":"15",
      "binding_id":"400",
      "comment":"Корректирующая транзакция",
      "delete":"0",
      "account_name":"Наличные в заведении",
      "currency_symbol":"<i class=\"icon-rouble\"><\/i>",
      "category_name":"Actualization"
    },
    {
      "transaction_id":"536",
      "account_id":"1",
      "user_id":"1",
      "category_id":"2",
      "type":"1",
      "amount":"8148663",
      "balance":"545525135627",
      "date":"2017-08-31 09:20:21",
      "recipient_type":"0",
      "recipient_id":"0",
      "binding_type":"11",
      "binding_id":"400",
      "comment":"Закрытие наличной кассы",
      "delete":"0",
      "account_name":"Наличные в заведении",
      "currency_symbol":"<i class=\"icon-rouble\"><\/i>",
      "category_name":"Cash register shifts"
    }
  ]
}

Метод возвращает все транзакции

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getTransactions

GET-параметры запроса finance.getTransactions

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
account_id Опциональный параметр, id счета, по умолчанию по всем счетам
category_id Опциональный параметр, id категории, по умолчанию по всем категориям
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.

Параметры ответа finance.getTransactions

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
transaction_id id транзакции
account_id id счета
user_id id официанта
category_id id категории, по умолчанию по всем категориям
type Тип транзакции: 0 — расход, 1 — доход
amount Сумма транзакции в копейках
balance Баланс на счете в копейках
date Дата проведения транзакции
recipient_type Тип принимающей сущности: 1 — перевод, 12 — поставщик
recipient_id id принимающей сущности
binding_type Тип соответствующей сущности: 1 — перевод, 12 — закрытие смены, 13 — поставка, 14 — транзакции кассовой смены
binding_id id соответствующей сущности
comment Комментарий
account_name Название счета
category_nam Название категории
currency_symbol Unicode символ валюты, для рубля, драма и маната приходит HTML который на терминале отобразиться как иконка валюты

finance.createTransactions: Создание новой транзакции

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.createTransactions'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'id'            => 1,
    'type'          => 2,
    'category'      => 7,
    'user_id'       => 4,
    'amount_from'   => 1000,
    'amount_to'     => 900,
    'account_from'  => 1,
    'account_to'    => 2,
    'date'          => '16112017',
];

$data = sendRequest($url, 'post', $transaction);

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

{
  "response":600
}

Метод создает новую транзакцию

HTTP запрос

POST https://{account}.joinposter.com/api/finance.createTransactions

GET-параметры запроса finance.createTransactions

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.createTransactions

Параметр Описание
id Id группы
type Тип транзакции: 0 — расход, 1 — доход, 2 — перевод
category id категории
user_id id пользователя
date Дата дата добавления в формате dmY

В зависимости от параметра type нужно передавать дополнительные параметры

type — 0

Параметр Описание
amount_from Сумма расхода в гривнах\рублях
account_from id счета

type — 1

Параметр Описание
amount_to Сумма дохода в гривнах\рубляъ
account_to id счета

type — 2

Параметр Описание
account_to id счета на который переводим деньги
account_from id счета с которого делаем перевод
amount_to Сумма перевода на счет в гривнах\рублях
amount_from Сумма перевода со счета в гривнах\рублях

Параметры ответа finance.createTransactions

Параметр Описание
response id созданной транзакции

finance.updateTransactions: Изменение транзакции

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.updateTransactions'
 . '?token=4164553abf6a031302898da7800b59fb';

$transaction = [
    'transaction_id'    => 600,
    'type'              => 2,
    'category'          => 7,
    'user_id'           => 4,
    'amount_from'       => 1000,
    'amount_to'         => 900,
    'account_from'      => 1,
    'account_to'        => 2,
    'date'              => '16112017',
];

$data = sendRequest($url, 'post', $transaction);

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

{
  "response":600
}

Метод изменяет существующую транзакцию

HTTP запрос

POST https://{account}.joinposter.com/api/finance.updateTransactions

GET-параметры запроса finance.updateTransactions

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.createTransactions

Параметр Описание
transaction_id Id транзакции для обновления
type Тип транзакции: 0 — расход, 1 — доход, 2 — перевод
category id категории
user_id id пользователя
date Дата дата добавления в формате Ymd

В зависимости от параметра type нужно передавать дополнительные параметры

type = 0

Параметр Описание
amount_from сумма расхода
account_from id счета

type = 1

Параметр Описание
amount_to сумма дохода
account_to id счета

type = 2

Параметр Описание
account_to id счета на который переводим деньги
account_from id счета с которого делаем перевод
amount_to сумма перевода на счета
amount_from сумма перевода со счета

Параметры ответа finance.updateTransactions

Параметр Описание
response id измененной транзакции

finance.getAccounts: Получить счета

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getAccounts'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "account_id":"1",
      "name":"Наличные в заведении",
      "currency_id":"2",
      "type":"3",
      "balance":"545643467264",
      "balance_start":"200000000",
      "percent_acquiring":"0.00",
      "currency_symbol":"<i class=\"icon-rouble\"><\/i>",
      "currency_code_iso":"RUB",
      "currency_code":"руб."
    },
    {
      "account_id":"2",
      "name":"Счет ИП",
      "currency_id":"2",
      "type":"1",
      "balance":"83086475682",
      "balance_start":"790000",
      "percent_acquiring":"0.00",
      "currency_symbol":"<i class=\"icon-rouble\"><\/i>",
      "currency_code_iso":"RUB",
      "currency_code":"руб."
    },
    {
      "account_id":"3",
      "name":"Сейф",
      "currency_id":"2",
      "type":"3",
      "balance":"56720000",
      "balance_start":"65000000",
      "percent_acquiring":"0.00",
      "currency_symbol":"<i class=\"icon-rouble\"><\/i>",
      "currency_code_iso":"RUB",
      "currency_code":"руб."
    }
  ]
}

Метод возвращает счета в разделе финансы

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getAccounts

GET-параметры запроса finance.getAccounts

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
type Тип счета: 1 — безналичный, 2 — банковская карта, 3 — наличные. По умолчанию все счета.

Параметры ответа finance.getAccounts

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов, внутри каждого есть следующие параметры:

Параметр Описание
account_id id счета
name Название счета
type Тип счета: 1 — безналичный, 2 — банковская карта, 3 — наличные
balance Баланс по счету в гривнах\рублях
balance_start Начальный баланс в гривнах\рублях, остаток денег на счете на момент создания
percent_acquiring Процент за эквайринг
currency_id Id валюты в Poster: 1 — гривна, 2 — рубль, 3 — доллар, 4 — евро, 5 — тенге, 6 — лари, 7 — бат, 8 — armenia dram
currency_name Название валюты
currency_code Код валюты на терминале
currency_symbol Unicode символ валюты, для рубля, драма и маната приходит HTML который на терминале отобразиться как иконка валюты
currency_code_iso Цифровой код валюты по стандарту ISO 4217

finance.createAccount: Создание нового счета

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.createAccount'
 . '?token=4164553abf6a031302898da7800b59fb';

$account = [
    'account_name' => 'Сейф',
    'currency_id' => 3,
    'type' => 1,
    'balance_start' => 0,
];

$data = sendRequest($url, 'post', $account);

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

{
  "response":4
}

Метод создает новый счет

HTTP запрос

POST https://{account}.joinposter.com/api/finance.createAccount

GET-параметры запроса finance.createAccount

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.createAccount

Параметр Описание
account_name Название счета
type Тип счета: 1 — безналичный, 2 — банковская карта, 3 — наличные
balance_start Остаток денег на счете на момент создания, в гривнах\рублях
currency_id Id валюты в Poster: 1 — гривна, 2 — рубль, 3 — доллар, 4 — евро, 5 — тенге, 6 — лари, 7 — бат, 8 — armenia dram

Параметры ответа finance.createAccount

Параметр Описание
response id созданного счета

finance.updateAccount: Изменение счета

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.updateAccount'
 . '?token=4164553abf6a031302898da7800b59fb';

$account = [
    'account_id' => 3,
    'account_name' => 'Сейф',
    'currency_id' => 3,
    'type' => 1,
    'balance_start' => 0,
];

$data = sendRequest($url, 'post', $account);

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

{
  "response":4
}

Метод изменяет свойства счета

HTTP запрос

POST https://{account}.joinposter.com/api/finance.updateAccount

GET-параметры запроса finance.updateAccount

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.updateAccount

Параметр Описание
account_id id счета
account_name Название счета
type Тип счета: 1 — безналичный, 2 — банковская карта, 3 — наличные
balance_start Остаток денег на счете на момент создания, в гривнах\рублях
currency_id Id валюты в Poster: 1 — гривна, 2 — рубль, 3 — доллар, 4 — евро, 5 — тенге, 6 — лари, 7 — бат, 8 — armenia dram

Параметры ответа finance.updateAccount

Параметр Описание
response id измененного счета

finance.getCategories: Получить список категорий счетов

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getCategories'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "category_id":"5",
      "name":"Зарплата",
      "parent_id":"0",
      "operations":"2",
      "action":"0",
      "delete":"0"
    },
    {
      "category_id":"2",
      "name":"Кассовые смены",
      "parent_id":"0",
      "operations":"3",
      "action":"11",
      "delete":"0"
    }
  ]
}

Метод получить список категорий по финансовым счетам

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getCategories

GET-параметры запроса finance.getCategories

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа finance.getCategories

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив объектов, внутри каждого есть следующие параметры:

Параметр Описание
category_id id категории
name Название категории
parent_id id подкатегории
operation Допустимые транзакции: 1 — доходы, 2 — расходы, 3 — доходы и расходы, 0 — не выбрано
action Тип категорий по действиям: 1 — переводы, 11 — кассовые смены, 12 — поставоки, 14 — актуализация, 0 — любой тип действия

finance.createCategory: Создание новой финансовой категории

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.createCategory'
 . '?token=4164553abf6a031302898da7800b59fb';

$category = [
    'category_name'     => 'Коммуналка',
    'category_parent'   => 0,
    'operations_in'     => 0, 
    'operations_out'    => 1

];

$data = sendRequest($url, 'post', $category);

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

{
  "response":6
}

Метод созадет новую финансовую категорию

HTTP запрос

POST https://{account}.joinposter.com/api/finance.createCategory

GET-параметры запроса finance.createCategory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.createCategory

Параметр Описание
category_name Название категории
category_parent id родительской категории, если 0 то текущая категория отобразиться на самом верхнем уровне
operations_in Допустимы ли транзакции типа доходы: 1 — допустимы, 0 — нет
operations_out Допустимы ли транзакции типа расходы: 1 — допустимы, 0 — нет

Параметры ответа finance.createCategory

Параметр Описание
response id созданной категории

finance.updateCategory: Изменение финансовой категории

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.updateCategory'
 . '?token=4164553abf6a031302898da7800b59fb';

$category = [
    'category_id'       => 13,
    'category_name'     => 'Коммуналка',
    'category_parent'   => 0,
    'operations_in'     => 1, 
    'operations_out'    => 1,

];

$data = sendRequest($url, 'post', $category);

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

{
  "response":13
}

Метод изменяет финансовую категорию

HTTP запрос

POST https://{account}.joinposter.com/api/finance.updateCategory

GET-параметры запроса finance.updateCategory

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.updateCategory

Параметр Описание
category_id Id изменяемой категории
category_name Название категории
category_parent id родительской категории, если 0 то текущая категория отобразиться на самом верхнем уровне
operations_in Допустимы ли транзакции типа доходы: 1 — допустимы, 0 — нет
operations_out Допустимы ли транзакции типа расходы: 1 — допустимы, 0 — нет

Параметры ответа finance.updateCategory

Параметр Описание
response id измененной категории

finance.getTaxes: Получить все налоги

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getTaxes'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "tax_id":"2",
      "country":"ua",
      "tax_name":"НДС",
      "tax_value":"18",
      "type":"1",
      "fixed":"0",
      "fiscal":"1",
      "fiscal_program":"9",
      "delete":"0"
    },
    {
      "tax_id":"3",
      "country":"ua",
      "tax_name":"Без налога",
      "tax_value":"0",
      "type":"1",
      "fixed":"0",
      "fiscal":"0",
      "fiscal_program":"0",
      "delete":"0"
    },
    {
      "tax_id":"4",
      "country":"US",
      "tax_name":"Фискальный",
      "tax_value":"5",
      "type":"2",
      "fixed":"0",
      "fiscal":"1",
      "fiscal_program":"0",
      "delete":"0"
    }
  ]
}

Метод возвращает все налоги

HTTP запрос

POST https://{account}.joinposter.com/api/finance.getTaxes

GET-параметры запроса finance.getTaxes

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа finance.getTaxes

Параметр Описание
response Объект ответа

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
tax_id id налога
country Страна
tax_name Название налога
tax_value Процент налога
fixed Признак фиксированный ли налог: 1 — фиксированный, 0 — нет
type Тип налога: 1 — НДС, 2 — с оборота
fiscal Признак фискальный ли налог: 1 — фискальный, 0 — не фискальный
fiscal_program Номер программы на фискальном регистраторе
delete Признак удаленный ли налог: 1 — удаленный, 0 — нет

finance.getTax: Получить налог

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getTax'
 . '?token=4164553abf6a031302898da7800b59fb'
 . '&tax_id=4';

$data = sendRequest($url);

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

{
  "response":{
    "tax_id":"4",
    "country":"US",
    "tax_name":"Фискальный",
    "tax_value":"5",
    "type":"2",
    "fixed":"0",
    "fiscal":"1",
    "fiscal_program":"0",
    "delete":"0"
  }
}

Метод возвращает налог

HTTP запрос

POST https://{account}.joinposter.com/api/finance.getTax

GET-параметры запроса finance.getTax

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
tax_id Обязательный параметр, id налога по которому возвращать информацию

Параметры ответа finance.getTax

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
tax_id id налога
country Двух символьный код страны
tax_name Название налога
tax_value Процент налога
fixed Признак фиксированный ли налог: 1 — фиксированный, 0 — нет
type Тип налога: 1 — НДС, 2 — с оборота
fiscal Признак фискальный ли налог: 1 — фискальный, 0 — не фискальный
fiscal_program Номер программы на фискальном регистраторе
delete Признак удаленный ли налог: 1 — удаленный, 0 — нет

finance.createTax: Создание налога

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.createTax'
 . '?token=4164553abf6a031302898da7800b59fb';

$tax = [
    'name'   => 'Фискальный налог',
    'value'  => 18,
    'type'   => 1,
    'fiscal' => 'on',
];

$data = sendRequest($url, 'post', $tax);

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

{  
  "response":{  
    "tax_id":3
  }
}

Метод создаёт налог

HTTP POST запрос

https://{account}.joinposter.com/api/finance.createTax

GET-параметры запроса finance.createTax

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса finance.createTax

Параметр Описание
name Название налога
value Процент налога
type Тип налога: 1 — добавленная стоимость, 2 — с оборота
fiscal Признак, использовать ли фискальность налога: “on” — использовать. По умолчанию не передаётся.
is_fixed Признак, зафиксировать ли налог: 0 — не фиксировать, 1 — зафиксировать. По умолчанию принимает 0.

Параметры ответа finance.createTax

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
tax_id Id созданного налога

finance.getReport: Отчет по категориям

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

<?php
$url = 'https://api-demo.joinposter.com/api/finance.getReport'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":{
    "periods":[
      {
        "title":"Oct 2017",
        "start":1508101200,
        "end":1509483599
      },
      {
        "title":"Nov 2017",
        "start":1509483600,
        "end":1510865999
      }
    ],
    "categories":{
      "7":{
        "category_id":"7",
        "name":"book_category_action_actualization",
        "parent_id":"0",
        "operations":"3",
        "action":"14",
        "level":"1",
        "left":"1",
        "right":"2",
        "delete":"0",
        "amounts": {
          "1":{
            "Nov 2017":200000
          }
        },
        "currency_symbol":"<i class=\"icon-rouble\"><\/i>"
      },
      "8":{
        "category_id":"8",
        "name":"book_category_action_banking_services",
        "parent_id":"0",
        "operations":"3",
        "action":"15",
        "level":"1",
        "left":"3",
        "right":"4",
        "delete":"0"
      }
    }
  }
}

Метод возвращает отчет по категориям

HTTP запрос

GET https://{account}.joinposter.com/api/finance.getReport

GET-параметры запроса finance.getReport

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
dateFrom Опциональный параметр, дата начала выборки в формате Ymd, включительно. По умолчанию дата месяц назад.
dateTo Опциональный параметр, дата конца выборки в формате Ymd, включительно. По умолчанию дата текущего дня.
account_id Опциональный параметр, id счета по которому возвращать отчет. По умолчанию по всем.
period Опциональный параметр, период выборки: 1 — годам, 2 — кварталам, 3 — месяцам, 4 — неделям, 5 — дням. По умолчанию 3 – по месяцам.

Параметры ответа finance.getReport

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
periods Массив содержит периоды по которым разбит отчет
categories Объект свойства которого — id категории а занчение — объект отчета

Объекты массива periods имеют следующие свойства

Параметр Описание
title Название периода: год, квартал, месяц, неделя, день
start Дата начала в формате unixtimestamp
end Дата конца перода в формате unixtimestamp

Каждое свойство объекта categories содержит следующие параметры

Параметр Описание
category_id id категории
name Название категории
delete Признак, удалена ли категория: 1 — удалена, 0 — нет
parent_id id родительской категории
operations Колличество транзакций проведенных в категории за выбранный период
action Тип категорий по действиям: 1 — переводы, 11 — кассовые смены, 12 — поставоки, 14 — актуализация, 0 — любой тип действия
left Id категории слева (по Nested Set)
right Id катергории справа (по Nested Set)
level Уровень вложенности ветки дерева категорий (по Nested Set)
currency_symbol Unicode символ валюты, для рубля, драма и маната приходит HTML который на терминале отобразиться как иконка валюты
amounts Всего расходов и доходов, в категории. Содержит в себе набор объектов. В каждом объекте свойство — это название периода из periods.title, значение это сумма в копейках за данный период.

access: Доступ

Методы по работе с разделом доступ. Все методы данного раздела начинаются с «access».

access.getEmployees: Список сотрудников

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.getEmployees'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "user_id":3,
      "name":"Семён Суханов",
      "user_type":90,
      "last_in":"2017-03-07 13:03:47"
    },
    {
      "user_id":9,
      "name":"Дарья Кошелева",
      "user_type":0,
      "last_in":"2017-03-07 14:03:03"
    },
    {
      "user_id":10,
      "name":"Вячеслав Максимочкин",
      "user_type":3,
      "last_in":"2017-03-07 10:03:06"
    },
    {
      "user_id":12,
      "name":"Рената Ковалёва",
      "user_type":50,
      "last_in":"0000-00-00 00:00:00"
    }
  ]
}

Метод возвращает список сотрудников

Все сотрудники имеют свою роль и права доступа:

HTTP GET запрос

https://{account}.joinposter.com/api/access.getEmployees

GET-параметры запроса access.getEmployees

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа access.getEmployees

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
user_id Id сотрудника
name Имя и фамилия сотрудника
user_type Роль сотрудника: 0 — официант, 1 — администратор, 2 — маркетолог, 3 — кладовщик, 4 — администратор зала, 50 — менеджер, 90 — владелец
last_in Дата последнего входа в админ-панель

access.createEmployee: Создание сотрудника

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.createEmployee'
 . '?token=4164553abf6a031302898da7800b59fb';

$employee = [
    'name'      => 'Рената Ковалёва',
    'user_type' => 2,
    'pos_pass'  => '',
    'login'     => 'renata.kovaljova@test.com',
    'pass'      => 'aZntaeVP9h',
];

$data = sendRequest($url, 'post', $employee);

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

{
  "response":15
}

Метод создаёт сотрудника

Все сотрудники имеют свою роль и права доступа:

HTTP POST запрос

https://{account}.joinposter.com/api/access.createEmployee

GET-параметры запроса access.createEmployee

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса access.createEmployee

Параметр Описание
name Имя и фамилия сотрудника
user_type Роль сотрудника: 0 — официант, 2 — маркетолог, 3 — кладовщик, 4 — администратор зала
pos_pass Pin-код официанта или администратора заведения для авторизации на терминале
login Логин сотрудника для доступа к системе администрирования, нужен только для маркетолога и кладовщика
pass Пароль сотрудника для доступа к системе администрирования, нужен только для маркетолога и кладовщика

Параметры ответа access.createEmployee

Параметр Описание
response Id созданного сотрудника

access.updateEmployee: Изменение свойств сотрудника

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.updateEmployee'
 . '?token=4164553abf6a031302898da7800b59fb';

$employee = [
    'user_id'   => 15,
    'name'      => 'Рената Ковалёва',
    'user_type' => 2,
    'pos_pass'  => '',
    'login'     => 'renata.kovaljova@test.com',
    'pass'      => 'aZntaeVP9h',
];

$data = sendRequest($url, 'post', $employee);

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

{
  "response":4082
}

Метод изменяет свойства сотрудника

Все сотрудники имеют свою роль и права доступа:

HTTP POST запрос

https://{account}.joinposter.com/api/access.updateEmployee

GET-параметры запроса access.updateEmployee

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса access.updateEmployee

Параметр Описание
user_id Id сотрудника
name Имя и фамилия сотрудника
user_type Роль сотрудника: 0 — официант, 2 — маркетолог, 3 — кладовщик, 4 — администратор зала
pos_pass Pin-код официанта или администратора заведения для авторизации на терминале
login Логин сотрудника для доступа к системе администрирования, нужен только для маркетолога и кладовщика
pass Пароль сотрудника для доступа к системе администрирования, нужен только для маркетолога и кладовщика

Параметры ответа access.updateEmployee

Параметр Описание
response Id измененного сотрудника

access.getTablets: Список терминалов

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.getTablets'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "tablet_id":"1",
      "tablet_name":"Основной на Мадридской",
      "spot_id":"1"
    },
    {
      "tablet_id":"2",
      "tablet_name":"Бар на Мадридской",
      "spot_id":"1"
    },
    {
      "tablet_id":"3",
      "tablet_name":"Терминал на Римской",
      "spot_id":"2"
    }
  ]
}

Метод возвращает список терминалов

HTTP GET запрос

https://{account}.joinposter.com/api/access.getTablets

GET-параметры запроса access.getTablets

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа access.getTablets

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
tablet_id Id терминала
tablet_name Название терминала
spot_id Id заведения к которому относится терминал

access.createTablet: Создание терминала

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.createTablet'
 . '?token=4164553abf6a031302898da7800b59fb';

$tablet = [
    'spot_id'          => 1,
    'spot_tablet_name' => 'Новый терминал',
    'spot_code'        => 'crsa5a54',
];

$data = sendRequest($url, 'post', $tablet);

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

{  
  "response":2
}

Метод создаёт терминал

HTTP POST запрос

https://{account}.joinposter.com/api/access.createTablet

GET-параметры запроса access.createTablet

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса access.createTablet

Параметр Описание
spot_id Id заведения к которому будет относиться терминал
spot_tablet_name Название терминала
spot_code Пароль терминала

Параметры ответа access.createTablet

Параметр Описание
response Id созданного терминала

access.updateTablet: Изменение свойств терминала

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.updateTablet'
 . '?token=4164553abf6a031302898da7800b59fb';

$tablet = [
    'spot_tablet_id'   => 2,
    'spot_id'          => 1,
    'spot_tablet_name' => 'Новый терминал',
    'spot_code'        => 'b3ss7m1p',
];

$data = sendRequest($url, 'post', $tablet);

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

{  
  "response":2
}

Метод изменяет свойства терминала

HTTP POST запрос

https://{account}.joinposter.com/api/access.updateTablet

GET-параметры запроса access.updateTablet

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса access.updateTablet

Параметр Описание
spot_tablet_id Id терминала
spot_id Id заведения к которому относится терминал
spot_tablet_name Название терминала
spot_code Пароль терминала

Параметры ответа access.updateTablet

Параметр Описание
response Id изменённого терминала

access.getSpots: Список заведений

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.getSpots'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":[
    {
      "spot_id":"1",
      "spot_name":"Заведение на Мадридской",
      "spot_adress":"Рим, ул. Мадридская, 14",
      "storages":[
        {
          "storage_id":1,
          "storage_name":"Склад на Мадридской",
          "storage_adress":"Рим, ул. Мадридская, 14"
        }
      ]
    },
    {
      "spot_id":"2",
      "spot_name":"Заведение на Римской",
      "spot_adress":"Мадрид, ул. Римская, 105",
      "storages":[
        {
          "storage_id":2,
          "storage_name":"Склад на Римской",
          "storage_adress":"Мадрид, ул. Римская, 105"
        }
      ]
    }
  ]
}

Метод возвращает список заведений

HTTP GET запрос

https://{account}.joinposter.com/api/access.getSpots

GET-параметры запроса access.getSpots

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
1c Позволяет вернуть в ответе id заведения в системе 1С. В качестве значения необходимо передать true. По умолчанию не передаётся.

Параметры ответа access.getSpots

Параметр Описание
response Массив объектов

Внутри параметра response лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
spot_id Id заведения
spot_name Название заведения
spot_adress Адрес заведения
id_1c Id заведения в системе 1С
storages Склады привязанные к заведению

Внутри параметра storages лежит массив, в каждом элементе которого есть следующие параметры:

Параметр Описание
storage_id Id склада
storage_name Название склада
storage_adress Адрес склада

access.createSpot: Создание заведения

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.createSpot'
 . '?token=4164553abf6a031302898da7800b59fb';

$spot = [
    'spot_name' => 'Новое заведение',
];

$data = sendRequest($url, 'post', $spot);

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

{  
  "response":2
}

Метод создаёт заведение

HTTP POST запрос

https://{account}.joinposter.com/api/access.createSpot

GET-параметры запроса access.createSpot

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса access.createSpot

Параметр Описание
spot_name Название заведения

Параметры ответа access.createSpot

Параметр Описание
response Id созданного заведения

access.updateSpot: Изменение свойств заведения

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

<?php
$url = 'https://api-demo.joinposter.com/api/access.updateSpot'
 . '?token=4164553abf6a031302898da7800b59fb';

$spot = [
    'spot_id'   => 2,
    'spot_name' => 'Изменённое заведение',
];

$data = sendRequest($url, 'post', $spot);

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

{  
  "response":2
}

Метод изменяет свойства заведения

HTTP POST запрос

https://{account}.joinposter.com/api/access.updateSpot

GET-параметры запроса access.updateSpot

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса access.updateSpot

Параметр Описание
spot_id Id заведения
spot_name Название заведения

Параметры ответа access.updateSpot

Параметр Описание
response Id изменённого заведения

payments: Оплата заказов

Методы для оплаты клиентских заказов сторонними платежными сервисами. Все методы данного раздела начинаются с payments.

payments.addTransactionPayment: уведомление об оплате клиентского заказа

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

<?
$url = 'https://joinposter.com/api/payments.addTransactionPayment?' .
  'format=json';

$application_secret = '123123123123';

$payment = [
  'type' => 'application-name',
  'merchant_id' => 3432343,
  'transaction_id' => '1474012061849',
  'payed_sum' => 369.00,
  'credited_sum' => 365.31,
];

$payment['sign'] = md5(implode(':', $payment) . ':' . $application_secret);

$answer = sendRequest($url, 'post', $payment);

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

{
  "response":{
    "status":"accept"
  }
}

Уведомление системы Poster об успешной оплате клиентского заказа через сторонний платежный сервис.

HTTP запрос

POST https://joinposter.com/api/payments.addTransactionPayment

GET-параметры запроса payments.addTransactionPayment

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса payments.addTransactionPayment

Параметр Описание
type Ключевое имя платежной системы, которое отправляет запрос о поступившей оплате. Под систему заводится отдельное приложение в системе Poster, где и указывается данное имя.
merchant_id Идентификатор клиента Poster во внутренней базе платежной системы
transaction_id id заказа, который был оплачен через платежную систему
payed_sum Сумма заказа, которую оплатил посетитель (в гривнах/рублях)
credited_sum Сумма, которая была зачислена на р/с клиента Poster (в гривнах/рублях). Это сумма заказа минус комиссия эквайринга.
sign Подпись запроса, является md5 хешем от строки, где через двоеточие соединены значения следующих переменных: type, merchant_id, transaction_id, payed_sum, credited_sum, application_secret.

application_secret — секретная строка приложения. Как и переменная type, выдается платежной системе во время создания под неё приложения в Poster.

Параметры ответа payments.addTransactionPayment

Параметр Описание
status В случае успешной обработки запроса, будет содержать значение accept

payments.getOpenTransactionsOnTable: список открытых чеков на столике

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

<?
$url = 'https://joinposter.com/api/payments.getOpenTransactionsOnTable?' .
  'format=json';

$application_secret = '123123123123';

$request = [
  'type' => 'application-name',
  'merchant_id' => 3432343,
  'table_id' => 41,
];

$request['sign'] = md5(implode(':', $request) . ':' . $application_secret);

$url .= '&' . http_build_query($request);

$answer = sendRequest($url);

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

{
  "response":[
    {
      "order_id":30139,
      "transaction_id":1484233370643,
      "date_open":1484233375235,
      "payed_sum":127.02,
      "products":[
        {
          "product_name":"Венский суп Гуляш"
        },
        {
          "product_name":"Медальоны из телятины с овощами гриль"
        },
        {
          "product_name":"Хлеб белый собственной выпечки"
        },
        {
          "product_name":"Кальян",
          "modificator_name":"на соке"
        },
        {
          "product_name":"Соус BBQ к блюду"
        },
        {
          "product_name":"Pepsi 300 ml"
        }
      ]
    },
    {
      "order_id":30946,
      "transaction_id":1485341938799,
      "date_open":1485341938872,
      "payed_sum":190,
      "products":[
        {
          "product_name":"Кролик по-охотничьи"
        }
      ]
    }
  ]
}

Возвращает стороннему платежному сервису заказы, что открыты в данный момент на конкретном столике.

HTTP запрос

GET https://joinposter.com/api/payments.getOpenTransactionsOnTable

GET-параметры запроса payments.getOpenTransactionsOnTable

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
type Ключевое имя платежной системы, которое отправляет запрос. Под систему заводится отдельное приложение в системе Poster, где и указывается данное имя.
merchant_id Идентификатор клиента Poster во внутренней базе платежной системы
table_id Идентификатор столика, для которого нужно получить открытые заказы
sign Подпись запроса, является md5 хешем от строки, где через двоеточие соединены значения следующих переменных: type, merchant_id, table_id, application_secret.

application_secret — секретная строка приложения. Как и переменная type, выдается платежной системе во время создания под неё приложения в Poster.

Параметры ответа payments.getOpenTransactionsOnTable

Параметр Описание
order_id Идентификатор заказа, который отображается в статистике и печатается на чеках
transaction_id Идентификатор заказа, используемый для последующего проведения платежа
date_open Время создания заказа в формате timestamp с миллисекундами
payed_sum Сумма, которую должен оплатить посетитель за заказ (в гривнах/рублях)
products Список заказанных посетителем товаров. Каждый элемент массива содержит имя товара в виде поля product_name, а также может содержать поле modificator_name, если это модификация товара.

franchise: Франшизы

Методы для работы с франшизами. Все методы данного раздела начинаются с franchise.

franchise.getTransactionsByClientId: Список транзакций клиента

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

<?
$url = 'https://api-demo.joinposter.com/api/franchise.getTransactionsByClientId'
    . '?format=json'
    . '&token=4164553abf6a031302898da7800b59fb'
    . '&client_id=4'
    . '&date_from=20170400';

$transactions = sendRequest($url);

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

{
  "response": {
    "date_from": "2017-04-01 00:00:00",
    "date_to": "2017-04-30 23:59:59",
    "transactions_count": 2,
    "transactions": [
      {
        "franchise_id": 7457,
        "transaction_id": 12870,
        "date_close": "2017-04-25 17:58:50",
        "sum": 246.4,
        "bonus": 0,
        "bonus_payed": 0,
        "products": [
          {
            "product_id": 832,
            "modificator_id": 0,
            "franchise_product_id": 322,
            "franchise_modification_id": 0,
            "sum": 246.4
          }
        ]
      },
      {
        "franchise_id": 888,
        "transaction_id": 44626,
        "date_close": "2017-04-12 16:25:42",
        "sum": 626,
        "bonus": 0,
        "bonus_payed": 0,
        "products": [
          {
            "product_id": 13,
            "modificator_id": 0,
            "franchise_product_id": 13,
            "franchise_modification_id": 0,
            "sum": 318
          },
          {
            "product_id": 10,
            "modificator_id": 0,
            "franchise_product_id": 10,
            "franchise_modification_id": 0,
            "sum": 308
          }
        ]
      }
    ]
  }
}

Метод возвращает транзакции клиента по всем франшизам за указанный период

HTTP запрос

GET https://{account}.joinposter.com/api/franchise.getTransactionsByClientId

GET-параметры запроса franchise.getTransactionsByClientId

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен.
client_id Id клиента в мастер-аккаунте.
date_from Опциональный параметр. Дата начала выборки (Ymd), включительно. По умолчанию дата месяц назад.
date_to Опциональный параметр. Дата конца выборки (Ymd), включительно. По умолчанию дата текущего дня.

Параметры ответа franchise.getTransactionsByClientId

Параметр Описание
date_from Дата начала выборки
date_to Дата конца выборки
transactions_count Количество найденных транзакций
transactions Список транзакций

Внутри transactions лежит массив, в каждом элементе которого есть следующие свойства:

Параметр Описание
franchise_id Id франшизы текущей транзакции
transaction_id Id транзакции в текущей франшизе
date_close Дата закрытия транзакции
sum Общая сумма по транзакции
bonus Начисленные бонусы по транзакции
bonus_payed Оплаченные бонусы по транзакции
products Список продуктов

Внутри products лежит массив, в каждом элементе которого есть следующие свойства:

Параметр Описание
product_id Id продукта в мастер-аккаунте
modificator_id Id модификатора продукта в мастер-аккаунте
franchise_product_id Id продукта в текущей франшизе
franchise_modification_id Id модификатора продукта в текущей франшизе
sum Стоимость продукта

settings: Настройки аккаунта

Методы для работы с разделом настроек аккаунта. Все методы данного раздела начинаются с «settings».

settings.getCurrency: Валюта аккаунта

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getCurrency'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{  
  "response":{  
    "currency_id":"2",
    "currency_name":"Рубль",
    "currency_code":"руб.",
    "currency_symbol":"<i class=\"icon-rouble\"><\/i>",
    "currency_code_iso":"RUB"
  }
}

Метод возвращает валюту аккаунта

HTTP запрос

POST https://{account}.joinposter.com/api/settings.getCurrency

GET-параметры запроса settings.getCurrency

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа settings.getCurrency

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующие параметры:

Параметр Описание
currency_id Id валюты в Poster
currency_name Название валюты
currency_code Код валюты на терминале
currency_symbol Unicode символ валюты, для рубля, драма и маната приходит HTML который на терминале отобразиться как иконка валюты
currency_code_iso Цифровой код валюты по стандарту ISO 4217

settings.getCompanyName: Название аккаунта

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getCompanyName'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":{
    "value":"Демо-версия Poster"
  }
}

Метод возвращает название аккаунта

HTTP запрос

POST https://{account}.joinposter.com/api/settings.getCompanyName

GET-параметры запроса settings.getCompanyName

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа settings.getCompanyName

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующий параметр:

Параметр Описание
value Строка с названием аккаунта

settings.getCompanyType: Тип заведения

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getCompanyType'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":{
    "value":"1"
  }
}

Метод возвращает тип заведения

HTTP запрос

POST https://{account}.joinposter.com/api/settings.getCompanyType

GET-параметры запроса settings.getCompanyType

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа settings.getCompanyType

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующий параметр:

Параметр Описание
value Признак типа заведения: 1 — кафе, 2 — магазин

settings.getTimeZones: Часовой пояс аккаунта

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getTimeZones'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":{
    "value":"Europe\/Kiev"
  }
}

Метод возвращает часовой пояс аккаунта

HTTP запрос

POST https://{account}.joinposter.com/api/settings.getTimeZones

GET-параметры запроса settings.getTimeZones

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа settings.getTimeZones

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующий параметр:

Параметр Описание
value Строка с часовым поясом аккаунта

settings.getLanguage: Язык аккаунта

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getLanguage'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":{
    "value":"ru"
  }
}

Метод возвращает язык аккаунта

HTTP запрос

POST https://{account}.joinposter.com/api/settings.getLanguage

GET-параметры запроса settings.getLanguage

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

Параметры ответа settings.getLanguage

Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующий параметр:

Параметр Описание
value Строка с языком аккаунта, в формате ISO 639. Украинский язык обозначается как ua.

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getLogo'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
  "response":{
    "value":"\/upload\/4\/icon.png"
  }
}

Метод возвращает логотип компании

HTTP запрос

POST https://{account}.joinposter.com/api/settings.getLogo

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.
Параметр Описание
response Объект ответа

Внутри параметра response лежит объект, внутри которого есть следующий параметр:

Параметр Описание
value Ссылка на логотип компании. Логотип хранится на домене https://{account}.joinposter.com.

settings.getAllSettings: Настройки аккаунта

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.getAllSettings'
 . '?token=4164553abf6a031302898da7800b59fb';

$data = sendRequest($url);

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

{
    "response": {
        "COMPANY_ID": "demo",
        "FIZ_ADRESS_CITY": "joinposter.com",
        "FIZ_ADRESS_PHONE": "74993466863",
        "uses_tables": 1,
        "uses_cash_shifts": 1,
        "uses_taxes": 1,
        "uses_multiprice": 0,
        "tip_amount": 10,
        "uses_bookkeeping": 1,
        "uses_ipay": 0,
        "uses_manufacturing": 0,
        "uses_quick_waiter": 0,
        "company_name": "Демо-версия Poster",
        "company_type": 1,
        "timezones": "Europe/Kiev",
        "logo": "/upload/pos_cdb_4/icon.png",
        "lang": "ru",
        "pos_phone": "74993466863",
        "analytics_plus_time": 0,
        "uses_fiscality": 0,
        "print_fiscal_by_default": 0,
        "currency": {
            "currency_id": 1,
            "currency_name": "Гривна",
            "currency_code": "грн.",
            "currency_symbol": "₴",
            "currency_code_iso": "UAH"
        },
        "email": "root@joinposter.com",
        "name": "Demo"
    }
}

Метод возвращает данные по настройкам аккаунта

HTTP GET запрос

https://{account}.joinposter.com/api/settings.getAllSettings

GET-параметры запроса settings.getAllSettings

Параметр Описание
format Указываем формат выдачи ответа. Может быть xml или json. По умолчанию json.
token Авторизационный токен.

Параметры ответа settings.getAllSettings

Параметр Описание
COMPANY_ID Название аккаунта
FIZ_ADRESS_CITY Адрес заведения
FIZ_ADRESS_PHONE Телефон заведения
uses_tables Признак используется ли карта столов: 0 — не используется, 1 — используется
uses_cash_shifts Признак, используются ли кассовые смены: 0 — не используются, 1 — используются
uses_taxes Признак, используются ли налоги: 0 — не используются, 1 — используются
uses_multiprice Признак, используются ли разные цены в разных заведениях: 0 — не используются, 1 — используются
tip_amount Процент за обслуживание
uses_bookkeeping Признак, используется ли бухгалтерия: 0 — не используется, 1 — используется
uses_ipay Признак, принимается ли оплата через iPay: 0 — не принимается, 1 — принимается
uses_manufacturing Признак, используется ли производство: 0 — не используется, 1 — используется
uses_quick_waiter Признак, используется ли быстрая смена официанта: 0 — не используется, 1 — используется
company_name Название заведения
company_type Тип заведения: 1 – кафе, 2 — магазин
timezones Часовой пояс
logo Ссылка на логотип аккаунта
lang Язык в формате ISO 639. Украинский язык обозначается как ua.
pos_phone Телефон владельца аккаунта
analytics_plus_time Бизнес-время окончания работы заведения
uses_fiscality Признак, используется ли фискализация: 0 — не используется, 1 — используется
print_fiscal_by_default Признак, печатаются ли фискальные чеки по умолчанию: 0 — не печатаются, 1 — печатаются
email Эл. почта владельца аккаунта
name Имя владельца аккаунта
currency Валюта аккаунта

Внутри элемента currency лежит массив, в каждом элементе которого есть следующие свойства:

Параметр Описание
currency_id Id валюты в Poster
currency_name Название валюты
currency_code Код валюты на терминале
currency_symbol Unicode символ валюты, для рубля, драма и маната приходит HTML который на терминале отобразиться как иконка валюты
currency_code_iso Цифровой код валюты по стандарту ISO 4217

settings.changeSettings: Изменение свойств настроек клиентского аккаунта

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

<?php
$url = 'https://api-demo.joinposter.com/api/settings.changeSettings'
 . '?token=4164553abf6a031302898da7800b59fb';

$settings = [
    'uses_taxes'              => 1,
    'uses_cash_shifts'        => 0,
    'uses_fiscality'          => 0,
    'print_fiscal_by_default' => 0,
    'timezones'               => 'Europe/Moscow',
];

$data = sendRequest($url, 'post', $settings);

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

{  
  "response":true
}

Метод изменяет свойства настроек клиентского аккаунта

HTTP POST запрос

https://{account}.joinposter.com/api/settings.changeSettings

GET-параметры запроса settings.changeSettings

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса settings.changeSettings

Параметр Описание
uses_taxes Признак, использовать ли налоги: 0 — не использовать, 1 — использовать. По умолчанию не передаётся.
uses_cash_shifts Признак, использовать ли кассовые смены: 0 — не использовать, 1 — использовать. По умолчанию не передаётся.
uses_fiscality Признак, использовать ли фискализацию: 0 — не использовать, 1 — использовать. По умолчанию не передаётся.
print_fiscal_by_default Признак, печатать ли фискальный чек по умолчанию: 0 — не печатать, 1 — печатать. По умолчанию не передаётся.
timezones Часовой пояс. По умолчанию не передаётся.

Параметры ответа settings.changeSettings

Параметр Описание
response true, если свойства настроек клиентского аккаунта успешно изменены

application: Приложение

Методы для работы с разделом приложением Poster. Все методы данного раздела начинаются с «application».

application.setEntityExtras: Изменение дополнительных данных сущности

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

<?php
$url = 'https://api-demo.joinposter.com/api/application.setEntityExtras'
 . '?token=4164553abf6a031302898da7800b59fb';

$extras = [
    "entity_type"   => "staff",
    "entity_id"     => 4,
    "extras"        => [
        "staff-token" => "lva23gds1793skd0123apsod10230wqoe0oe01"
    ]
];

$data = sendRequest($url, 'post', $extras);

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

{
  "response":true
}

В Poster есть понятие сущности, например: терминал, столы в заведении, клиент, официант и т.п. Этим методом вы можете расширить информацию о любой сущности. Например, вы пишите приложение на POS платформе, вам нужно авторизовать пользователя и сохранить его токен для дальнейших запросов. При перезагруке планшета, токен удалится из памяти, но вы можете сохранить его в сущности tablet. Теперь когда терминал загрузится, все настройки можно получить методом access.getTablets или в объекте Poster.settings.spotTabletExtras.

HTTP запрос

POST https://{account}.joinposter.com/api/application.setEntityExtras

GET-параметры запроса application.setEntityExtras

Параметр Описание
token Авторизационный токен
format Опциональный параметр, указывающий формат выдачи ответа. Может быть xml или json. По умолчанию json.

POST-параметры запроса application.setEntityExtras

Параметр Описание
entity_type Обязательный параметр, тип сущности в которую записываются параметры. Доступные варианты сущностей описаны ниже.
entity_id Обязательный параметр, id сущности в которую будет записан объект extras. Например, для метода access.getTabletstablet_id.
extras Обязательный параметр, объект поля которого будут записаны в сущность

Параметры ответа application.setEntityExtras

Параметр Описание
response Результат запроса, true – если запрос выполнен успешно

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

Сущность Описание
spot Заведение
tablet Терминал
staff Cотрудник
clients_group Группа клиента
product Товар или тех. картра
ingredient Ингредиент
menu_category Категория товара или модификатора
ingredients_category Категория ингредиента
client Клиент заведения

errors: Коды ошибок

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

{  
  "error":{  
    "code":11,
    "message":"Bad access token"
  }
}

Poster API в своих ответах может возвращать следующие ошибки:

Код ошибки Описание
10 Не указан access_token
11 Неверный access_token
12 Истёк срок действия access_token
20 У приложения недостаточно прав для вызова данного метода
32 Id не существует
34 Пустое поле
36 Переменная должна быть массивом
38 Такое название уже существует
42 Переменной не существует
44 Ошибка сохранения данных
52 Диапазон дат должен быть не более 3-х дней
54 Доступ запрещен
99 Дублирование сущности
400 Неверный формат запроса, отсутствуют необходимые данные
404 Запись не найдена
4001 Неверная валюта

POS Platform: Введение

Платформа на терминале (POS Platform) — это технология, которая позволяет сторонним разработчикам расширить функциональность кассового решения Poster. Используйте платформу на терминале для приложений, с которыми взаимодействует официант или кассир. Например:

Технологии

У Poster гибридная архитектура, основная часть бизнес-логики приложения написана с использованием веб-технологий. Приложение на платформе для терминала выполняются на Javascript. Вы можете писать приложение на любом языке, который компилириуется в JS (CoffeeScript, TypeScript). Приложение загружается в систему в виде одного JS-файла (bundle).

Все ресурсы, которые используют приложение (css, изображения, шрифты, звуки), должны быть включены в bundle. Для этого нужно использовать сборщики. В примерах, которые вы найдете в документации, используется сборщик webpack.

JS-файл с приложением запускается внутри специального контейнера на кассе. Контейнер представляет из себя Iframe со встроенными методами, с помощью которых приложение общается с Poster. Приложение в