Это старая версия документа.
API :: Item. Получение/изменение данных о номенклатуре
В системе реализован программный интерфейс для получения, добавления и изменения данных о товарной номенклатуре. Данные выгружаются по http протоколу. Формат на выбор - XML или JSON.
Пример запроса на получение данных
Пример запроса на получение данных о номенклатуре:
http://mycompany.virtpos.ru/api/item?apikey=MySecret&format=xml
Параметры запроса
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- id - код товара, для которого надо вернуть данные. Если не указан, то возвращаются данные о всех товарах.
- external_id - код товара во внешней системе учета (например, в 1С)
- enabled_only - опционально, 1 если нужно получить только активные товары, 0 если все.
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info
Пример ответа сервера
Ниже приведен пример ответа сервера в формате XML
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <type>item</type> <count>2</count> <items> <item> <id>1</id> <name>Коробка конфет Рафаэлло</name> <description/> <enabled>1</enabled> <sales_weight>0</sales_weight> <manufacturer_id/> <weight_good_flag>N</weight_good_flag> <not_show_in_shop>1</not_show_in_shop> <external_id/> <group_ids>1,2</group_ids> <group_ext_ids>{123-543},{000-999}</group_ext_ids> <barcodes>4607092441788,9785864153055</barcodes> <created_date>2015-07-11 17:16:49</created_date> <last_update_date>2015-07-11 17:29:25</last_update_date> </item> <item> <id>8</id> <name>Чипсы Лэйс</name> <description/> <enabled>1</enabled> <sales_weight>0</sales_weight> <manufacturer_id/> <weight_good_flag>N</weight_good_flag> <not_show_in_shop>0</not_show_in_shop> <external_id>22222</external_id> <group_ids>1,2</group_ids> <group_ext_ids>{123-543},{000-999}</group_ext_ids> <barcodes>4607092441788,9785864153055</barcodes> <created_date>2015-07-11 17:34:58</created_date> <last_update_date>2015-07-11 17:36:36</last_update_date> </item> </items> </root>
Пример запроса на добавление/изменение данных
Пример запроса на добавление/изменение данных о товаре:
http://mycompany.virtpos.ru/api/item/update?apikey=MySecret&create_if_not_exist=0&external_id=666
Параметры запроса
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- id - код товара, данные которого надо обновить
- external_id - код товара во внешней системе учета (например, в 1С), данные которого надо обновить
- create_if_not_exist - Если истина, то при неудачном поиске товар будет добавлен в систему.
- manufacturer_name - Название производителя. Если значение указано, то происходит проверка, есть ли производитель с таким именем в справочнике. Если нет, то он будет добавлен. Параметр игнорируется, если указан manufacturer_id
- Также в качестве параметров могут быть переданы все поля для товара (name, description, article, volume, attr1, attr2, attr3, attr4 и т.д.)
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была обновлена или добавлена.
- Флаг isnew равен «1», если запись была создана, и «0» если обновлена.
- Если в запросе указаны штрихкоды товара (поле barcodes), то в поле ответа barcode_errors возвращаются штрихкоды, не прошедшие проверку по контрольной сумме. А в поле barcode_conflicts возвращаются штрихкоды, которые уже назначены другим товарам.
Пример ответа сервера
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <id>11</id> <isnew>1</isnew> <barcode_errors>4607092441787</barcode_errors> <barcode_conflicts/> </root>
Пример запроса на массовое добавление/изменение данных
Данные для добавления передаются как POST-параметр data в формате JSON. Пример http запроса для массового обновления/добавления данных
POST /api/item/updateAll?apikey=11112222&format=xml HTTP/1.1 HOST: mycompany.virtpos.ru content-type: application/x-www-form-urlencoded content-length: 89 data=[{"id":"1940","description":"Test desc 1"},{"external_id":"1941","description":"Test desc 2"}]
Параметры запроса
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- create_if_not_exist - Если истина, то при неудачном поиске товар будет добавлен в систему.тему.
- id - код товара, данные которого надо обновить
- external_id - код товара во внешней системе учета (например, в 1С), данные которого надо обновит
- description - значение товара, которое нужно обновить. В данном случае это описание. Могут быть (name, article, volume, attr1, attr2, attr3, attr4 и т.д.)
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращаются:
- success_count - количество удачно обработанных записей
- fails_count - количество неудачно обработанных записей
- problem_ids - массив, который содержит id неудачно обработанных товаров
- problem_external_ids - массив, который содержит external_id неудачно обработанных товаров
Пример ответа сервера
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <success_count>0</success_count> <fails_count>3</fails_count> <problem_ids> <problem_item> <id>1940</id> </problem_item> <problem_item> <id>1941</id> </problem_item> </problem_ids> <problem_external_ids> <problem_item> <id>1942</id> </problem_item> </problem_external_ids> </root>