- Стоимость
- Тарифные планы
- Публичная оферта
- О компании
- Обновления
- Контакты
- Политика конфиденциальности
© 2017 - 2025 "Партнёр Магазин" - Программа для торговли №1
Данные для доступа будут отправлены на электронную почту
Данные для доступа отправлены на указанную электронную почту
Вопросы можно задавать в разделе Управление - Служба поддержки
Если необходима помощь по автоматизации заведения и внедрению продукта на платной основе, посетите раздел внедрение
Начать работуAPI - используется для внесения и получения данных в программу "Партнёр:Магазин" из внешних/сторонних сервисов, например, прием заказов в программу из сайта автоматически, и отображение на сайте статуса заказа.
Взаимодействие с API происходит с помощью отправки HTTP запроса POST (application/x-www-form-urlencoded) на адрес API
Авторизация на API происходит с помощью токена - ключа авторизации.
Токен можно получить/изменить в программе учета в разделе Настройки.
С помощью токена происходит определение пользователя программы Партнёр.
В случае если токен задан не верно в ответ от сервера придет ошибка с указанием параметра error: token_invalid
Адрес для запроса: - https://shop.mypar.ru/api/?метод
Для каждого метода определены обязательные параметры.
Сервер отправит ответ в виде JSON массива.
В ответе обязательно содержится параметр result, в случае успешной обработки его значение: success
Количество отправки запросов ограничено -
не более 60 запросов в секунду с одного IP адреса
В случае превышения лимита - сервер ответит ошибкой - limit_requests.
Ошибки разделяются на критичные (ошибки, при возникновении которых действие не происходит) и уведомления.
В случае возникновения критичной ошибки API отправляет в ответ JSON массив:
result: error;
error: ошибка;
Пример ответа от сервера API при неправильном указании токена:
Ответ API:
{
"result":"error",
"error":"token_invalid"
}
Уведомления указываются в ответе как параметр warnings.
warnings - массив уведомлений, в котором указываются причины уведомления,
Например, при отправке заказа для формирования с несуществующим статусом, заказ сохранится, но при этом в ответе будет содержаться уведомление.
Пример отправки заказа с кодом статуса "124" (не существующим)
Ответ API:
{
"result":"success",
"order_id":"98",
"order_number":53,
"warnings":
{
"status_invalid":124
}
}
Критичные:
В разделе Настройки, можно включить опцию - Принимать цену на позицию по API
Если опция включена, в случае, если в запросе указана цена позиции - в заказ будет сохранена указанная цена, если отключена - цены на позиции используются исключительно из справочника в программе учета.
Адрес для запроса: - https://shop.mypar.ru/api/?order_add
product_parent - массив модификаторов, в котором значение элемента массива равно ключу родителя в массиве product.
Пример (PHP)
$product[0]="10001"; //Добавили позицию с ключом 10001 - товар "Пицца Гавайская"
$product[1]="10002"; //Добавили позицию с ключом 10002 - "Курица"
$product[2]="10003"; //Добавили позицию с ключом 10003 - "Помидоры"
$product_amount[0]="1";
$product_amount[1]="1";
$product_amount[2]="1";
$product_parent[1]="0"; //"0" - ключ родителя позиции в массиве $product
$product_parent[2]="0"; //"0" - ключ родителя позиции в массиве $product
Таким образом добавили пиццу с дополнительными ингредиентами курицей и помидорами.
product_price - массив с указанием цены позиций
sale - скидка на чек в процентах (цифры)
sale_amount - скидка на чек суммой (число, разделяется ".")
margin - наценка на чек в процентах (цифры)
score - баллы со счета клиента для оплаты
(коэффициент баллов к валюте оплаты - 1к1)
branch - филиал, код (указан в разделе Управление - Филиалы)
(По умолчанию - 1)
point - точка продаж, код (указан в разделе Управление - Точки продаж)
(По умолчанию - 1)
channel - канал продаж, код (указан в разделе Управление - Каналы продаж)
marks - отметки заказа (код API, через запятую)
note - примечание к заказу (не более 255 символов)
payment - способ оплаты (код API, указан в справочнике)
delivery - способ получения
(код 1 - Зал, 2 - Доставка, 3 - Самовывоз)
status - статус заказа
(код API указан в справочнике)bond - купюра - сумма, с которой необходимо рассчитать сдачу
datetime - дата и время для предзаказа, только будущее время
(Указывается в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС")
certificate - номер сертификата для использования в заказе
person_number - количество персон
table - номер стола
phone - номер телефона клиента
card - номер карты (дисконтной, клубной) клиента
mail - e-mail телефона клиента
name - имя клиента
(Если не указано, но указан номер телефона, используется имя из справочника клиентов)
street_id - идентификатор улицы (код API, указан в справочнике улиц)
city - город
street - улица
house - номер дома
structure - строение
build - корпус
entrance - номер подъезда
floor - этаж
flat - квартира или офис
intercom - код домофона
new_address - указать 1, для сохранения адреса как дополнительного в карточку клиента
webhook_url - адрес отправки вебхука, string
webhook_statuses - список статусов для отправки вебхука (код API, через запятую), string
Если параметр street_id указан:
используется улица из справочника с соответствующим идентификационным кодом (См. в «Справочники» – «Улицы» - код API).
Если параметр street_id не указан или не найден в справочнике:
проверяются параметры city (город) и street (улица):
для привязки улицы к заказу параметр street – должен быть заполнен обязательно;
При включенной функции автоматического определения филиала по адресу обязательно должен быть указан город (параметр city), при этом город должен присутствовать в справочнике.
При выключенной функции автоматического определения филиала, в случае, если город (параметр city) не указан или отсутствует в справочнике – используется город филиала (см. в «Управление» - «Филиалы» - Город).
Если не указан параметр branch (филиал) – устанавливается филиал по умолчанию, код API – 1 (см. в «Управление» - «Филиалы» - код API).
Пример отправки запроса сохранения заказа на PHP используя Curl.
/* Подготовка данных на стороне интернет-магазина/приложения/сервиса */
$product[0] = "14"; //Позиция с артикулом 14 - Салат цезарь
$product[1] = "10001"; //Позиция с артикулом 10001 - Пицца Гавайская
$product[2] = "10003"; //Позиция с артикулом 10003 - Помидоры
$product_amount[0] = "2";
$product_amount[1] = "1";
$product_amount[2] = "1";
$table = 3;
$name = "Антон";
$token = "Значение_токена";
$webhook_url = "https://myserver.com";
$webhook_statuses = "4, 13, 10";
/* Подготовка данных для отправки запроса */
$data = "";
$data .= "token=" . $token . "&";
$data .= "name=" . $name . "&";
$data .= "table=" . $table . "&";
$data .= "webhook_url=" . $webhook_url . "&";
$data .= "webhook_statuses=" . $webhook_statuses . "&";
foreach ($product as $key => $value) {
$data .= "product[" . $key . "]=" . $value . "&";
$data .= "product_amount[" . $key . "]=" . product_amount[$key] . "&";
if (isset($product_parent[$key])) {
$data .= "product_parent[" . $key . "]=" . $product_parent[$key] . "&";
}
}
/* Отправка с помощью CURL */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://shop.mypar.ru/api/?order_add");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_AUTOREFERER,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIESESSION,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
/* Вывод на экран информации о результате */
if ($result == NULL) {
echo "Error:\n";
echo curl_errno($ch) . " - " . curl_error($ch) . "\n";
}
curl_close($ch);
echo $result;
cash_close - смена филиала закрыта
product_article_invalid - не найдены позиции с отправленными артикулами
product_list_empty - не верно заполнены артикулы или количество позиций
orders_limit - достигнут предел количества заказов по тарифу
product_invalid - неверный артикул (массив - [отправленный ключ массива] = артикул)
product_amount_invalid - количество позиции = 0 (массив - [отправленный ключ массива] = артикул)
certificate_number_invalid - номер сертификата неверный (значение отправленного номера)
certificate_used - сертификат использован
certificate_overdue - сертификат просрочен (дата, до которой действовал)
clients_score_surplus - баллов указано больше чем сумма заказа (установлено на значение суммы заказа)
clients_score_deficit - нехватает баллов для списания, указывает сколько было на счете (установлен остаток со счета)
bond_invalid - купюра меньше чем счет и не равна 500, 1000, 5000 (рассчет сдачи не выполняется)
datetime_invalid - ошибка предзаказа (возможные значения: period_invalid - неверный период, format_invalid - неверный формат
payment_invalid - Не существующий способ оплаты (указан отправленный способ, отметка об оплате не устанавливается)
channel_invalid - Не существующий канал продаж (указан отправленный)
tag_invalid - Не существующая отметка (указаны неверные значения через запятую)
status_invalid - Не существующий статус (установлен статус "Новый")
city_invalid - Неверно указан город при включенной функции автоматического определения филиала по адресу
result - success
order_id - Системный номер заказа
order_number - Номер чека
С помощью API можно внести изменения в заказ.
Список позиций в заказе необходимо отправлять полностью. Остальные данные, не переданные данным методом, но сохраненные при создании заказа, останутся прежними.
Адрес для запроса: - https://shop.mypar.ru/api/?order_edit
product_parent - массив модификаторов, в котором значение элемента массива равно ключу родителя в массиве product.
Пример (PHP)
$product[0]="10001"; //Добавили позицию с ключом 10001 - товар "Пицца Гавайская"
$product[1]="10002"; //Добавили позицию с ключом 10002 - "Курица"
$product[2]="10003"; //Добавили позицию с ключом 10003 - "Помидоры"
$product_amount[0]="1";
$product_amount[1]="1";
$product_amount[2]="1";
$product_parent[1]="0"; //"0" - ключ родителя позиции в массиве $product
$product_parent[2]="0"; //"0" - ключ родителя позиции в массиве $product
Таким образом добавили пиццу с дополнительными ингредиентами курицей и помидорами.
product_price - массив с указанием цены позиций
sale - скидка на чек в процентах (цифры)
sale_amount - скидка на чек суммой (число, разделяется ".")
margin - наценка на чек в процентах (цифры)
score - баллы со счета клиента для оплаты
(коэффициент баллов к валюте оплаты - 1к1)
branch - филиал, код (указан в разделе Управление - Филиалы)
(По умолчанию - 1)
point - точка продаж, код (указан в разделе Управление - Точки продаж)
(По умолчанию - 1)
channel - канал продаж, код (указан в разделе Управление - Каналы продаж)
marks - отметки заказа (код API, через запятую)
note - примечание к заказу (не более 255 символов)
payment - способ оплаты (код API, указан в справочнике)
delivery - способ получения
(код 1 - Зал, 2 - Доставка, 3 - Самовывоз)
status - статус заказа
(код API указан в справочнике)bond - купюра - сумма, с которой необходимо рассчитать сдачу
datetime - дата и время для предзаказа, только будущее время
(Указывается в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС")
certificate - номер сертификата для использования в заказе
person_number - количество персон
table - номер стола
phone - номер телефона клиента
card - номер карты (дисконтной, клубной) клиента
mail - e-mail телефона клиента
name - имя клиента
(Если не указано, но указан номер телефона, используется имя из справочника клиентов)
street_id - идентификатор улицы (код API, указан в справочнике улиц)
city - город
street - улица
house - номер дома
structure - строение
build - корпус
entrance - номер подъезда
floor - этаж
flat - квартира или офис
intercom - код домофона
new_address - указать 1, для сохранения адреса как дополнительного в карточку клиента
Если параметр street_id указан:
используется улица из справочника с соответствующим идентификационным кодом (См. в «Справочники» – «Улицы» - код API).
Если параметр street_id не указан или не найден в справочнике:
проверяются параметры city (город) и street (улица):
для привязки улицы к заказу параметр street – должен быть заполнен обязательно;
При включенной функции автоматического определения филиала по адресу обязательно должен быть указан город (параметр city), при этом город должен присутствовать в справочнике.
При выключенной функции автоматического определения филиала, в случае, если город (параметр city) не указан или отсутствует в справочнике – используется город филиала (см. в «Управление» - «Филиалы» - Город).
Если не указан параметр branch (филиал) – устанавливается филиал по умолчанию, код API – 1 (см. в «Управление» - «Филиалы» - код API).
Пример отправки запроса изменения заказа на PHP используя Curl.
/* Подготовка данных на стороне интернет-магазина/приложения/сервиса */
$product[0] = "14"; //Позиция с артикулом 14 - Салат цезарь
$product[1] = "10001"; //Позиция с артикулом 10001 - Пицца Гавайская
$product[2] = "10003"; //Позиция с артикулом 10003 - Помидоры
$product_amount[0] = "2";
$product_amount[1] = "1";
$product_amount[2] = "1";
$order_id = 11221;
/* Подготовка данных для отправки запроса */
$data = "";
$data .= "order_id=" . $order_id . "&";
$data .= "token=" . $token . "&";
foreach ($product as $key => $value) {
$data .= "product[" . $key . "]=" . $value . "&";
$data .= "product_amount[" . $key . "]=" . product_amount[$key] . "&";
if (isset($product_parent[$key])) {
$data .= "product_parent[" . $key . "]=" . $product_parent[$key] . "&";
}
}
/* Отправка с помощью CURL */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://shop.mypar.ru/api/?order_edit");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_AUTOREFERER,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIESESSION,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
/* Вывод на экран информации о результате */
if ($result == NULL) {
echo "Error:\n";
echo curl_errno($ch) . " - " . curl_error($ch) . "\n";
}
curl_close($ch);
echo $result;
cash_close - смена филиала закрыта
product_article_invalid - не найдены позиции с отправленными артикулами
product_list_empty - не верно заполнены артикулы или количество позиций
orders_limit - достигнут предел количества заказов по тарифу
product_invalid - неверный артикул (массив - [отправленный ключ массива] = артикул)
product_amount_invalid - количество позиции = 0 (массив - [отправленный ключ массива] = артикул)
certificate_number_invalid - номер сертификата неверный (значение отправленного номера)
certificate_used - сертификат использован
certificate_overdue - сертификат просрочен (дата, до которой действовал)
clients_score_surplus - баллов указано больше чем сумма заказа (установлено на значение суммы заказа)
clients_score_deficit - нехватает баллов для списания, указывает сколько было на счете (установлен остаток со счета)
bond_invalid - купюра меньше чем счет и не равна 500, 1000, 5000 (рассчет сдачи не выполняется)
datetime_invalid - ошибка предзаказа (возможные значения: period_invalid - неверный период, format_invalid - неверный формат
payment_invalid - Не существующий способ оплаты (указан отправленный способ, отметка об оплате не устанавливается)
channel_invalid - Не существующий канал продаж (указан отправленный)
tag_invalid - Не существующая отметка (указаны неверные значения через запятую)
status_invalid - Не существующий статус (установлен статус "Новый")
city_invalid - Неверно указан город при включенной функции автоматического определения филиала по адресу
result - success
order_id - Системный номер заказа
order_number - Номер чека
Информацию о заказе можно получить с помощью:
Адрес для запроса: - https://shop.mypar.ru/api/?order_info
not_found - заказ не найден
result - success
order_id - системный номер заказа
order_number - номер чека
phone - номер телефона клиента
client_name - имя клиента
total_price - сумма заказа итого
status - код API статуса заказа
status_text - название статуса
statuses_time - массив, где ключ: API код статуса, значение: время установки статуса
waiters - массив, с именами сотрудников, "привязанных" к заказу
Пример ответа API
Ответ API:
{
"result":"success",
"order_id":"102",
"phone":"84951111111",
"client_name":"Иван Иванович",
"total_price":"1010",
"status":"10",
"status_text":"Выполнен",
"statuses_time":
{
"1":"2017-07-14 20:03:44",
"10":"2017-07-14 21:30:08"
},
"waiters":["Алексей"]
}
Позволяет выгрузить список позиций, у которых установлен параметр артикул.
Адрес для запроса: - https://shop.mypar.ru/api/?info_products
not_found - позиций с артикулами не обнаружено
result - success
product_id - массив с артикулами позиций, в случае отсутствия артикула передается "No article"
product_category - массив с названиями категорий
product_category_id - массив с Id категорий
product_description - массив с описаниями позиций
product_filial - массив с кодами филиалами позиций, (0 - На все филиалы, в случае указания нескольких филиалов на позицию, через запятую). Код филиала можно увидеть в разделе Управление (правая кнопка меню) - Филиалы - Код API
product_text - массив с наименованиями позиций
product_price - массив с ценами позиций
product_image - массив с Url-адресами изображения позиций
product_stock - массив с остатками позиций из стоп-листа. Передается ввиде массива с ключем - филиал, значением - остаток. В случае отсутствия в стоп-листе - пустой массив.
product_modificator - массив со значением, 1 или 0, является ли позиция модификатором, или позицией основного меню.
Пример ответа API
Ответ API:
{
"result":"success",
"product_id": {
"0":"15",
"1":"No article"
},
"product_category": {
"0":"Салаты",
"1":"Салаты"
},
"product_category_id": {
"0":"1",
"1":"2"
},
"product_description": {
"0":"Салат айсберг, креветки, соус цезарь",
"1":"Салат айсберг, курица, соус цезарь"
},
"product_filial": {
"0":"0",
"1":"1,2"
},
"product_text": {
"0":"Цезарь с креветками",
"1":"Цезарь с курицей"
},
"product_price": {
"0":"360",
"1":"290"
},
"product_image": {
"0":"https://stockimages.com/...",
"1":""
},
"product_stock": {
"0": {},
"1": {
"1":"0",
"2":"3"
}
},
"product_modificator": {
"0":"0",
"1":"0"
}
}
Позволяет выгрузить список категорий позиций, в том числе модификаторов
Адрес для запроса: - https://shop.mypar.ru/api/?info_category
not_found - Нет категорий
result - success
id - массив с Id категорий
name - массив с названиями категорий
filial - массив с кодами филиалами категорий, (0 - На все филиалы, в случае указания нескольких филиалов на позицию, через запятую). Код филиала можно увидеть в разделе Управление (правая кнопка меню) - Филиалы - Код API
parent - массив указанием родителя категории, 0 - Корневая категория
hidden - массив с указанием отметки "скрытая" категория, 1 или 0
modificators - массив с указанием, является ли категория - категорией модификаторов, или же доступна в основном меню
sort - массив с указанием сортировки категорий, числа от меньшего к большему
Пример ответа API
Ответ API:
{
"result":"success",
"id": {
"0":"1",
"1":"2",
"2":"3"
},
"name": {
"0":"Салаты",
"1":"Супы",
"2":"Роллы"
},
"filial": {
"0":"1",
"1":"0",
"1":"1,2"
},
"parent": {
"0":"0",
"1":"0",
"2":"0"
},
"hidden": {
"0":"0",
"1":"0",
"2":"0"
},
"modificators": {
"0":"0",
"1":"0",
"2":"0"
},
"sort": {
"0":"2",
"1":"1",
"2":"3"
}
}
Позволяет выгрузить список с информацией о филиалах
Адрес для запроса: - https://shop.mypar.ru/api/?info_filials
not_found - Нет филиалов
result - success
id - массив с API кодом филиалов
name - массив с названиями филиалов
city - массив с названием города филиалов
address - массив с адресами филиалов
coordinates - массив с координатами адреса филиалов
utc - массив с указанием смещения времени часового пояса для филиалов
Пример ответа API
Ответ API:
{
"result":"success",
"id": {
"0":"1",
"1":"2"
},
"name": {
"0":"Москва",
"1":"Питер"
},
"city": {
"0":"Москва",
"1":"Санкт-Петербург"
},
"address": {
"0":"ул. ....., дом. ...",
"1":"ул. ....., дом. ..."
},
"coordinates": {
"0":"55.755814,37.617635",
"1":"59.9386, 30.3141"
},
"utc": {
"0":"3",
"1":"3"
}
}
Позволяет выгрузить информацию о клиенте по его номеру телефона
Адрес для запроса: - https://shop.mypar.ru/api/?info_client
not_found - не верный номер телефона или дисконтной карты
result - success
register_date - имя клиента
card - номер дисконтной карты
phone - номер телефона
mail - электронная почта (E-mail)
sale - личная скидка клиента (%)
birthday - дата рождения
street - улица (город, улица)
house - номер дома
structure - строение
build - корпус
entrance - подъезд
floor - этаж
flat - квартира
intercom - домофон
note - комментарий клиента
channel - канал продаж - код API
channel_text - канал продаж - текст
black_list - черный список (если присутствует 1, иначе 0)
score - баланс лицевого счета (бонусные баллы)
bill_cnt - количество заказов клиента
bill_total - общая сумма заказов клиента
Пример ответа API
Ответ API:
{
"result":"success",
"name":"Иван Иванович",
"register_date":"01.01.2017",
"card":"0",
"phone":"84951111111",
"mail":"",
"sale":"0",
"birthday":"01.01.1970",
"street":"Знаменские садки",
"house":"7",
"structure":"",
"build":"",
"entrance":"",
"floor":"",
"flat":"",
"intercom":"",
"note":"",
"channel":"0",
"channel_text":"Не указан",
"black_list":"0",
"score":"176",
"bill_cnt":"5",
"bill_total":"3587"
}
Позволяет выгрузить информацию о сертификате по его номеру
Адрес для запроса: - https://shop.mypar.ru/api/?info_certificate
not_found - не верный номер сертификата
result - success
type - тип сертификата цифрой
type_text - тип сертификата в текстовом виде
create_date - дата создания (дд.мм.гггг)
finish_date - дата окончания действия (0 - бессрочный)
reusable - можно ли использовать повторно (1 - да, 0 - нет)
product_id - артикул позиции (если не указан - 0)
product_text - наименование позиции
sale_percent - скидка в процентах (значение)
sale_amount - скидка суммой на заказ (значение)
note - комментарий
status - действительный или нет (1 или 0)
Пример ответа API
Ответ API:
{
"result":"success",
"type":"1",
"type_text":"Позиция",
"create_date":"30.06.2017",
"finish_date":0,
"reusable":"1",
"product_id":0,
"product_text":"Sprite 0,5л",
"note":"",
"status":1
}