Артём Мáлков

Экспорт (выгрузка) пользовательских полей заказа из 1C-Bitrix в retailCRM

26 фев5 комм

RetailCRM – это онлайн-сервис, позволяющий без труда вести коммерческую деятельность в Интернете. Он включает в себя сбор данных, аналитику и удобное управление всеми вашими заказами. 1C-Bitrix, как известно, узкопрофильная CMS, которая как раз «плавает» в этой сфере и в связке с retailCRM позволяет значительно сэкономить ваше время при ведении бизнеса.

Зачастую помимо основной информации из магазина необходимо передавать пользовательскую информацию о заказе в retailCRM для дальнейшей ее обработки. О том, как это сделать, я сегодня и расскажу.

Вся процедура экспорта данных в один конец (1C-Bitrix – retailCRM) будет состоять из нескольких несложных шагов.

Создание пользовательских полей в retailCRM

Для начала, чтобы что-то куда-то отправлять, вам необходимо подготовить место, где будет храниться экспортируемая информация.

Для примера создадим одно поле.

1. Авторизовываетесь в retailCRM.

2. В левом верхнем углу жмете шестеренку, далее выбираете раздел «Настройки», пункт «Пользовательские поля». Быстрый переход - /admin/settings/fields/new.

Экспорт (выгрузка) пользовательских полей заказа из 1C-Bitrix в retailCRM

На открывшейся странице вы нажимаете кнопку «Добавить +».

3. В появившейся форме вы заполняете следующие данные.

Экспорт (выгрузка) пользовательских полей заказа из 1C-Bitrix в retailCRM

Где:

  1. Поле для – это то, где будет отображаться поле (в заказе или в профилей покупателя);
  2. Название – отображаемое название поля;
  3. Символьный код – технический код поля, уникальный и на английском языке.

Остальное оставляете без изменений и нажимаете кнопку «Сохранить». После чего (при отсутствии каких-либо ошибок) ваше поле появится в общем списке пользовательских полей, а также в заказах (в самом низу), но там оно будет пустое, так как данные еще никакие не экспортированы.

Если вы хотите настроить отображение ваших полей в другом месте, измените значение полей «Область отображения» и «Сортировка».

Запоминаете символьный код поля и отправляйтесь на следующий шаг настройки экспорта.

Настройка экспорта пользовательских полей из 1C-Bitrix в retailCRM

Итак, для того чтобы отправить нужную вам информацию из CMS 1C-Bitrix в retailCRM, напишем не большую функцию:

function retailCrmBeforeOrderSend($order, $arFields) {

	$get_order = CSaleOrderPropsValue::GetOrderProps($arFields['ID']);
    
	while($order_detail = $get_order->Fetch()) {
        
		// Код для одного поля
		if($order_detail['CODE'] == 'FIO') {

			$order['customFields']['test_field'] = $order_detail['VALUE'];

		}
		// Код для одного поля

	}

	return $order;

}

Что здесь что?

$order['customFields']['test_field'], а именно часть «test_field» – это как раз символьный код поля, который мы указывали при создании поля в retailCRM.

«FIO» – это код вашего поля в 1C-Bitrix в заказе, которое и нужно передавать в retailCRM. Чтобы узнать код нужного поля, перейдите в раздел «Свойства заказа». Быстрая ссылка – /bitrix/admin/sale_order_props.php?lang=ru

Куда нужно вставлять этот код? В низ файла init.php, который может находиться по следующим адресам:

/bitrix/php_interface/init.php 
/local/php_interface/init.php 
/bitrix/php_interface/ID сайта/init.php 

В моем случае файл был по второму пути в FTP сайта. На этом все. Если остались вопросы – задавайте их в комментариях.

Рекомендуем к просмотру
ResizeImageGet: быстрое создание превью (ресайз) изображений в 1C-Bitrix
Статьи и советы
Как создать и вывести пользовательское поле раздела в 1C-Bitrix?
Статьи и советы
Как зайти в панель управления сайтом в 1C-Bitrix?
Статьи и советы
5
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 2
    3
      •  Пользователь
    18 апр в 22:13

    Спасибо. А как пойти от обратного. В ретейле есть кастомное поле и его заполняют менеджеры, как его передать в битрикс ?

      • 2
      1067
        •  Команда Pandoge
      21 апр в 00:49

      Павел П., здравствуйте!

      Полагаю, вам нужно воспользоваться функцией retailCrmBeforeOrderSave, которая позволяет модифицировать данные заказа, пришедшие на сайт по истории из ретейла.

      Пример этой функции:

      function retailCrmBeforeOrderSave($order) {
      	
      	// Ваши изменения
      	
      	return $order;
      	
      }

      К сожалению, большим помочь не могу, так как под рукой нет системы для тестов.

      • 3
      3
        •  Пользователь
      21 апр в 16:44

      Артём Мáлков, Спасибо и на этом. Но если сможете - было б супер. Код поля в ретейле "dataplan"

      код поля в Битрикс24 "ДатаОтгрузки".

      Поле заполняют менеджеры в ретейле и надо чтоб в битриксе я видел эти значения.

      спасибо

      • 2
      1067
        •  Команда Pandoge
      21 апр в 23:31

      Павел П., можем друг другу помочь. Предоставите доступы - сделаю, а в замен напишу статью на основе вашего сайта smiley

      • 2
      3
        •  Пользователь
      22 апр в 10:07

      Артём Мáлков, Добро . как связаться в телеге ?

Подняться наверх
«Pandoge» - помощник вебмастера