ΠΠ±ΡΡΡΠΊΠ° Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
Ρ API amoCRM
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π§Π΅ΡΠ΅Π· composer:
$ composer require cl-lab/amo-middleware
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΡΡΠΊΠΈ ΠΏΡΠΎΠΏΠΈΡΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅:, (*1)
use CleverLab\AmoCRM\Middleware;, (*2)
$amo = new Middleware('SUBDOMAIN', 'LOGIN', 'HASH');, (*3)
$result = $amo->getAccount();, (*4)
Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ
ΠΡΠ±Π°Ρ ΠΎΠ±ΡΡΡΠΊΠ° Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ CleverLab\AmoCRM\Interfaces\iMiddleware, (*5)
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠ΅Ρ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΡΠΈΠ±ΠΎΠΊ
ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΡΡΠΊΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅., (*6)
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° (Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ Ρ.Π΄.)
Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² (Π£Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ Π΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ)., (*7)
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² Π°Π½ΠΎΡΠ°ΡΠΈΡ
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΡΡΠΊΠΈ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ phpDoc.
Π’Π°ΠΊ ΠΆΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΊΠ°Π·Π°Π½Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ API., (*8)
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
Π§Π°ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ. Π―Π²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΡΠΊΠΎΠΉ
Π½Π°Π΄ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π° Π²Ρ
ΠΎΠ΄ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
ΠΌΠΎΠΆΠ½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ API AmoCRM., (*9)
ΠΠΎ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π½Π° ΡΠ΅Π±Ρ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π° Π²Ρ
ΠΎΠ΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²., (*10)
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΄Π΅Π»ΠΊΠΈ:, (*11)
ΠΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΄Π΅Π»ΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ addLead($parameters, $debug = false)., (*12)
ΠΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² $parameters? $parameters ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΡΠ°ΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΌ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°
https://developers.amocrm.ru/rest_api/leads_set.php Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π½Π° ΡΠ°ΠΊΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅
ΠΊΠ°ΠΊ 'custom_fields'. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ dotzero/amocrm-php ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ:, (*13)
$lead->addCustomField(167379, [[388733, 'Π‘ΡΠ°ΡΡΠ°ΠΏ']]);
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²Π°Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:, (*14)
$parameters = array(
'name' => 'Π’Π΅ΡΡΠΎΠ²Π°Ρ ΡΠ΄Π΅Π»ΠΊΠ°',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Π‘ΡΠ°ΡΡΠ°ΠΏ']],
),
),
);
ΠΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° "enum" ΠΈ "subtype", ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡ
ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ:, (*15)
$parameters = array(
'name' => 'Π’Π΅ΡΡΠΎΠ²Π°Ρ ΡΠ΄Π΅Π»ΠΊΠ°',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Π‘ΡΠ°ΡΡΠ°ΠΏ']],
'enum' => true,
'subtitle' => true,
),
),
);
ΠΡΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²., (*16)
ΠΠ° Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ addGroupOfLeads($dataList, $debug = false)., (*17)
$dataList = array(
array(
'name' => 'Π’Π΅ΡΡΠΎΠ²Π°Ρ ΡΠ΄Π΅Π»ΠΊΠ°',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Π‘ΡΠ°ΡΡΠ°ΠΏ']],
),
),
),
array(
'name' => 'Π’Π΅ΡΡΠΎΠ²Π°Ρ ΡΠ΄Π΅Π»ΠΊΠ°2',
'responsible_user_id' => '789344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Π‘ΡΠ°ΡΡΠ°ΠΏ']],
),
array(
'id' => 168596,
'value' => [[384533, 'Π‘ΡΠ°ΡΡΠ°ΠΏ2']],
),
),
),
);
ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ., (*18)
ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠΎΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ setParameters($object, $parameters), (*19)
ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΈΠΏΠ° "ΠΠΎΡΠΎΠ½ΠΊΠΈ ΠΈ ΡΡΠ°ΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ" Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΠ΅ΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ "statuses_fields".
Π dotzero/amocrm-php Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ:, (*20)
$pipeline->addStatusField([
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
]);
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°ΠΈ Π²Π°Ρ ΠΌΠ°ΡΡΠΈΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:, (*21)
$parameters = array(
'name' => 'ΠΠΎΡΠΎΠ½ΠΊΠ° 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
),
)
);
ΠΠ΅ΡΠΎΠ΄ "addStatusField" Π² ΠΊΠ°ΡΠ΅ΡΠ²Π΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
ΡΡΠ°ΠΏΠ° Π²ΠΎΡΠΎΠ½ΠΊΠΈ., (*22)
Π§ΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:, (*23)
$parameters = array(
'name' => 'ΠΠΎΡΠΎΠ½ΠΊΠ° 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
'id' => 12345,
),
)
);
ΠΠ»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΡΠΎΠ½ΠΎΠΊ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°ΠΈ ΡΠΎ ΡΠ΄Π΅Π»ΠΊΠ°ΠΌΠΈ, ΡΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:, (*24)
$dataList = array(
$parameters = array(
'name' => 'ΠΠΎΡΠΎΠ½ΠΊΠ° 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
'id' => 12345,
),
)
),
$parameters = array(
'name' => 'ΠΠΎΡΠΎΠ½ΠΊΠ° 2',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending2',
'sort' => 11,
'color' => '#fffeb2',
),
),
array(
'parameters' => array(
'name' => 'Pending3',
'sort' => 2,
'color' => '#fffeb2',
),
'id' => 2154,
),
)
)
);