Настройка отображения сертификатов соответствия товаров 1С-Битрикс
Для ряда товарных категорий — бытовая техника, электроника, продукты питания, стройматериалы — покупатели запрашивают сертификаты соответствия прямо на сайте. Задача: привязать файлы сертификатов к товарам в каталоге и отобразить их в карточке товара.
Где хранить файлы сертификатов
Сертификаты хранятся как свойства инфоблока. Оптимальный вариант — свойство типа «Файл» (F) или «Привязка к инфоблоку» (E), если сертификаты нужно переиспользовать между несколькими товарами (одна и та же декларация ТР ТС на целую линейку).
Вариант А — свойство типа «Файл» (проще, подходит, когда у каждого товара свой файл):
В административной части: Контент → Инфоблоки → [ваш каталог] → Свойства → Добавить свойство:
- Тип: Файл
- Код:
CERTIFICATE - Множественное: Да (один товар может иметь несколько сертификатов)
- Разрешённые расширения: pdf, jpg, png
Вариант Б — отдельный инфоблок «Сертификаты» (лучше при большом количестве документов):
Создаёте инфоблок CERTIFICATES со свойствами: FILE (файл), CERT_NUMBER (строка), VALID_TO (дата), PRODUCT_IDS (привязка к инфоблоку, множественное). В карточке товара выбираете все сертификаты, привязанные к данному товару.
Вывод в шаблоне карточки товара
В шаблоне компонента catalog.element (путь: /local/templates/[шаблон]/components/bitrix/catalog.element/[имя]/template.php) добавляете блок сертификатов.
Для варианта А (свойство типа файл):
if (!empty($arResult['PROPERTIES']['CERTIFICATE']['VALUE'])) {
$certs = $arResult['PROPERTIES']['CERTIFICATE'];
// Для множественного свойства VALUE — массив ID файлов
$fileIds = is_array($certs['VALUE']) ? $certs['VALUE'] : [$certs['VALUE']];
foreach ($fileIds as $fileId) {
$fileInfo = \CFile::GetFileArray($fileId);
if ($fileInfo) {
echo '<a href="' . $fileInfo['SRC'] . '" target="_blank">';
echo 'Сертификат: ' . htmlspecialchars($fileInfo['ORIGINAL_NAME']);
echo '</a>';
}
}
}
Для варианта Б (отдельный инфоблок):
$certRes = \CIBlockElement::GetList(
['SORT' => 'ASC'],
[
'IBLOCK_ID' => CERT_IBLOCK_ID,
'PROPERTY_PRODUCT_IDS' => $arResult['ID'],
],
false,
false,
['ID', 'NAME', 'PROPERTY_FILE', 'PROPERTY_CERT_NUMBER', 'PROPERTY_VALID_TO']
);
while ($cert = $certRes->GetNext()) {
// вывод
}
Оформление блока на странице
Типичное оформление — вкладка «Сертификаты» рядом с «Описанием» и «Характеристиками», или отдельный раздел внизу карточки. Если используете компонент catalog.element с детальной страницей через шаблон, проще всего добавить блок через $APPLICATION->AddViewContent() и вывести его в нужном месте шаблона страницы.
Иконки типов файлов и превью
Если сертификат в PDF — отображайте иконку PDF и ссылку на скачивание. Если это изображение (скан) — можно показать миниатюру через \CFile::ResizeImageGet() с параметрами ['width' => 80, 'height' => 110].
| Этап | Время |
|---|---|
| Создание свойства / инфоблока | 1–2 ч |
| Заполнение сертификатов для товаров | зависит от количества |
| Доработка шаблона карточки товара | 2–4 ч |
| Тестирование отображения | 1 ч |







