Это старая версия документа.


API :: Orders. Получение/изменение данных о Заказах

В системе реализован программный интерфейс для получения и добавления данных о Заказах. Данные выгружаются по http протоколу. Формат на выбор - xml или json.

Пример запроса на получение данных

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

http://mycompany.virtpos.ru/api/orders?apikey=MySecret&format=xml

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

  • apikey - Секретный ключ для доступа к данным. Обязательный параметр.
  • format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
  • id - код клиента, для которого требуется вернуть данные. Если не указан, то возвращаются данные заказов обо всех клиентах.
  • external_id - (опционально) код клиента во внешней системе, работает аналогично параметру id

Ответ сервера

В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info

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

Ниже приведен пример ответа сервера в формате XML

<root>
<success>1</success>
<orders>
<paid>0</paid>
<customer_id>3</customer_id>
<shipped>0</shipped>
<cancelled>0</cancelled>
<shipping_address>Пушкина колотушкина</shipping_address>
<shipping_cost>130.00</shipping_cost>
<pickup_receipt_id/>
<comment>После шести</comment>
<guid/>
<created_date>2017-08-24 18:45:08</created_date>
<amount>976.59</amount>
<discount>10.20</discount>
<pickup_from_warehouse_id>2</pickup_from_warehouse_id>
<pickup_from_warehouse_name>Просвещения проспект</pickup_from_warehouse_name>
<delivery_type_id>1</delivery_type_id>
<delivery_type_name>Самовывоз</delivery_type_name>
<payment_type_id>1</payment_type_id>
<payment_type_name>Оплата при получении</payment_type_name>
<items>
<item_id>789</item_id>
<item_name>Коньяк "Анри" 3-летний 40,0% 0,5л</item_name>
<image/>
<quantity>3.450</quantity>
<unit_base_price>100.10</unit_base_price>
<discount>10.20</discount>
<amount>335.15</amount>
<item_id>787</item_id>
<item_name>Коньяк "Father's Old Barrel' 3-летний 40% 0.5 л.</item_name>
<image/>
<quantity>2.000</quantity>
<unit_base_price>320.72</unit_base_price>
<discount>0.00</discount>
<amount>641.44</amount>
</items>
<paid>0</paid>
<customer_id>3</customer_id>
<shipped>0</shipped>
<cancelled>0</cancelled>
<shipping_address>Пушкина колотушкина</shipping_address>
<shipping_cost>130.00</shipping_cost>
<pickup_receipt_id/>
<comment>После шести</comment>
<guid/>
<created_date>2017-08-24 18:36:57</created_date>
<amount>976.59</amount>
<discount>10.20</discount>
<pickup_from_warehouse_id>2</pickup_from_warehouse_id>
<pickup_from_warehouse_name>Просвещения проспект</pickup_from_warehouse_name>
<delivery_type_id>1</delivery_type_id>
<delivery_type_name>Самовывоз</delivery_type_name>
<payment_type_id>1</payment_type_id>
<payment_type_name>Оплата при получении</payment_type_name>
<items>
<item_id>789</item_id>
<item_name>Коньяк "Анри" 3-летний 40,0% 0,5л</item_name>
<image/>
<quantity>3.450</quantity>
<unit_base_price>100.10</unit_base_price>
<discount>10.20</discount>
<amount>335.15</amount>
<item_id>787</item_id>
<item_name>Коньяк "Father's Old Barrel' 3-летний 40% 0.5 л.</item_name>
<image/>
<quantity>2.000</quantity>
<unit_base_price>320.72</unit_base_price>
<discount>0.00</discount>
<amount>641.44</amount>
</items>
</orders>
</root>

Пример запроса на добавление/изменение данных

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

http://mycompany.virtpos.ru/api/customer/update?apikey=MySecret&create_if_not_exist=0

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

  • apikey - Секретный ключ для доступа к данным. Обязательный параметр.
  • format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
  • id - код магазина, данные которого надо обновить
  • create_if_not_exist - Если истина, то при неудачном поиске магазин будет добавлен в систему.
  • group_name - Название клиентской группы. Если значение указано, то происходит проверка, есть ли группа с таким именем в справочнике. Если нет, то она будет добавлена. Параметр игнорируется, если указан group_id
  • Также в качестве параметров могут быть переданы все поля для Клиента (fname, lname, email и т.д.). Поле age(возраст) передавать нельзя - оно рассчитывается автоматически на основе данных о дате рождения клиента.

Ответ сервера

В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.

Также возвращается id записи, которая была обновлена или добавлена. Флаг isnew равен «1», если запись была создана, и «0» если обновлена.

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

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
	<id>11</id>
	<isnew>1</isnew>
</root>

updateCard - изменение/добавление дисконтной карты

Изменяет существующую (или добавляет новую) дисконтную карту.

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

  • card_id - внутренний ID дисконтной карты. Если передан, то карта с указанным ID будет обновлена
  • external_id - ID дисконтной карты во внешней системе (например, в 1С)
  • uid - уникальный номер карты
  • card_barcode - штрих-код карты (цифры для EAN-128). Используется только для поиска карты. Для обновления используйте поле barcode
  • create_if_not_exist - если «1», то будет создана новая карта в том случае, если не удалось найти карту с указанными параметрами. Поиск карты осуществляется по следующему алгоритму. Сначала система ищет карту по внутреннему идентификатору card_id. Если запись не найдена, то происходит поиск по уникальному номеру карты uid. Если запись снова не найден, то по external_id. И, в итоге, по штрихкоду card_barcode.
  • uid_ean13 - представление уникального номера uid в виде штрих-кода (нули перед uid, контрольная цифра в после uid). Не рекомендуется использовать этот параметр. Если параметр не передан, он штрих-код будет сгенерирован автоматически.
  • barcode - штрих-код карты. Не рекомендуется использовать этот параметр. Если параметр не передан, он штрих-код будет сгенерирован автоматически.
  • medium - носитель карты. Варианты: «PLASTIC» - пластиковая карта; «MAGNET» - карта с магнитной полосой; «APP» - виртуальная карта в мобильном приложении
  • status - статус карты. Возможные значения: NEW - новая неактивированная карта; ACTIVE - действующая карта; BLOCKED - заблокированная карта
  • block_date - дата блокировки карты
  • activate_date - дата выдачи карты
  • type_id - ID типа карты. Возможные типы карт настраиваются в административной панели системы
  • type_name - Название типа карты. Используется только в том случае, если не передан параметр type_id. Если типа карты с указанным названием еще нет в системе, то он будет создан автоматически
  • customer_id - ID клиента, которому принадлежит эта карта
  • customer_external_id - ID клиента во внешней системе, которому принадлежит эта карта. Используется только в случае, если не передан параметр customer_id

deleteCard - удаление дисконтной карты

Удаление одной дисконтной карты. Для удаления карты необходимо передать один из следующих параметров:

  • card_id - внутренний ID дисконтной карты. Если передан, то карта с указанным ID будет обновлена
  • external_id - ID дисконтной карты во внешней системе (например, в 1С)
  • uid - уникальный номер карты
  • card_barcode - штрих-код карты (цифры для EAN-128). Используется только для поиска карты. Для обновления используйте поле barcode

insertCard - добавление дисконтной карты

Добавление новой дисконтной карты. Параметры запроса аналогичны updateCard