Поиск
Искать в:
Все решения  
  • Все решения
  • Интернет-магазины
    • Аспро: Лайтшоп
    • Аспро: Максимум
    • Аспро: Шины и диски 2.0
    • Аспро: Next
    • Аспро: Оптимус
    • Аспро: Шины и диски, интернет-магазин
    • Аспро: Интернет-магазин
    • Аспро: Крутой шоп
    • Аспро: Маркет
  • Корпоративные сайты
    • Аспро: Корпоративный сайт 3.0
    • Аспро: Корпоративный сайт 2.0
    • Аспро: Приорити
    • Аспро: Ландшафт
    • Аспро: Медицинский центр 2.0
    • Аспро: Digital
    • Аспро: Курорт
    • Аспро: Стройка
    • Аспро: Сайт медицинского центра
    • Аспро: Корпорация
    • Аспро: Корпоративный сайт
    • Аспро: Корпоративный сайт современной компании
  • Модули
    • Аспро: Привязка ответственного
    • Аспро: Шинный калькулятор
    • Аспро: Кредитный калькулятор
    • Аспро: Универсальный импорт
  • 1С-Битрикс
    • Общее

Не получается выгрузить бренды из 1С

ID статьи: 63 , создана 04 май 2016
В решениях «Аспро: Маркет» и «Аспро: Крутой шоп» бренды не импортируются автоматически при выгрузке из 1С, так как являются свойством-привязкой к элементу инфоблока.  Благодаря этому пользователи могут привязывать к брендам элементы других инфоблоков – например, соответствующие товары, которые пользователь будет видеть на странице конкретного производителя.

Решение

Инструкция и приведенные в ней фрагменты кода приведены для сайтов, установленных не в режиме многосайтовости. Если вам необходимо настроить выгрузку брендов из 1С для интернет-магазина с многосайтовостью, обратитесь к разработчикам или в поддержку для индивидуальной консультации. 

Важно! Инструкция предназначена для пользователей с уровнем знания php не ниже среднего. Если вы не владеете достаточными для этого знаниями и навыками, обратитесь в техподдержку за доработкой решения. Статья в том числе актуальна для сайтов, обновленных до версии PHP 8.1.

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

Внимание! При проведении работ с настройками инфоблока запрещается удалять служебное свойство BRAND. В противном случае корректная работа функционала будет нарушена.  


Если выгрузка из 1С производится в новый инфоблок, необходимо создать это свойство вручную, сохранив соответствующие настройки (см. скриншот выше). После создания свойства перейдите в его настройки, чтобы привязать свойство BRAND к нужному инфоблоку.


Настоятельно рекомендуем вносить изменения через ftp и ни в коем случае не создавать файл init.php в структуре сайта инструментами 1С-Битрикс. Некорректный ввод или кастомизация кода приведет к полной потере работоспособности сайта. Прежде чем кастомизировать решение, обязательно проведите резервное копирование.

