Содержание

API :: FlexField. Работа с Гибкими Полями

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

Что такое "Гибкие Поля"

Механизм «Гибких Полей» позволяет добавить новые колонки к любому справочнику в системе (товары, клиенты, магазины и др).

Настроенные Гибкие Поля можно посмотреть в административной консоли в меню «Настройки» → «Гибкие поля»

Пример использования Гибких Полей

Например, Вы продаете одежду и настроили для справочника «Клиенты» гибкое поле «Размер». Теперь для каждого клиента возможно указать размер его одежды. Указать значение можно двумя способами.

1. Первый способ - через административный интерфейс в карточке Клиента (меню Клиенты). В карточке появится новая графа «Размер», в котором можно задать нужное значение

2. Второй способ - программно через API. Чтобы задать значение гибкого поля через API, необходимо к стандартному запросу на изменение/добавление Клиента добавить еще один параметр в формате: [ИмяПоля]=[Значение]

В качестве ИмяПоля можно указать как пользовательское название поля (пример: «Размер»), так и его системное имя: attribute1, .., attribute15. Конкретный номер атрибута для каждого гибкого поля можно посмотреть в административном интерфейсе настройках гибких полей (НастройкиГибкие поляНомер атрибута)

Пример запроса на изменение гибкого поля «Размер» для Клиента с ID=1 через API:

http://mycompany.virtpos.ru/api/customer/update?apikey=MySecret&id=1&Размер=XL

Функции API для работы с Гибкими Полями

Для работы с Гибкими Полями в API предусмотрены следующие методы:


listTables :: Получение списка справочников

Запрос возвращает список справочников системы, которые поддерживают работу с Гибкими Полями. Эти системные названия используются в других запросах в качестве параметра table_name.

Пример вызова

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
	<type>frexfield.tables</type>
	<count>5</count>
	<tables>
		<table>
			<name>warehouse</name>
			<description>Точка продаж</description>
		</table>
		<table>
			<name>location</name>
			<description>Территория</description>
		</table>
		<table>
			<name>organisation</name>
			<description>Юридическое лицо</description>
		</table>
		<table>
			<name>item</name>
			<description>Товар</description>
		</table>
		<table>
			<name>onhand</name>
			<description>Товарный остаток</description>
		</table>
	</tables>
</root>

index :: Запрос на получение данных

Пример вызова

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

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

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

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
	<type>flexfield</type>
	<count>1</count>
	<flexfields>
		<flexfield>
			<id>32</id>
			<table_name>warehouse</table_name>
			<name>Площадь помещения</name>
			<attr_num>2</attr_num>
			<attr_type>text</attr_type>
			<enabled>Y</enabled>
			<default_value/>
			<list_values/>
			<created_date>2016-08-12 18:21:38</created_date>
			<last_update_date>2016-08-12 18:21:38</last_update_date>
		</flexfield>
	</flexfields>
</root>

update :: добавление/изменение Гибкого Поля

Для обновления конкретного гибкого поля надо передать:

Пример вызова

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

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

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

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

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

Также возвращается id записи, которая была обновлена или добавлена.

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

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

delete :: Удаление Гибкого Поля

Функция настроенное ранее удаляет Гибкое Поле. Для удаления конкретного гибкого поля надо передать:

Пример вызова

Пример запроса на удаление гибкого поля:

http://mycompany.virtpos.ru/api/flexField/delete?apikey=MySecret&format=xml&id=2

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

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

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