# Manufacturer. Производители

> Источник: https://wiki.virtualpos.ru/hc/api/manufacturer  
> Обновлено: 2026-09-26

Методы для работы со справочником производителей: получение списка, создание, изменение и удаление.

> **Примечание:**
> Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье [Общие сведения](https://wiki.virtualpos.ru/hc/api/overview). Здесь описаны только особенности методов раздела `manufacturer`.

## Методы

| Метод | Адрес | Что делает |
| --- | --- | --- |
| Получить производителей | `/api/manufacturer` | Возвращает одного производителя или всех |
| Создать или изменить | `/api/manufacturer/update` | Обновляет производителя или создаёт нового |
| Удалить | `/api/manufacturer/delete` | Удаляет производителя |

> **Важно:**
> **Где передавать параметры.** Ключ `apikey` и формат `format` принимаются и в адресной строке, и в теле POST-запроса. Параметры `id` и `create_if_not_exist` читаются **только из адресной строки (GET)**. Параметр `name` можно передавать и в адресной строке, и в теле POST. Значения с кириллицей и пробелами кодируйте. У производителей нет кода во внешней системе: искать и изменять их можно только по ид.

## Получение производителей

```
GET https://[компания].myvirtualpos.ru/api/manufacturer?apikey=MySecret
```

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

- **id** — Число. Ид производителя. Если указан, возвращается только он. Только GET
- **format** — `json` (по умолчанию) или `xml`

Без параметров возвращаются все производители одним ответом.

### Структура ответа

- **success** — `1` — данные получены
- **type** — Тип данных, всегда `manufacturer`
- **count** — Количество производителей в ответе
- **manufacturers** — Список производителей. Каждый обёрнут в объект `manufacturer`

### Поля производителя

- **id** — Число. Ид производителя
- **name** — Строка. Название
- **created_date**, **last_update_date** — Строка. Дата и время создания и последнего изменения, формат `гггг-мм-дд чч:мм:сс`

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

```json
{
  "success": 1,
  "type": "manufacturer",
  "count": 1,
  "manufacturers": [
    {
      "manufacturer": {
        "id": 1,
        "name": "Италия",
        "created_date": "2026-01-12 15:35:19",
        "last_update_date": "2026-01-12 15:35:19"
      }
    }
  ]
}
```

Тот же ответ при `format=xml`:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <success>1</success>
  <type>manufacturer</type>
  <count>1</count>
  <manufacturers>
    <manufacturer>
      <id>1</id>
      <name>Италия</name>
      <created_date>2026-01-12 15:35:19</created_date>
      <last_update_date>2026-01-12 15:35:19</last_update_date>
    </manufacturer>
  </manufacturers>
</root>
```

Если производителя с таким ид нет, возвращается успешный ответ с `count` равным `0` и пустым списком.

## Создание и изменение

```
POST https://[компания].myvirtualpos.ru/api/manufacturer/update?apikey=MySecret&create_if_not_exist=1
name=Италия
```

### Параметры

- **id** — Число. Ид изменяемого производителя. Только GET
- **create_if_not_exist** — `1` — создать производителя, если `id` не указан или не найден. Только GET
- **name** — Строка, до 255 символов. Название. Обязательно при создании

> **Важно:**
> **Дубликаты не проверяются.** Метод не проверяет, есть ли уже производитель с таким названием: повторный запрос с `create_if_not_exist=1` создаст ещё одного. Чтобы не плодить дубли, сначала получите список и найдите нужного производителя по названию, а затем изменяйте его по ид. Если нужно привязать товар к производителю по названию, используйте параметр `manufacturer_name` метода `update` в статье [Item. Номенклатура](https://wiki.virtualpos.ru/hc/api/item): он ищет производителя по названию и создаёт только если такого нет.

### Ответ

```json
{"success":1,"id":"49","isnew":"1"}
```

- **success** — `1` — производитель сохранён
- **id** — Ид производителя. При создании приходит строкой, при изменении — числом
- **isnew** — `"1"` — создан, `"0"` — изменён существующий

## Удаление

```
GET https://[компания].myvirtualpos.ru/api/manufacturer/delete?apikey=MySecret&id=49
```

- **id** — Число. Ид удаляемого производителя. Только GET

Ответ: `{"success":1,"id":49}`. У товаров этого производителя поле производителя очищается, сами товары остаются.

## Примеры запросов

| Задача | Запрос |
| --- | --- |
| Все производители | `/api/manufacturer?apikey=MySecret` |
| Производитель по ид | `/api/manufacturer?apikey=MySecret&id=1` |
| Создать производителя | `/api/manufacturer/update?apikey=MySecret&create_if_not_exist=1&name=Italy` |
| Переименовать | `/api/manufacturer/update?apikey=MySecret&id=49&name=Italia` |
| Удалить | `/api/manufacturer/delete?apikey=MySecret&id=49` |

## Ошибки

Ошибка авторизации и общие ошибки описаны в статье [Общие сведения](https://wiki.virtualpos.ru/hc/api/overview). Ошибки приходят с кодом HTTP 200 и `success` равным `0`:

| Сообщение | Метод | Причина | Что делать |
| --- | --- | --- | --- |
| You have to specify [id] to update record. Or set [create_if_not_exist] to true to add new record | update | Нет `id` и `create_if_not_exist` | Передайте ид или `create_if_not_exist=1` |
| Record not found | update, delete | Производитель с таким ид не найден | Проверьте ид |
| Data validation failed. … | update | Не заполнено или слишком длинное название | Исправьте параметр `name` |
| Cannot save data. … | update | Ошибка сохранения | Текст после точки поясняет причину |
| You have to specify [id] to delete record | delete | Не указан `id` | Передайте `id` |
| Cannot delete data. … | delete | Ошибка удаления | Текст после точки поясняет причину |

## Связанные разделы

- [Общие сведения](https://wiki.virtualpos.ru/hc/api/overview) — Ключ доступа, вызов методов, форматы ответов и ошибки
- [Item. Номенклатура](https://wiki.virtualpos.ru/hc/api/item) — Товары и их производители
