# Прайс-лист (price)

## Метод “price”

Метод позволяет управлять записями Прайс-листа – добавлять, обновлять, удалять.

<pre><code class="html">URL для вызова - http(s)://crm_url/developer/v2/price?параметр=значение</code></pre>

<a id="fields"></a>
### Запрос “fields”

Запрос позволяет получить список доступных полей, хранящих информацию о клиенте в формате – «Имя поля» - «Расшифровка назначения» для формирования дальнейших запросов.

В список включены уровни прайса, активированные в Панели управления

**Пример запроса:**

```php
  $params = [
 	"login" => "vladislav@isaler.ru",
	"apikey" => "aMgiCQyj8bCToNc47BZZYrRICoWSIl",
	"action" => "fields"
  ]

$urlparams = http_build_query($params);

```

**Ответ:**

<pre><code class="json">
{
	"prid":"id",
	"artikul":"Артикул",
	"title":"Наименование",
	"descr":"Описание",
	"edizm":"Ед.изм.",
	"datum":"Дата добавления",
	"category":"Категория",
	"nds":"НДС",
	"price_in":{
		"title":"Закуп",
		"values":"",
		"required":"required"
	},
	"price_1":{"title":"Розница","values":"35","required":"required"},
	"price_2":{"title":"Уровень 1","values":"25","required":""},
	"price_3":{"title":"Уровень 2","values":"20","required":"required"}
}
</code></pre>


**Возможные ответы в случае ошибок:**

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод

<a id="info"></a>
### Запрос “info”

Запрос позволяет получить информацию о позиции по идентификатору - id или artikul.

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

- **id** – уникальный идентификатор записи
- или **artikul** – артикул позиции


**Пример запроса**:


<pre><code class="php">
$params = [
	"login"    => "vladislav@isaler.ru",
	"apikey"   => "aMgiCQyj8bCToNc47BZZYrRICoWSIl",
	"action"  => 'info',
	"id"      => 2353,
	"artikul" => "7414"
];

$urlparams = http_build_query($params);

</code></pre>


**Ответ**:

<pre><code class="json">
{
	"data":{
		"price":{
			"prid":"2353",
			"artikul":"7414",
			"title":"BizFAX E100 факс-сервер, 1 FXO, 1 FXS, 1 RJ45",
			"description":"Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться.",
			"datum":"2018-05-11 07:18:21",
			"price_in":"13900.00",
			"price_1":"18000.00",
			"price_2":"15809.00",
			"price_3":"0.00",
			"price_4":"0.00",
			"price_5":"0.00",
			"edizm":"шт.",
			"categoryID":"180",
			"categoryName":"Телефония",
			"nds":"0"
		},
		"sklad":{
			"content":"Yeastar BizFax E100 – это электронный факс-сервер, с помощью которого можно улучшить документооборот через факс. Во время отправки документа форматом «doc» или «pdf «производится их автоматическое преобразование в tiff, что способствует улучшению качества и ускорению доставки факсового сообщения. ",
			"status":"4",
			"id":"103",
			"countSklad":38,
			"countReserve":33,
			"countZayavka":0,
			"images":[
				{"name":"874.970.jpg","file":"http://sm2018.crm/files/modcatalog/1475045355.jpg"},
				{"name":"875.970.JPEG","file":"http://sm2018.crm/files/modcatalog/1475045356.JPEG"},
				{"name":"876.970.PNG","file":"http://sm2018.crm/files/modcatalog/1475045357.PNG"}
			]
		}
	}
}
</code></pre>

**Примечание:**

1. Если активен модуль "Каталог-склад", то в ответе будет содержаться 2 блока:
   - price - прайсовый блок
   - sklad - блок из модуля "Каталог-склад"
2. Если модуль "Каталог-склад" не активен, то ответ в блоке "data" вернется содержимое блока "price" 

**Возможные ответы в случае ошибок:**

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    403 – Клиент с указанным clid не найден в пределах аккаунта указанного пользователя
    404 – Не найдено
    405 – Отсутствуют параметры - clid клиента

<a id="list"></a>
### Запрос “list”

