API :: Writeoff. Получение/изменение документов Списания
В системе реализован программный интерфейс для получения, добавления, изменения и удаления данных о документах «Списание». Данные выгружаются по HTTP протоколу. Формат на выбор - XML или JSON.
Пример запроса на получение данных
Глубина запроса по умолчанию - последние 30 дней. Для изменения глубины необходимо использовать параметр days.
Пример запроса на получение данных о документах «Списание»:
http://mycompany.virtpos.ru/api/writeoff?apikey=MySecret&format=xml
Параметры запроса на получение данных
Параметры, которые не отмечены как get only, могут быть переданы как get- или как post-параметры.
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format (get only) - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- date - получение списаний на определенную дату. Формат: ГГГГММДД. Необязательный параметр.
- datefrom - получение списаний начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр.
- dateto - получение списаний начиная до определенной даты. Формат: ГГГГММДД. Необязательный параметр.
- cdatefrom - получение списаний, созданных начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр.
- cdateto - получение списаний, созданных до определенной даты. Формат: ГГГГММДД. Необязательный параметр.
- warehouse_id - код магазина. для которого надо вернуть списания. Если не указан, то возвращаются списания для всех магазинов. Необязательный параметр.
- ext_warehouse_id - код магазина во внешней системе (например, в 1С). Параметр игнорируется, если передан warehouse_id. Необязательный параметр.
- id - ID документа Списания. Необязательный параметр. Если не указан, возвращаются все документы.
- external_id - код списания во внешней системе (например, в 1С). Если указан, возвращается только документ с указанным кодом.
- last_id - Необязательный параметр. Используется для получения новых документов с момента последнего обмена. Если параметр указан, то передаются все более новые списания (с бОльшим ID)
- days - задает глубину поиска. Определяет, за какое количество дней от текущей даты надо вернуть документы списаний. Необязательный параметр.
- withitems - принимает значение «1» или «0». Если «1», то возвращает строки списания, иначе только «шапки» списаний.
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info
Пример ответа сервера
Ниже приведен пример ответа сервера в формате XML
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <type>writeoff</type> <days_limit>30</days_limit> <count>2</count> <writeoffs> <writeoff> <id>3</id> <external_id/> <warehouse_id>1</warehouse_id> <docnum>111</docnum> <docdate>2017-06-15 00:00:00</docdate> <amount/> <status>draft</status> <status_name>Черновик</status_name> <comment/> <warehouse_external_id/> <type>G</type> <guid>803ad8b6-688c-11e7-849d-74d435ee6043</guid> <created_date>2017-06-15 04:45:58</created_date> <created_by/> <last_update_date>2017-06-15 04:45:58</last_update_date> <last_update_by/> <items/> </writeoff> <writeoff> <id>1</id> <external_id/> <warehouse_id>1</warehouse_id> <docnum>777</docnum> <docdate>2017-06-15 00:00:00</docdate> <amount/> <status>draft</status> <type>G</type> <guid>803ad8b6-688c-11e7-849d-74d435ee6043</guid> <status_name>Черновик</status_name> <comment/> <warehouse_external_id/> <created_date>2017-06-15 03:55:16</created_date> <created_by/> <last_update_date>2017-06-15 03:55:16</last_update_date> <last_update_by/> <items> <item> <line_id>1</line_id> <item_id>1</item_id> <item_ext_id/> <item_name>Оливки черные Acorsa без косточки 350 г жест. банка</item_name> <quantity>10</quantity> <barcode>234234241</barcode> <price/> <amount/> <manuf_date/> <expir_date/> <lot_number/> <guid>803ad8b6-688c-11e7-849d-74d435ee6043</guid> </item> </items> </writeoff> </writeoffs> </root>
Структура ответа сервера
Шапка документа
- id - ID документа списания
- warehouse_id - ID магазина, на который оформлено списание
- docdate - дата документа поступления
- docnum - номер документа списания
- warehouse_external_id - код Магазина во внешней системе учета (например, в 1С)
- type - тип списания (G - списание товаров, M - списание материальных ценностей)
- guid - GUID списания
- amount - сумма списания
- status - статус документа списания (accept – принят, drаft – черновик)
- created_date - дата создания документа списания (может не совпадать с датой документа Списания)
- created_by - ID пользователя, создавшего списание
- last_update_date - дата и время последнего изменения в списании
- last_update_by - ID пользователя, сделавшего последние изменения
- external_id - код Списания во внешней системе (например, в 1С). Значение параметра уникально.
Содержание документа (зависит от настройки загружаемых полей и гибких полей на товарный остаток)
- line_id - сквозной ID строки в транзакциях списаний
- item_id - ID товарной позиции по номенклатурному справочнику
- item_ext_id - идентификатор товара во внешней системе
- item_name - наименование позиции
- quantity - количество
- quantity_expected - ожидаемое количество
- barcode - штрих-код по накладной поступления
- price - цена поступления
- amount - сумма по строке
- manuf_date - дата изготовления
- expir_date - годен до
- lot_number - характеристика (серия, партия и пр) позиции в накладной поступления
- guid - GUID строки
Пример запроса на добавление/изменение данных Списания
Пример запроса на обновление данных о списании:
http://mycompany.virtpos.ru/api/writeoff/update/?apikey=MySecret&format=xml&id=1&comment=NewComment
Параметры запроса
Параметры, которые не отмечены как get only, могут быть переданы как get- или как post-параметры.
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format (get only) - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- id (get only) - идентификатор списания, данные которого нужно обновить
- external_id (get only) - код списания во внешней системе учета (например, в 1С)
- create_if_not_exist (get only) - Если истина, то при неудачном поиске cписание будет добавлено в систему.
- warehouse_external_id (get only) - код Магазина во внешней системе. Необязательный параметр; если указан, то будет осуществлен поиск Магазина по указанному коду и добавление ссылки на него в документ Списания.
- Также в качестве параметров могут быть переданы все поля для поступления
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была обновлена или добавлена.
- Флаг isnew равен «1», если запись была создана, и «0» если обновлена.
Пример ответа сервера
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <id>1</id> <isnew>0</isnew> </root>
Пример запроса на удаление данных Списания
Пример запроса на удаление списания:
http://mycompany.virtpos.ru/api/writeoff/delete/?apikey=MySecret&format=xml&id=1
Параметры запроса
Параметры, которые не отмечены как get only, могут быть переданы как get- или как post-параметры.
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format (get only) - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- id (get only) - идентификатор списания, которое будет удалено
- external_id (get only) - код списания во внешней системе учета (например, в 1С)
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была удалена.
Пример ответа сервера
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <id>1</id> </root>
Пример запроса на добавление/изменение данных строки товарной позиции Списания
Пример запроса на обновление данных о товарной позиции в списании:
http://mycompany.virtpos.ru/api/writeoff/updateItems/?apikey=MySecret&format=xml&id=1&quantity=2
Параметры запроса
Параметры, которые не отмечены как get only, могут быть переданы как get- или как post-параметры.
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format (get only) - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- id (get only) - идентификатор товарной строки в поступлении, данные которой нужно обновить
- create_if_not_exist (get only) - Если истина, то при неудачном поиске товарная строка будет добавлена в систему.
- Также в качестве параметров могут быть переданы все поля для строки товарной позиции в списании
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была обновлена или добавлена.
- Флаг isnew равен «1», если запись была создана, и «0» если обновлена.
Пример ответа сервера
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <id>1</id> <isnew>0</isnew> </root>
Пример запроса на удаление данных строки товарной позиции в Списании
Пример запроса на удаление товарной строки из документа списания:
http://mycompany.virtpos.ru/api/writeoff/deleteItems/?apikey=MySecret&format=xml&id=1
Параметры запроса
Параметры, которые не отмечены как get only, могут быть переданы как get- или как post-параметры.
- apikey - Секретный ключ для доступа к данным. Обязательный параметр.
- format (get only) - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
- id (get only) - идентификатор строки товарной позиции Списания, которая будет удалена
Ответ сервера
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была удалена.
Пример ответа сервера
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <id>1</id> </root>