Интеграция форм и магазина 1с bitrix с amoCRM

Первый раз интегрировал сайт и интернет-магазин на 1с битрикс с amoCRM. Нужно было передавать в амоцрм, как множество форм, так и заказы со всей информацией, корзиной.

Сначала хотел сделать модуль, но использовал другую возможность расширить сайт — специально задуманный файл для разработчиков init.php в папке /bitrix/php_interface/

Чтобы не загромождать, прописал лишь одну строчку

include_once(‘/home/l/test/test.ru/public_html/test_amocrm/require.php’); //интеграция amocrm by hamtim.ru

А в скрипте require.php добавил хук на события битрикса, в хуке собрал, и подготовил данные и как обычно подключил свой скрипт интеграции integrator-amokit.

AddEventHandler(«sale», «OnOrderNewSendEmail», «HamtimAmokitSaleMails»); function HamtimAmokitSaleMails($orderID, &$eventName, &$arFields) { $arOrder = CSaleOrder::GetByID($orderID); $order_props = CSaleOrderPropsValue::GetOrderProps($orderID); $_REQUEST[‘phone’]=$_POST[‘post’]=»»; $_REQUEST[’email’]=$_POST[’email’]=htmlspecialchars($arFields[«EMAIL»]); $_REQUEST[‘ORDER_USER’]=$_POST[‘ORDER_USER’]=htmlspecialchars($arFields[«ORDER_USER»]); $_REQUEST[‘PRICE’]=$_POST[‘PRICE’]=htmlspecialchars(strip_tags($arFields[«PRICE»])); $_REQUEST[‘DELIVERY_PRICE’]=$_POST[‘DELIVERY_PRICE’]=htmlspecialchars($arFields[«DELIVERY_PRICE»]); $_REQUEST[‘ORDER_LIST’]=$_POST[‘ORDER_LIST’]=strip_tags($arFields[«ORDER_LIST»]); $_REQUEST[‘ORDER_LIST2’]=$_POST[‘ORDER_LIST2’]=$arFields[«ORDER_LIST»]; $_REQUEST[«ORDER_DESCRIPTION»]=$_POST[«ORDER_DESCRIPTION»] = $arOrder[«USER_DESCRIPTION»]; $_REQUEST[‘orderID’]=$_POST[‘orderID’]=’Заказ №’.$orderID; $index = «»; $country_name = «»; $_REQUEST[‘city’]=$_POST[‘city’] = «»; $address = «»; while ($arProps = $order_props->Fetch()) { if ($arProps[«CODE»] == «PHONE») { $_REQUEST[‘phone’]=$_POST[‘post’] = htmlspecialchars($arProps[«VALUE»]); } if ($arProps[«CODE»] == «LOCATION») { $arLocs = CSaleLocation::GetByID($arProps[«VALUE»]); $country_name = $arLocs[«COUNTRY_NAME_ORIG»]; $_REQUEST[‘city’]=$_POST[‘city’] = $arLocs[«CITY_NAME_ORIG»]; } } //— получаем название службы доставки $arDeliv = CSaleDelivery::GetByID($arOrder[«DELIVERY_ID»]); $delivery_name = «»; if ($arDeliv) { $_REQUEST[‘delivery_name’]=$_POST[‘delivery_name’] = $arDeliv[«NAME»]; } //— получаем название платежной системы $arPaySystem = CSalePaySystem::GetByID($arOrder[«PAY_SYSTEM_ID»]); $pay_system_name = «»; if ($arPaySystem) { $_REQUEST[‘pay_system_name’]=$_POST[‘pay_system_name’] = $arPaySystem[«NAME»]; } #подключение интегратора amokit.ru include_once(‘send.php’); }

 

Для обработки форм в этот же файл require.php добавил условие:

if(isset($_REQUEST[‘web_form_submit’])) { if($_REQUEST[‘web_form_submit’]) { #подключение интегратора amokit.ru include_once(‘integrator-amokit/send.php’); } }

В результате формы на сайте и интернет магазин полностью интегрированы с amoCRM.