Запрос позволяет получить список клиентов, доступных текущему сотруднику, в т.ч. с применением фильтров.

**Параметры запроса** (не обязательные):

- **offset** – страница вывода, с учетом того, что установлен лимит в 200 записей на страницу (по умолчанию offset = 0)
- **order** – поле, по которому будет производится сортировка списка (по умолчанию order = date_create)
- **first** – направление сортировки ( new – сначала новые, old – сначала старые ). (по умолчанию first = new)

**Фильтры** (не обязательные):

- **word** – слово поиска по полям title, description, artikul
- **archive** - фильтр по статусу: yes - только архивные позиции, no - только актуальные. Если не указано - выводятся все

**Пример формирования запроса в PHP**:

<pre><code class="php">
  $params = [
 	"login" => "vladislav@isaler.ru",
	"apikey" => "aMgiCQyj8bCToNc47BZZYrRICoWSIl",
	// указываем метод
	"action"    => 'list',
	// страница, с учетом вывода 200 записей на страницу
	"offset"    => 0,
	// поле для упорядочивания записей: title, artikul
	"order"     => 'title',
	// направление сортировки; new - по-умолчанию, old - сначала более старые
	"first"     => '',
	// фильтр по полям title, des, tip
	"word"      => '',
	//фильтр по статусу: yes - только архивные позиции, no - только актуальные
	"archive"    => 'no'
  ]

$urlparams = http_build_query($params);

</code></pre>


**Пример запроса:**

<pre><code class="json">
{
	"data":[
		{
			"prid":"2354",
			"artikul":"7415",
			"title":"BizFAX E200 факс-сервер, 2 FXO, 1 FXS, 1 RJ45",
			"content":null,
			"edizm":"шт.",
			"category":154,
			"price_in":"20043.00",
			"price_1":"26724.00",
			"price_2":"22716.00",
			"price_3":"0.00",
			"price_4":"0.00",
			"price_5":"0.00",
			"archive":"no"
		},
		{
			"prid":"2353",
			"artikul":"7414",
			"title":"BizFAX E100 факс-сервер, 1 FXO, 1 FXS, 1 RJ45",
			"content":null,
			"edizm":"шт.",
			"category":154,
			"price_in":"13900.00",
			"price_1":"18000.00",
			"price_2":"15809.00",
			"price_3":"0.00",
			"price_4":"0.00",
			"price_5":"0.00",
			"archive":""
		}
	],
	"count":"2"
}
</code></pre>


**Ответ:**

В поле “**data**” приходит список записей, в поле "**count**" - приходит общее количество записей в выборке

Возможные ответы в случае ошибок:

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод

<a id="add"></a>
### Запрос “add”

Запрос позволяет добавить нового клиента в базу CRM. При этом ответственным устанавливается сотрудник, логин которого использовался в запросе или указанный отдельно в параметре user

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

- **title** – название клиента (обязательное поле)
- **uid** – id записи во внешней системе (например в 1С)
- **type** – тип записи: client (юр.лицо) – по умолчанию, person (физ.лицо), concurent, contractor, parnter
- **user** – login пользователя в SalesMan CRM назначаемого Ответственным за клиента
- прочие поля **fields** – информация для добавления
- **recv** – массив реквизитов (см.выше), не обязательное поле


**Пример формирования запроса в PHP**:

<pre><code class="php">
$params = [
	"login"       => "vladislav@isaler.ru",
	"apikey"      => "aMgiCQyj8bCToNc47BZZYrRICoWSIl",
	"action"      => 'add',
	"artikul"     => '1258900',
	"title"       => 'Дополнительная лицензия MyPBX Client MyPBX U500/U510/U520',
	"description" => 'MyPBX Client – это софтфон, предназначенный для целевого применения со следующими IР-АТС компании Yeаstar серии "U": Yeаstar МyРВХ U500, U510 и U520',
	"price_in"    => '1320,50',
	"price_1"     => '1456,20',
	"price_2"     => '1390,40',
	"price_3"     => '',
	"price_4"     => '',
	"price_5"     => '',
	"edizm"       => 'шт.',
	"nds"         => '18',
	"archive"     => 'no',
	"category"    => 0
]

