|
12 | 12 | <!-- MarkdownTOC levels="1,2,3,4,5,6" autoanchor="true" autolink="true" --> |
13 | 13 |
|
14 | 14 | - [Требования](#%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) |
15 | | -- [Класс `\App\Bitrix24\Bitrix24API`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-appbitrix24bitrix24api) |
| 15 | +- [Класс `Bitrix24API`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-bitrix24api) |
16 | 16 | - [Базовые методы класса](#%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0) |
17 | 17 | - [Дополнительные параметры](#%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B) |
18 | 18 | - [Методы работы с сущностями Битрикс24](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D0%BC%D0%B8-%D0%91%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%8124) |
19 | 19 | - [Методы работы со сделками](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8) |
| 20 | +- [Методы для работы с делами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8) |
20 | 21 | - [Вспомогательные классы](#%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B) |
21 | 22 | - [Класс `\App\HTTP`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-apphttp) |
22 | 23 | - [Класс `\App\DebugLogger`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-appdebuglogger) |
23 | | -- [Примеры](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B) |
24 | | - - [Работа со сделками](#%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8) |
25 | 24 | - [Автор](#%D0%90%D0%B2%D1%82%D0%BE%D1%80) |
26 | 25 | - [Лицензия](#%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F) |
27 | 26 |
|
|
33 | 32 | - PHP >= 7.0. |
34 | 33 | - Произвольный автозагрузчик классов, реализующий стандарт [PSR-4](https://www.php-fig.org/psr/psr-4/). |
35 | 34 |
|
36 | | -<a id="%D0%9A%D0%BB%D0%B0%D1%81%D1%81-appbitrix24bitrix24api"></a> |
37 | | -## Класс `\App\Bitrix24\Bitrix24API` |
| 35 | +<a id="%D0%9A%D0%BB%D0%B0%D1%81%D1%81-bitrix24api"></a> |
| 36 | +## Класс `Bitrix24API` |
38 | 37 |
|
39 | 38 | Для работы с REST API Битрикс24 используется класс `\App\Bitrix24\Bitrix24API`. |
40 | | -При возникновении ошибок выбрасывается исключение с объектом класса `\App\Bitrix24\Bitrix24APIException`. |
| 39 | +При возникновении ошибок выбрасывается исключение с объектом класса `\App\Bitrix24\Bitrix24APIException`. |
| 40 | +В настоящее время класс содержит методы для работы со следующими сущностями Битрикс24: |
| 41 | + |
| 42 | +- Контакты |
| 43 | +- Компании |
| 44 | +- [Сделки](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8) |
| 45 | +- Каталог |
| 46 | +- Товары |
| 47 | +- Разделы товаров |
| 48 | +- Задачи |
| 49 | +- [Дела](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8) |
| 50 | +- Пользователи |
| 51 | +- Диск |
41 | 52 |
|
42 | 53 | <a id="%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0"></a> |
43 | 54 | ### Базовые методы класса |
|
64 | 75 | + `$items` - массив полей запросов. |
65 | 76 | - `getLastResponse() :?array` Возвращает последний ответ от API. |
66 | 77 |
|
| 78 | + |
67 | 79 | <a id="%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B"></a> |
68 | 80 | ### Дополнительные параметры |
69 | 81 |
|
|
81 | 93 | <a id="%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8"></a> |
82 | 94 | ### Методы работы со сделками |
83 | 95 |
|
| 96 | +Методы для работы со сделками находятся в трейте `\App\Bitrix24\Deal`. |
| 97 | + |
84 | 98 | - `getDeal($dealId, array $with = []) :array` Возвращает параметры сделки по ее ID. |
85 | 99 | + `$dealId` - ID сделки; |
86 | 100 | + `$with` - имена связанных сущностей, возвращаемых вместе со сделкой. |
|
137 | 151 | - `getDealProductRowFields() :array` Возвращает описание полей товарных позиций. |
138 | 152 | - `getDealFields() :array` Возвращает описание полей cделки, в том числе пользовательских. |
139 | 153 |
|
| 154 | +```php |
| 155 | +use \App\Bitrix24\Bitrix24API; |
| 156 | + |
| 157 | +try { |
| 158 | + |
| 159 | + $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/'; |
| 160 | + $bx24 = new Bitrix24API($webhookURL); |
| 161 | + |
| 162 | + // Добавляем новую сделку |
| 163 | + $dealId = $bx24->addDeal([ |
| 164 | + 'TITLE' => 'Новая сделка №1', |
| 165 | + 'COMPANY_ID' => 6, |
| 166 | + 'CONTACT_ID' => 312 |
| 167 | + ]); |
| 168 | + print_r($dealId); |
| 169 | + |
| 170 | + // Устанавливаем набор связанных контактов |
| 171 | + $bx24->setDealContactItems($dealId, [ |
| 172 | + [ 'CONTACT_ID' => 313 ], |
| 173 | + [ 'CONTACT_ID' => 454 ] |
| 174 | + ]); |
| 175 | + |
| 176 | + // Устанавливаем набор связанных товарных позиций |
| 177 | + $bx24->setDealProductRows($dealId, [ |
| 178 | + [ 'PRODUCT_ID' => 1689, 'PRICE' => 1500.00, 'QUANTITY': 2 ], |
| 179 | + [ 'PRODUCT_ID' => 1860, 'PRICE' => 500.00, 'QUANTITY': 15 ] |
| 180 | + ]); |
| 181 | + |
| 182 | + // Обновляем существующую сделку |
| 183 | + $bx24->updateDeal($dealId, [ |
| 184 | + 'TITLE' => 'Новая сделка №12' |
| 185 | + ]); |
| 186 | + |
| 187 | + // Загружаем сделку по ID вместе со связанными товарами и контактами одним запросом |
| 188 | + $deal = $bx24->getDeal($dealId, [ 'PRODUCTS', 'CONTACTS' ]); |
| 189 | + print_r($deal); |
| 190 | + |
| 191 | + // Удаляем существующую сделку |
| 192 | + $bx24->deleteDeal($dealId); |
| 193 | + |
| 194 | + // Загружаем все сделки используя быстрый метод при работе с большими объемами данных |
| 195 | + $generator = $bx24->fetchDealList(); |
| 196 | + foreach ($generator as $deals) { |
| 197 | + foreach($deals as $deal) { |
| 198 | + print_r($deal); |
| 199 | + } |
| 200 | + } |
| 201 | + |
| 202 | + // Пакетно добавляем сделки вместе с товарными позициями |
| 203 | + $dealIds = $bx24->addDeals([ |
| 204 | + [ |
| 205 | + 'TITLE' => 'Новая сделка №1121', |
| 206 | + 'COMPANY_ID' => 6, |
| 207 | + 'CONTACT_ID' => 312, |
| 208 | + 'PRODUCTS' => [ |
| 209 | + [ "PRODUCT_ID" => 27, "PRICE" => 100.00, "QUANTITY" => 11 ], |
| 210 | + ] |
| 211 | + |
| 212 | + ], |
| 213 | + [ |
| 214 | + 'TITLE' => 'Новая сделка №1122', |
| 215 | + 'COMPANY_ID' => 6, |
| 216 | + 'PRODUCTS' => [ |
| 217 | + [ "PRODUCT_ID" => 28, "PRICE" => 200.00, "QUANTITY" => 22 ], |
| 218 | + [ "PRODUCT_ID" => 27, "PRICE" => 200.00, "QUANTITY" => 11 ], |
| 219 | + ] |
| 220 | + ] |
| 221 | + ]); |
| 222 | + print_r($ids); |
| 223 | + |
| 224 | + // Пакетно удаляем сделки |
| 225 | + $bx24->deleteDeals($dealIds); |
| 226 | + |
| 227 | +} catch (\App\Bitrix24\Bitrix24APIException $e) { |
| 228 | + printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage()); |
| 229 | +} |
| 230 | +``` |
| 231 | + |
| 232 | +<a id="%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8"></a> |
| 233 | +# Методы для работы с делами |
| 234 | + |
| 235 | +Методы для работы с делами (активностями) находятся в трейте `\App\Bitrix24\Activity`. |
| 236 | + |
| 237 | +- `getActivity($activityId) :?array` Возвращает дело по ID. |
| 238 | + + `$activityId` - ID дела. |
| 239 | +- `addActivity(array $fields = []) :int` Создает новое дело. |
| 240 | + + `$fields` - набор полей дела. |
| 241 | +- `addActivities(array $activities = []) :array` Пакетно создает дела. |
| 242 | + + `$activities` - массив наборов полей дел. |
| 243 | +- `getActivityFields() :array` Возвращает описание полей дела. |
| 244 | + |
| 245 | +```php |
| 246 | +use \App\Bitrix24\Bitrix24API; |
| 247 | + |
| 248 | +try { |
| 249 | + |
| 250 | + $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/'; |
| 251 | + $bx24 = new Bitrix24API($webhookURL); |
| 252 | + |
| 253 | + // Добавляем новое дело типа письмо |
| 254 | + $activityId = $bx24->addActivity([ |
| 255 | + 'SUBJECT' => 'Заголовок письма', // Email subject |
| 256 | + 'DESCRIPTION' => 'Описание активности', // Email body |
| 257 | + 'DESCRIPTION_TYPE' => 2, // Тип тела email: 1- Plain text, 2 - bbCode, 3 - HTML (crm.enum.contenttype) |
| 258 | + 'COMPLETED' => 'N', // Флаг немедленной отправки: Y|N |
| 259 | + 'DIRECTION' => 2, // Направление: 1 - входящее, 2 - исходящее (crm.enum.activitydirection) |
| 260 | + 'OWNER_TYPE_ID' => 2, // Тип сущности: 2 - Сделка, 3 - контакт, 4 - Компания,... (crm.enum.ownertype) |
| 261 | + 'OWNER_ID' => 39293, // ID сущности (сделки) |
| 262 | + 'TYPE_ID' => 4, // Тип активности: 4 - Письмо (crm.enum.activitytype) |
| 263 | + 'RESPONSIBLE_ID' => 4852, // ID ответственного пользователя |
| 264 | + 'START_TIME' => '2005-08-09T18:31:42+03:30', // Время начала |
| 265 | + 'END_TIME' => '2005-09-10T18:31:42+03:30', // Время окончания |
| 266 | + 'COMMUNICATIONS' => [ // Параметры получателей письма |
| 267 | + [ |
| 268 | + 'VALUE' => 'test@example.com', // Email компании |
| 269 | + 'ENTITY_ID' => 58938, // ID компании |
| 270 | + 'ENTITY_TYPE_ID' => 4 // Тип сущности: 4 - Компания ('crm.enum.ownertype'); |
| 271 | + ] |
| 272 | + ], |
| 273 | + 'SETTINGS' => [ |
| 274 | + 'MESSAGE_FROM' => 'from@example.com' |
| 275 | + ] |
| 276 | + ]); |
| 277 | + print_r($activityId); |
| 278 | + |
| 279 | + // Получаем дело по ID |
| 280 | + $activity = $bx24->getActivity($activityId); |
| 281 | + print_r($activity); |
| 282 | + |
| 283 | +} catch (\App\Bitrix24\Bitrix24APIException $e) { |
| 284 | + printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage()); |
| 285 | +} |
| 286 | +``` |
| 287 | + |
140 | 288 | <a id="%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B"></a> |
141 | 289 | ## Вспомогательные классы |
142 | 290 |
|
@@ -223,86 +371,7 @@ $bx24->logger->isActive = true; |
223 | 371 |
|
224 | 372 | ``` |
225 | 373 |
|
226 | | -<a id="%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B"></a> |
227 | | -## Примеры |
228 | | - |
229 | | -<a id="%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8"></a> |
230 | | -### Работа со сделками |
231 | | - |
232 | | -```php |
233 | | -use \App\Bitrix24\Bitrix24API; |
234 | | - |
235 | | -try { |
236 | | - |
237 | | - $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/'; |
238 | | - $bx24 = new Bitrix24API($webhookURL); |
239 | | - |
240 | | - // Добавляем новую сделку |
241 | | - $dealId = $bx24->addDeal([ |
242 | | - 'TITLE' => 'Новая сделка №1', |
243 | | - 'COMPANY_ID' => 6, |
244 | | - 'CONTACT_ID' => 312 |
245 | | - ]); |
246 | | - print_r($dealId); |
247 | | - |
248 | | - // Устанавливаем набор связанных контактов |
249 | | - $bx24->setDealContactItems($dealId, [ |
250 | | - [ 'CONTACT_ID' => 313 ], |
251 | | - [ 'CONTACT_ID' => 454 ] |
252 | | - ]); |
253 | | - |
254 | | - // Устанавливаем набор связанных товарных позиций |
255 | | - $bx24->setDealProductRows($dealId, [ |
256 | | - [ 'PRODUCT_ID' => 1689, 'PRICE' => 1500.00, 'QUANTITY': 2 ], |
257 | | - [ 'PRODUCT_ID' => 1860, 'PRICE' => 500.00, 'QUANTITY': 15 ] |
258 | | - ]); |
259 | | - |
260 | | - // Обновляем существующую сделку |
261 | | - $bx24->updateDeal($dealId, [ |
262 | | - 'TITLE' => 'Новая сделка №12' |
263 | | - ]); |
264 | | - |
265 | | - // Загружаем сделку по ID вместе со связанными товарами и контактами одним запросом |
266 | | - $deal = $bx24->getDeal($dealId, [ 'PRODUCTS', 'CONTACTS' ]); |
267 | | - print_r($deal); |
268 | | - |
269 | | - // Удаляем существующую сделку |
270 | | - $bx24->deleteDeal($dealId); |
271 | | - |
272 | | - // Загружаем все сделки используя быстрый метод при работе с большими объемами данных |
273 | | - $generator = $bx24->fetchDealList(); |
274 | | - foreach ($generator as $deals) { |
275 | | - foreach($deals as $deal) { |
276 | | - print_r($deal); |
277 | | - } |
278 | | - } |
279 | 374 |
|
280 | | - // Пакетно добавляем сделки вместе с товарными позициями |
281 | | - $ids = $bitrix->addDeals([ |
282 | | - [ |
283 | | - 'TITLE' => 'Новая сделка №1121', |
284 | | - 'COMPANY_ID' => 6, |
285 | | - 'CONTACT_ID' => 312, |
286 | | - 'PRODUCTS' => [ |
287 | | - [ "PRODUCT_ID" => 27, "PRICE" => 100.00, "QUANTITY" => 11 ], |
288 | | - ] |
289 | | - |
290 | | - ], |
291 | | - [ |
292 | | - 'TITLE' => 'Новая сделка №1122', |
293 | | - 'COMPANY_ID' => 6, |
294 | | - 'PRODUCTS' => [ |
295 | | - [ "PRODUCT_ID" => 28, "PRICE" => 200.00, "QUANTITY" => 22 ], |
296 | | - [ "PRODUCT_ID" => 27, "PRICE" => 200.00, "QUANTITY" => 11 ], |
297 | | - ] |
298 | | - ] |
299 | | - ]); |
300 | | - print_r($ids); |
301 | | - |
302 | | -} catch (\App\Bitrix24\Bitrix24APIException $e) { |
303 | | - printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage()); |
304 | | -} |
305 | | -``` |
306 | 375 |
|
307 | 376 | <a id="%D0%90%D0%B2%D1%82%D0%BE%D1%80"></a> |
308 | 377 | ## Автор |
|
0 commit comments