- Стоимость
- Тарифные планы
- Публичная оферта
- Партнерам
- Реферальная программа
- О компании
- Обновления
- Контакты
- Политика конфиденциальности
© 2017 - 2024 "Партнёр Магазин" - Программа для торговли №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 }