Налаштування відображення сертифікатів відповідності товарів у 1С-Bitrix
Для ряду товарних категорій — побутова техніка, електроніка, харчові продукти, будівельні матеріали — покупці запитують сертифікати відповідності прямо на сайті. Задача: привязати файли сертифікатів до товарів у каталозі та відобразити їх у карточці товару.
Де зберігати файли сертифікатів
Сертифікати зберігаються як властивості інфоблоку. Оптимальний варіант — властивість типу «Файл» (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 ч |







