$arFields['ID'], 'firstName' => $arFields['NAME'], 'lastName' => $arFields['LAST_NAME'], 'patronymic' => $arFields['SECOND_NAME'], 'createdAt' => new \DateTime($arFields['DATE_REGISTER']), 'contragentType' => $contragentType ); if (isset($arFields['PERSONAL_PHONE'])) { $customer['phones'][]['number'] = $arFields['PERSONAL_PHONE']; } if (isset($arUser['WORK_PHONE'])) { $customer['phones'][]['number'] = $arFields['WORK_PHONE']; } if (isset($_COOKIE['_rc']) && $_COOKIE['_rc'] != '') { $customer['browserId'] = $_COOKIE['_rc']; } if (function_exists('retailCrmBeforeCustomerSend')) { $newResCustomer = retailCrmBeforeCustomerSend($customer); if (is_array($newResCustomer) && !empty($newResCustomer)) { $customer = $newResCustomer; } } $normalizer = new RestNormalizer(); $customer = $normalizer->normalize($customer, 'customers'); $log = new Logger(); $log->write($customer, 'customer'); if ($send) { if (!RCrmActions::apiMethod($api, 'customersCreate', __METHOD__, $customer, $site)) { return false; } } return $customer; } public static function customerEdit($arFields, $api, $optionsSitesList = array()){ if (empty($arFields)) { RCrmActions::eventLog('RetailCrmUser::orderEdit', 'empty($arFields)', 'incorrect customer'); return false; } $customer = array( 'externalId' => $arFields['ID'], 'firstName' => $arFields['NAME'], 'lastName' => $arFields['LAST_NAME'], 'patronymic' => $arFields['SECOND_NAME'], 'email' => $arFields['EMAIL'] ); if (isset($arFields['PERSONAL_PHONE'])) { $customer['phones'][]['number'] = $arFields['PERSONAL_PHONE']; } if (isset($arFields['WORK_PHONE'])) { $customer['phones'][]['number'] = $arFields['WORK_PHONE']; } $found = false; if (count($optionsSitesList) > 1) { foreach ($optionsSitesList as $site) { $userCrm = RCrmActions::apiMethod($api, 'customersGet', __METHOD__, $arFields['ID'], $site); if (isset($userCrm['customer'])) { $found = true; break; } } } else { $site = null; $userCrm = RCrmActions::apiMethod($api, 'customersGet', __METHOD__, $arFields['ID'], $site); if (isset($userCrm['customer'])) { $found = true; } } if ($found) { $normalizer = new RestNormalizer(); $customer = $normalizer->normalize($customer, 'customers'); $log = new Logger(); $log->write($customer, 'customer'); if (function_exists('retailcrmBeforeCustomerSend')) { $newResCustomer = intarocrm_before_customer_send($customer); if (is_array($newResCustomer) && !empty($newResCustomer)) { $customer = $newResCustomer; } } RCrmActions::apiMethod($api, 'customersEdit', __METHOD__, $customer, $site); } return true; } }