Пример кода:

  AddEventHandler( "iblock", "OnAfterIBlockElementAdd", array( "aspro_import", "FillTheBrands" ) );
	 AddEventHandler( "iblock", "OnAfterIBlockElementUpdate", array( "aspro_import", "FillTheBrands" ) );
	 class aspro_import {
	 	static function FillTheBrands( $arFields ){
	 		$arCatalogID=array(13);
	 		if( in_array($arFields['IBLOCK_ID'], $arCatalogID) ){
	 			$arItem = CIBlockElement::GetList( false, array( 'IBLOCK_ID' => $arFields['IBLOCK_ID'], 'ID' => $arFields['ID'] ), false, false, array( 'ID', 'PROPERTY_BREND' ) )->fetch();
	 			if( $arItem['PROPERTY_BREND_VALUE'] ){
	 				$arBrand = CIBlockElement::GetList( false, array( 'IBLOCK_ID' => 8, 'NAME' => $arItem['PROPERTY_BREND_VALUE'] ) )->fetch();
	 				if( $arBrand ){
	 					CIBlockElement::SetPropertyValuesEx( $arFields['ID'], false, array( 'BRAND' => $arBrand['ID'] ) );
	 				}else{
	 					$el = new CIBlockElement;
	 					$arParams = array( "replace_space" => "-", "replace_other" => "-" );
	 					$id = $el->Add( array(
	 						'ACTIVE' => 'Y',
	 						'NAME' => $arItem['PROPERTY_BREND_VALUE'],
	 						'IBLOCK_ID' => 8,
	 						'CODE' => Cutil::translit( $arItem['PROPERTY_BREND_VALUE'], "ru", $arParams )
	 					) ); 			    
	 					if( $id ){
	 						CIBlockElement::SetPropertyValuesEx( $arFields['ID'], false, array( 'BRAND' => $id ) );
	 					}else{
	 						echo $el->LAST_ERROR;
	 					}
	 				}
	 			}
	 		}
	 	}
}

   
В код необходимо внести следующие изменения:

  • значение ID инфоблока каталога (переменная $arCatalogID) — соответствует ID инфоблока каталога вашего магазина. Узнать значение ID можно, к примеру, в настройках инфоблока каталога 


  • ID инфоблока «Бренды» (фрагмент, содержащий 'IBLOCK_ID' => 8, где 8 — это ID инфоблока «Бренды»). ID инфоблока «Бренды» указан в соответствующих настройках. 



  • Перейдите в список свойств инфоблока и найдите нужное свойство, выгруженное из 1С и соответствующее значению брендов. В нашем случае значение символьного кода – BREND. Скопируйте его. Также обратите внимание на тип свойства – нужно выбрать вариант «Строка».


  • После этого нужно заменить символьные коды в фрагментах  вида 'PROPERTY_BREND' и 'PROPERTY_BREND_VALUE'. Вместо символьного кода свойства BREND, как в нашем случае, необходимо подставить свое значение. К примеру, если система использует код C3PO, то фрагменты должны принять вид  'PROPERTY_C3PO' и 'PROPERTY_C3PO_VALUE'.



Внимание! Для корректной работы сайта проверьте, заключен ли ваш код в специальные теги — в самом начале кода файла и в самом конце.

Выглядеть должно так:


При выгрузке вы можете столкнуться с ошибкой «Элемент с таким символьным кодом уже существует». Скорее всего, у вас в 1С есть бренды, отличающиеся только специальным символом или регистром. У них генерируется одинаковый символьный код, и возникает ошибка. Устранить ее можно двумя способами: скорректировать название бренда или изменить метод транслитерации под свой проект. Во втором способе вам поможет документация 1С-Битрикс.


  • Комментарии
Загрузка комментариев...

Тэги

1С-Битрикс cdn custom.css favicon Google Fonts google maps Google Mobile Friendly Websites marketmixer php SEO sku template.php title автокомпозит авторизация авторский знак адаптивная верстка активация 1С-Битрикс акции баннеры бренды быстрый заказ валюта видео визуальный редактор вкладки выгрузка товаров главная страница достаточно единицы измерения заголовки задать стили изменить порядок вывода изменить порядок картинок изображения Интернет-магазин капча карта карта сайта карточка товара каталог товаров каталог услуг кеш классы стилей кодировка количество товара композит контакты корзина купить в 1 клик левое меню личный кабинет логотип магазины мало маска телефона медиабиблиотека меню местоположение местоположения модули модуль настроек название сайта настройка валют настройка веб-форм настройка инфоблоков настройка компонентов настройка свойств настройки доступа настройки инфоблока настройки магазина настройки модулей настройки раздела не добавляется товар в корзину нет в наличии новости обновление платформы обновление решения Обновление решения обратный звонок ограничения описание раздела основной баннер отзывы отзывы о товаре отключить виджет отображение свойств отображение товаров оформление заказа ошибка активации персональные рекомендации платежные системы подбор проектов подгрузка изображений поиск покупка в 1 клик пользовательские свойства порядок отображения картинок похожие товары почтовые уведомления почтовые шаблоны права доступа премодерация привязать товары проекты разделы каталога разработчикам регистрация резервное копирование свойства заказа свойства инфоблока свойства товара свойства торгового предложения связанные товары символьный код скидки скидки на товар скорость загрузки сайта скрывать описание бренда скрывать текст бренда сортировка социальные сервисы список пользователей способы доставки сравнение товаров ссылка страница партнеров страница успешной оплаты структура сайта текст в карточке товара тизеры типовые проекты типы цен товары на складах торговые предложения умный фильтр условия гарантии услуги установка решения файлы и папки фиксированная шапка на мобильном формы формы на инфоблоках формы обратной связи форум хлебные крошки цены чпу широкое меню