$urlparams = http_build_query($params);

</code></pre>


**Ответ**:

В поле “data” приходит id записи

<pre><code class="json">
{"result":"Success","text":"Позиция добавлена","data":4176}
</code></pre>

**Возможные ответы в случае ошибок**:

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    405 – Отсутствуют параметры
    406 – Найден существующий клиент

<a id="update"></a>
### Запрос “update”

Запрос позволяет обновить данные позиции.

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

- **id** – уникальный идентификатор
- ИЛИ **artikul** – артикул позиции


**Пример запроса**:

<pre><code class="php">
$params = [
	"login"       => LOGIN,
	"apikey"      => KEY,
	// указываем метод
	"action"      => 'update',
	"id"          => 4176,
	"artikul"     => '1258900',
	"newartikul"  => '1258950',
	"title"       => 'Дополнительная лицензия MyPBX Client MyPBX U500/U510/U520',
	"description" => 'MyPBX Client – это софтфон, предназначенный для целевого применения со следующими IР-АТС компании Yeаstar серии "U": Yeаstar МyРВХ U500, U510 и U520',
	"price_in"    => '1320,50',
	"price_1"     => '1456,20',
	"price_2"     => '1390,40',
	"price_3"     => '',
	"price_4"     => '',
	"price_5"     => '',
	"edizm"       => 'шт.',
	"nds"         => '18',
	"archive"     => 'no',
	"category"    => 0
];

$urlparams = http_build_query($params);

</code></pre>

**Ответ**:

В поле “data” приходит id записи

<pre><code class="json">{"result":"Success","text":"Позиция обновлена","data":"4176"}</code></pre>


**Возможные ответы в случае ошибок**:

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    403 – Позиция не найдена

<a id="delete"></a>
### Запрос “delete”

Запрос позволяет удалить позицию.

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

- **id** – уникальный идентификатор записи
- ИЛИ **artikul** – артикул позиции

**Пример запроса:**

<pre><code class="php">
$params = [
	"login"       => LOGIN,
	"apikey"      => KEY,
	// указываем метод
	"action"  => 'delete',
	"id"      => 4176,
	"artikul" => '1258950'
];

$urlparams = http_build_query($params);

</code></pre>

**Ответ:**

В поле “data” приходит id записи

<pre><code class="json">{"result":"Success","text":"Готово","data":"4176"}</code></pre>


**Возможные ответы в случае ошибок:**

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    403 – Позиция не найдена

<a id="category.list"></a>
### Запрос “category.list”


Запрос позволяет получить список категорий

**Пример запроса:**

<pre><code class="php">
$params = [
	"login"       => LOGIN,
	"apikey"      => KEY,
	// указываем метод
	"action"  => 'category.list'
];

$urlparams = http_build_query($params);

</code></pre>

**Ответ:**

