abssoft/macrocrmapi

API for MacroCRM

dev-master 2022-11-09 07:37 UTC

This package is auto-updated.

Last update: 2025-07-09 11:22:08 UTC


README

API для подключения к MacroCRM

Пример создания объявления в CRM о покупке недвижимости


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain,$your_app_secret);
  
$Order = new \Macrocrm\Order($client);
$result = $Order->add('Иван Иванов','8(555)555-55-55','Интересуют 3-комнатные, до 2 млн.',
[
    'utm_keyword'=>'новостройки самары',
    'utm_source'=>'yandex',
    'utm_medium'=>'cpc',
    'utm_campaign'=>'kupit_kvartiru',
    'utm_type'=>'context',
    'utm_block'=>'premium',
    'utm_position'=>'3',
    'utm_campaign_id'=>'12109414',
    'utm_ad_id'=>'794480184',
    'utm_phrase_id'=>'3203266908',
    'ip'=>'92.123.123.92',
    'user_agent'=>'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36 OPR/28.0.1750.51 (Edition Yx)',
    'cookie_base64'=>base64_encode(json_encode($_COOKIE)),
    'channel_medium'=>'Ипотека'
]);

# в случае удачного создания возвращается ID созданного объявления
# иначе сообщение об ошибке
if (isset($result['success'])){
    $order_id=$result['estate_id'];
} elseif (isset($result['error'])){
    $errorMsg = $result['message'];
}

Пример синхронизации локальных объектов из MacroCRM


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain,$your_app_secret);

# подготавливаем PDO для доступа к базе данных
$db = new PDO('dblib:host=your_hostname;dbname=your_db;charset=UTF-8', $user, $pass);

# настраиваем вывод исключений при ошибках
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
# имя таблицы с объектами в вашей базе данных
# таблица будет создана при синхронизации
$table_name = 'objects';

$Objects = new \Macrocrm\Objects($client, $db, $table_name);
$type = 'living';//для обновления жилой недвижимости
//$type = 'comm';//для обновления коммерческой недвижимости

$Objects->update_records([
    'type' => $type, 
    'last_modified' => 0, 
    'class' => $type == 'living' ? 'estate' : 'commestate', 
    'schema' => 'estate:' . $type, 
    'activity' => $type == 'living' ? array('sell') : array('sell', 'rent')
    ]);

#получение записи объекта по его ID
$record = $Objects->getRecord($id);

# получение всего списка объектов вы можете выполнять стандартными средствами
# доступа к базе данных в вашей системе

Пример синхронизации хода строительства объектов из MacroCRM


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain, $your_app_secret);
 
# подготавливаем PDO для доступа к базе данных
$db = new PDO('mysql:host=your_hostname;dbname=your_db;charset=UTF8', $user, $pass);
 
# настраиваем вывод исключений при ошибках
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
# имя таблицы с объектами в вашей базе данных
# таблица будет создана при синхронизации
$table_name = 'your_table_name';
 
$Hod = new \Macrocrm\Hod($client, $db, $table_name);
 
# Имя папки корзины, не обязательный параметр,
# указывается в случае если нужно не удалять лишние файлы,
# а помещать в отдельную папку
$Hod->trash_folder = $trash_folder_name;
 
# Производим синхронизацию, указав директорию для хранения файлов
$Hod->sync_hod('your_hod_files_directory');

Пример синхронизации документов (проектные декларации и т.д.) объектов строительства из MacroCRM


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain,$your_app_secret);
 
# подготавливаем PDO для доступа к базе данных
$db = new PDO('mysql:host=your_hostname;dbname=your_db;charset=UTF8', $user, $pass);
 
# настраиваем вывод исключений при ошибках
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
# имя таблицы с ТМЦ в вашей базе данных
# таблица будет создана при синхронизации
$table_name = 'your_table_name';
 
$Documents = new \Macrocrm\Documents($client,$db,$table_name);

# полный путь до локальной директории, где будут храниться файлы документов
$dir = '/some/path/to/docs';
 
# вызываем метод для получения данных по текущей компании
$Documents->sync_documents($dir);

Пример получения изображений и разметки фасадов из MacroCRM


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain, $your_app_secret);
 
# подготавливаем PDO для доступа к базе данных
$db = new PDO('mysql:host=your_hostname;dbname=your_db;charset=UTF8', $user, $pass);
 
# настраиваем вывод исключений при ошибках
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
$Facades = new \Macrocrm\Facades($client, $db);

# полный путь до локальной директории, где будут храниться изображения и разметка фасадов
$dir = '/some/path/to/facades';

# Производим синхронизацию
$Facades->sync($dir);

Пример получения изображений и разметки планов этажей из MacroCRM


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain, $your_app_secret);
 
# подготавливаем PDO для доступа к базе данных
$db = new PDO('mysql:host=your_hostname;dbname=your_db;charset=UTF8', $user, $pass);
 
# настраиваем вывод исключений при ошибках
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
$FloorPlans = new \Macrocrm\FloorPlans($client, $db);

# полный путь до локальной директории, где будут храниться изображения и разметка планов этажей
$dir = '/some/path/to/floorplans';

# Производим синхронизацию
$FloorPlans->sync($dir);

Пример получения данных по ТМЦ из MacroCRM


# подготавливаем клиента
$client = new \Macrocrm\Client($your_domain,$your_app_secret);
 
# подготавливаем PDO для доступа к базе данных
$db = new PDO('mysql:host=your_hostname;dbname=your_db;charset=UTF8', $user, $pass);
 
# настраиваем вывод исключений при ошибках
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
# имя таблицы с ТМЦ в вашей базе данных
# таблица будет создана при синхронизации
$table_name = 'your_table_name';
 
# создаем экземпляр класса Inventory
$Inventory = new \Macrocrm\Inventory($client,$db,$table_name);
 
# вызываем метод для получения данных по текущей компании
$result = $Inventory->sync_inventory();