Поиск
Искать в:
Все решения  
  • Все решения
  • Интернет-магазины
    • Аспро: Премьер
    • Аспро: Лайтшоп
    • Аспро: Максимум
    • Аспро: Шины и диски 2.0
    • Аспро: Next
    • Аспро: Оптимус
    • Аспро: Шины и диски, интернет-магазин
    • Аспро: Маркет
    • Аспро: Интернет-магазин
    • Аспро: Крутой шоп
  • Корпоративные сайты
    • Аспро: Приорити 2.0
    • Аспро: Корпоративный сайт 3.0
    • Аспро: Корпоративный сайт 2.0
    • Аспро: Стройка 2.0
    • Аспро: Инжиниринг
    • Аспро: Металл
    • Аспро: Digital 2.0
    • Аспро: Детский сад и образовательный центр
    • Аспро: Курорт 2.0
    • Аспро: Ландшафт 2.0
    • Аспро: Автосервис
    • Аспро: Медицинский центр 3.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. В противном случае корректная работа функционала будет нарушена.  

brand

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

Настройка инфоблока

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

Пример кода:

    
<?php

// поместить этот скрипт в init.php


AddEventHandler("iblock", "OnAfterIBlockElementAdd", array("aspro_import", "FillTheBrands"));

AddEventHandler("iblock", "OnAfterIBlockElementUpdate", array("aspro_import", "FillTheBrands"));

class aspro_import

{

    static function FillTheBrands($arFields)

    {

        $arCatalogID = array(29); // ID инфоблока каталога

        $numBrandsID = 157; // ID инфоблока брендов Аспро

        $oldBrandsCode = 'BREND'; // символьный код свойства брендов, откуда будет взято название для создания нового бренда


        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_' . $oldBrandsCode))->fetch();

            if ($arItem['PROPERTY_' . $oldBrandsCode . '_VALUE']) {

                $arBrand = CIBlockElement::GetList(false, array('IBLOCK_ID' => $numBrandsID, 'NAME' => $arItem['PROPERTY_' . $oldBrandsCode . '_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_' . $oldBrandsCode . '_VALUE'],

                        'IBLOCK_ID' => $numBrandsID,

                        'CODE' => Cutil::translit($arItem['PROPERTY_' . $oldBrandsCode . '_VALUE'], "ru", $arParams)

                    ));

                    if ($id) {

                        CIBlockElement::SetPropertyValuesEx($arFields['ID'], false, array('BRAND' => $id));

                    } else {

                        echo $el->LAST_ERROR;

                    }

                }

            }

        }

    }

}

   
В коде необходимо задать значения 3-м переменным:

Что изменить в коде?

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

    ID каталога

  • Значение ID инфоблока брендов Аспро (переменная $numBrandsID). Значение ID инфоблока указан в соответствующих настройках в инфоблоке контента

    ID бренды

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

    Свойство бренды


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

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


  • Комментарии
Загрузка комментариев...
Для пользователей

Тэги

1С-Битрикс cdn custom.css footer.php google maps php SEO sku template.php title Wix автокомпозит авторизация адаптивная верстка активация 1С-Битрикс активное и подключенное свойство акции баннеры блог бренды быстрый заказ валюта видео вкладки водяной знак выводить описание главная страница добавить поле заголовки заголовки на главной изменить заголовки изображения Интернет-магазин каптча капча карта карточка товара карточка услуги кастом каталог товаров кеш классы стилей ключевые слова кодировка количество товара конвертация конвертация валюты контакты корзина левое меню личный кабинет логотип магазины маска телефона медиабиблиотека меню местоположения микроразметка много Мобильная версия модули модуль настроек название сайта наличие настройка валют настройка веб-форм настройка инфоблоков настройка компонентов настройка свойств настройки доступа настройки инфоблока настройки магазина настройки модулей настройки раздела нет в наличии новости обновление платформы обновление решения Обновление решения обратный звонок ограничения описание товаров основной баннер отзывы отзывы о товаре отображение свойств отображение товаров отсутствующие товары оформление заказа переиндексация персональные рекомендации платежные системы подлинность лицензии поиск покупка в 1 клик пользовательские свойства пользовательские скрипты похожие товары почтовые уведомления почтовые шаблоны пресс-центр привязать товары проекты разделы каталога разработчикам регистрация резервное копирование свойства заказа свойства инфоблока свойства товара свойства торгового предложения связанные товары символьный код скидки скидки на товар скорость загрузки сайта скринкасты скрывать текст бренда скрыть товары в поиске сортировка социальные сервисы список пользователей способы доставки сравнение товаров ссылка страница успешной оплаты структура сайта текст в карточке товара текст в корзине тизеры типы цен товары на складах торговые предложения умный фильтр условия гарантии услуги установка решения уязвимости файлы и папки фильтр на главной формы формы на инфоблоках формы обратной связи форум хлебные крошки цен цены чпу эквайринг