====== API :: Item. Получение/изменение данных о номенклатуре ====== В системе реализован программный интерфейс для получения, добавления и изменения данных о товарной номенклатуре. Данные выгружаются по http протоколу. Формат на выбор - XML или JSON. ===== Пример запроса на получение данных ===== Пример запроса на получение данных о номенклатуре: http://mycompany.virtpos.ru/api/item?apikey=MySecret&format=xml ==== Параметры запроса ==== параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **id** (get only) - код товара, для которого надо вернуть данные. Если не указан, то возвращаются данные о всех товарах. * **external_id** (get only) - код товара во внешней системе учета (например, в 1С) * **enabled_only** (get only) - опционально, 1 если нужно получить только активные товары, 0 если все. * **pricelist** - (опционально). В параметре можно передать Id прайслиста. Если ID прайслиста переден, то к каждому товару будут добавлены колонки с ценами из этого прайлиста. Чтобы вернуть цены из прайслиста для интернет-витрины, то вместо ID можно указать ключевое слово "internet": &pricelist=internet. * **images** - опционально. Если указано значение "1", то к каждому товару будет добавлен список файлов с изображениями. Имена файлов будут перечислены через запятую * **from_id** - опционально. Вернуть товары начиная с этого ID * **limit** - опционально. Максимальное количество товаров в ответе ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info ==== Пример ответа сервера ==== Ниже приведен пример ответа сервера в формате XML 1 item Цвет 2 1 Коробка конфет Рафаэлло 1 0 1 G N 1 5 1,2 {123-543},{000-999} 4607092441788,9785864153055 18 2015-07-11 17:16:49 2015-07-11 17:29:25 8 Чипсы Лэйс 1 0 1 G N 0 5 22222 1,2 {123-543},{000-999} 4607092441788,9785864153055 18 2015-07-11 17:34:58 2015-07-11 17:36:36 Красный ===== Пример запроса на добавление/изменение данных ===== Пример запроса на добавление/изменение данных о товаре: http://mycompany.virtpos.ru/api/item/update?apikey=MySecret&create_if_not_exist=0&external_id=666 ==== Параметры запроса ==== параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **id** (get only) - код товара, данные которого надо обновить * **external_id** (get only) - код товара во внешней системе учета (например, в 1С), данные которого надо обновить * **create_if_not_exist** (get only) - Если истина, то при неудачном поиске товар будет добавлен в систему. * **manufacturer_name** - Название производителя. Если значение указано, то происходит проверка, есть ли производитель с таким именем в справочнике. Если нет, то он будет добавлен. Параметр игнорируется, если указан manufacturer_id * **name** - название товара * **description** - описание товара * **article** - артикул * **enabled** - "0" или "1". признак,что товар активен и незаблокирован * **volume** - объем * **manufacturer_id** - id производителя * **type** - тип товара (G - товар, S - услуга, M - материальная ценность). * **weight_good_flag** - флаг весового товара. Значения "Y" / "N" * **not_show_in_shop** - показывать или нет товар в интернет-витрине и мобильном приложении. Значения: "0" / "1" * **html_template_id** - id шаблона ценника * **category_id** - id товарной категории ("1" - алкоголь / "2" - товары18+ ) * **group_ids** - разделенный запятой список из id товарных групп, в которые входит товар * **vat_percent** - ставка НДС * **attribute1**..**attribute15** - значения гибких полей ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info. Также возвращается id записи, которая была обновлена или добавлена. * Флаг **isnew** равен "1", если запись была создана, и "0" если обновлена. * Если в запросе указаны штрихкоды товара (поле barcodes), то в поле ответа **barcode_errors** возвращаются штрихкоды, не прошедшие проверку по контрольной сумме. А в поле **barcode_conflicts** возвращаются штрихкоды, которые уже назначены другим товарам. ==== Пример ответа сервера ==== 1 11 1 4607092441787 ===== Пример запроса на массовое добавление/изменение данных ===== Данные для добавления передаются как 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"}] ==== Параметры запроса ==== параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **create_if_not_exist** (get only) - Если истина, то при неудачном поиске товар будет добавлен в систему. ==== Параметры data ==== * **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 неудачно обработанных товаров ==== Пример ответа сервера ==== 1 0 3 1940 1941 1942