Skip to content

Commit 3bf4837

Browse files
author
andrey-tech
committed
Update README.md
1 parent 2d844e1 commit 3bf4837

2 files changed

Lines changed: 155 additions & 86 deletions

File tree

README.md

Lines changed: 154 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,15 @@
1212
<!-- MarkdownTOC levels="1,2,3,4,5,6" autoanchor="true" autolink="true" -->
1313

1414
- [Требования](#%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)
1616
- [Базовые методы класса](#%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)
1717
- [Дополнительные параметры](#%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)
1818
- [Методы работы с сущностями Битрикс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)
1919
- [Методы работы со сделками](#%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)
2021
- [Вспомогательные классы](#%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)
2122
- [Класс `\App\HTTP`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-apphttp)
2223
- [Класс `\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)
2524
- [Автор](#%D0%90%D0%B2%D1%82%D0%BE%D1%80)
2625
- [Лицензия](#%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)
2726

@@ -33,11 +32,23 @@
3332
- PHP >= 7.0.
3433
- Произвольный автозагрузчик классов, реализующий стандарт [PSR-4](https://www.php-fig.org/psr/psr-4/).
3534

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`
3837

3938
Для работы с 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+
- Диск
4152

4253
<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>
4354
### Базовые методы класса
@@ -64,6 +75,7 @@
6475
+ `$items` - массив полей запросов.
6576
- `getLastResponse() :?array` Возвращает последний ответ от API.
6677

78+
6779
<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>
6880
### Дополнительные параметры
6981

@@ -81,6 +93,8 @@
8193
<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>
8294
### Методы работы со сделками
8395

96+
Методы для работы со сделками находятся в трейте `\App\Bitrix24\Deal`.
97+
8498
- `getDeal($dealId, array $with = []) :array` Возвращает параметры сделки по ее ID.
8599
+ `$dealId` - ID сделки;
86100
+ `$with` - имена связанных сущностей, возвращаемых вместе со сделкой.
@@ -137,6 +151,140 @@
137151
- `getDealProductRowFields() :array` Возвращает описание полей товарных позиций.
138152
- `getDealFields() :array` Возвращает описание полей cделки, в том числе пользовательских.
139153

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+
140288
<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>
141289
## Вспомогательные классы
142290

@@ -223,86 +371,7 @@ $bx24->logger->isActive = true;
223371

224372
```
225373

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-
}
279374

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-
```
306375

307376
<a id="%D0%90%D0%B2%D1%82%D0%BE%D1%80"></a>
308377
## Автор

src/App/Bitrix24/Activity.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
/**
4-
* Трейт Actibity. Методы для работы с делами в системе Bitrix24.
4+
* Трейт Actibity. Методы для работы с делами (активностями) в системе Bitrix24.
55
*
66
* @author andrey-tech
77
* @copyright 2019-2020 andrey-tech

0 commit comments

Comments
 (0)