<pre><code class="json">
[
	{"id":"245","title":"! Акция","level":0,"sub":"0"},
	{"id":"247","title":"! Активация","level":1,"sub":"245"},
	{"id":"246","title":"! Акция (старое)","level":1,"sub":"245"},
	{"id":"1","title":"! Оборудование","level":0,"sub":"0"},
	{"id":"156","title":"Тестовая категория 1","level":1,"sub":"1"},
	{"id":"154","title":"Тестовая","level":2,"sub":"156"},
	{"id":"157","title":"Тестовая категория 2","level":2,"sub":"156"},
	{"id":"4","title":"! Программное обеспечение","level":0,"sub":"0"},
	{"id":"158","title":"CRM 08.2014","level":1,"sub":"4"},
	{"id":"153","title":"SalesMan CRM v.7.4","level":1,"sub":"4"},
	{"id":"3","title":"! Услуги","level":0,"sub":"0"},
	{"id":"159","title":"Услуги 08.2014","level":1,"sub":"3"},
	{"id":"248","title":"Грузоподъемное оборудование","level":0,"sub":"0"},
	{"id":"179","title":"ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ","level":0,"sub":"0"},
	{"id":"249","title":"Новая","level":1,"sub":"179"},
	{"id":"180","title":"Телефония","level":0,"sub":"0"},
	{"id":"177","title":"GSM-VoIP шлюзы","level":1,"sub":"180"},
	{"id":"176","title":"IP-АТС и Интерфейсные платы","level":1,"sub":"180"},
	{"id":"173","title":"SIP ATA","level":1,"sub":"180"},
	{"id":"172","title":"SIP-телефоны","level":1,"sub":"180"},
	{"id":"171","title":"USB адаптеры и шлюзы","level":1,"sub":"180"},
	{"id":"170","title":"USB-телефоны","level":1,"sub":"180"},
	{"id":"174","title":"WEB-камеры","level":1,"sub":"180"},
	{"id":"175","title":"Аксессуары","level":1,"sub":"180"},
	{"id":"178","title":"Шлюзы","level":1,"sub":"180"},
	{"id":"250","title":"Тест 100","level":0,"sub":"0"},
	{"id":"251","title":"Тест 100-1","level":1,"sub":"250"},
	{"id":"253","title":"Тест 100-1-1","level":2,"sub":"251"},
	{"id":"254","title":"Тест 100-1-2","level":2,"sub":"251"},
	{"id":"255","title":"Тест 100-1-3","level":2,"sub":"251"},
	{"id":"260","title":"Тест 100-2","level":1,"sub":"250"},
	{"id":"256","title":"Тест 100-2-1","level":2,"sub":"260"},
	{"id":"257","title":"Тест 100-2-2","level":2,"sub":"260"}
]
</code></pre>

**Возможные ответы в случае ошибок:**

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод

<a id="category.add"></a>
### Запрос “category.add”

Запрос позволяет добавить новую категорию

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

- **title** – название категории
- **sub** – название головной категории


**Пример формирования запроса в PHP**:

<pre><code class="php">
$params = [
	"login"   => "vladislav@isaler.ru",
	"apikey"  => "aMgiCQyj8bCToNc47BZZYrRICoWSIl",
	"action"  => 'category.add',
	"title"   => "TEST 6000",
	"sub"     => 4
]

$urlparams = http_build_query($params);

</code></pre>


**Ответ**:

В поле “data” приходит id записи

<pre><code class="json">
{"result":"Success","text":"Добавлено","data":263}
</code></pre>

**Возможные ответы в случае ошибок**:

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    405 – Отсутствуют параметры
    406 – Найден существующий клиент

<a id="category.update"></a>
### Запрос “category.update”


Запрос позволяет обновить данные категории.

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

- **id** – уникальный идентификатор
- **title** – название категории
- **sub** – название головной категории


**Пример запроса**:

<pre><code class="php">
$params = [
	"login"       => LOGIN,
	"apikey"      => KEY,
	// указываем метод
	"action"  => 'category.update',
	"id"      => '263',
	"title"   => "TEST 6100",
	"sub"     => 156
];

$urlparams = http_build_query($params);

</code></pre>

**Ответ**:

В поле “data” приходит id записи

<pre><code class="json">
{"result":"Success","text":"Обновлено","data":263}
</code></pre>


**Возможные ответы в случае ошибок**:

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    403 – Позиция не найдена

<a id="category.delete"></a>
### Запрос “category.delete”


Запрос позволяет удалить позицию.

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

- **id** – уникальный идентификатор записи


**Пример запроса:**

<pre><code class="php">
$params = [
	"login"   => LOGIN,
	"apikey"  => KEY,
	// указываем метод
	"action"  => 'delete',
	"id"      => 263
];

$urlparams = http_build_query($params);

</code></pre>

**Ответ:**

В поле “data” приходит id записи

<pre><code class="json">
{
	"result":"Success",
	"text":"Запись удалена. Перемещено - 1 позиций",
	"data":249
}
</code></pre>


**Возможные ответы в случае ошибок:**

    400 – Не верный API key
    401 – Неизвестный пользователь
    402 – Неизвестный метод
    403 – Позиция не найдена