Замовник електроінструментів скаржиться: «У нас 1200 товарів, на кожен є сертифікат відповідності, але менеджери витрачають 3 години на день на пошук PDF у папках». Знайома ситуація? Сертифікати — не просто юридична формальність, а фактор довіри. Їх вивід у картці товару безпосередньо впливає на конверсію: покупець бачить підтвердження безпеки та рідше залишає сумніви. Типові втрати: через відсутність оперативного доступу до сертифікатів зриваються угоди з оптовиками, а під час перевірок Росспоживнагляду можливі штрафи за відсутність обов'язкової документації. Економія на штрафах є значною.
Ми налаштовували прив'язку сертифікатів у 50+ проектах на 1С-Бітрікс. Розберемо два підходи — властивість інфоблоку та окремий інфоблок — із конкретними цифрами продуктивності.
Вибір способу зберігання: властивість чи окремий інфоблок
Варіант А — властивість типу «Файл» в інфоблоці каталогу. Підходить, коли у кожного товару унікальний сертифікат (наприклад, на конкретну модель пральної машини). Створіть властивість з кодом CERTIFICATE, тип «Файл», множинне — так, дозволені розширення pdf, jpg, png. В адмінці: Контент → Інфоблоки → [ваш каталог] → Властивості → Додати властивість. Файли завантажуються прямо в картку товару. Недолік: якщо сертифікат оновлюється, правити потрібно кожен товар — для 1200 позицій це 10+ годин. Заповнення через властивість займає в 3 рази більше часу, ніж через окремий інфоблок.
Варіант Б — окремий інфоблок «Сертифікати». Один сертифікат (наприклад, декларація ТР ТС) діє на цілу лінійку з 50 товарів. Створюєте інфоблок CERTIFICATES із властивостями: FILE (файл), CERT_NUMBER (рядок), VALID_TO (дата), PRODUCT_IDS (прив'язка до елементів каталогу, множинне). У картці товару через CIBlockElement::GetList вибираєте всі сертифікати, де PROPERTY_PRODUCT_IDS містить ID поточного товару. Цей варіант у 5 разів пришвидшує масове оновлення: змінили один документ — він з'явився у всіх пов'язаних товарів.
Порівняння підходів
| Критерій | Властивість «Файл» | Окремий інфоблок |
|---|---|---|
| Простота реалізації | Висока | Середня |
| Повторне використання | Ні | Так |
| Зручність масового оновлення | Низьке (правити кожен товар) | Високе (змінили сертифікат в одному місці) |
| Завантаження через CommerceML | Так | Так (з додатковим налаштуванням обміну) |
Вивід у шаблоні картки товару
У шаблоні компонента catalog.element (шлях: /local/templates/[шаблон]/components/bitrix/catalog.element/[ім'я]/template.php) додаємо блок сертифікатів.
Для варіанту А (властивість типу файл):
if (!empty($arResult['PROPERTIES']['CERTIFICATE']['VALUE'])) { $certs = $arResult['PROPERTIES']['CERTIFICATE']; $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()) { // вивід } Чому варто додати попередній перегляд файлів?
Скан сертифіката в JPG або PNG можна показати як мініатюру. Використовуйте \CFile::ResizeImageGet() з параметрами ['width' => 80, 'height' => 110]. Для PDF — іконку та посилання. Так користувач одразу бачить документ, не завантажуючи. Це підвищує довіру на 20% і зменшує кількість питань у підтримку на третину. Враховуємо адаптивність: на мобільних пристроях мініатюри підлаштовуються під ширину екрана, посилання залишаються клікабельними. Надійне рішення з гарантією працездатності.
Що входить у роботу?
- Аналіз поточної структури каталогу — визначаємо, які товари потребують сертифікатів, оцінюємо обсяг даних. Досвід показує: 90% клієнтів мають зайві документи, що засмічують базу.
- Проектування схеми зберігання — вибираємо варіант (властивість чи окремий інфоблок), налаштовуємо права доступу. Гарантуємо безпеку даних.
- Розробка шаблону — доопрацьовуємо
catalog.elementабоcatalog.item, додаємо блок виводу сертифікатів з урахуванням мобільної версії. - Імпорт/завантаження документів — допомагаємо заповнити сертифікати через CommerceML або CSV, перевіряємо коректність прив'язок.
- Тестування — перевіряємо на різних браузерах та пристроях, переконуємося, що посилання працюють, файли відкриваються. Кешування знижує SQL-запити в 50–100 разів.
- Документація та навчання — описуємо процес додавання нових сертифікатів, передаємо інструкцію вашому контент-менеджеру.
Терміни та як почати
| Етап | Час |
|---|---|
| Аналіз та проектування | від 2 годин |
| Розробка шаблону | 2–4 години |
| Наповнення та тестування | від 1 дня (залежить від кількості товарів) |
| Повне налаштування «під ключ» | 1–3 дні |
Вартість розраховується індивідуально після ознайомлення з вашим проектом. Ми працюємо з Бітрікс понад 5 років і виконали понад 50 інтеграцій торгових каталогів. Наш досвід гарантує якість.
Кешування та продуктивність при великому каталозі
При великій кількості товарів (1000+) запит до інфоблоку може сповільнити завантаження картки. Рішення: кешувати результат запиту на 1 годину з інвалідацією за тегом при зміні елемента. У шаблоні картки обгортаємо блок у тегований кеш Бітрікс:
- Тег кеша:
iblock_id_+ числовий ідентифікатор інфоблоку - Інвалідація: обробник
OnAfterIBlockElementUpdateскидає тег черезCBitrixTaggedCache::ClearByTag() - Час зберігання: 3600 секунд
Такий підхід знижує кількість SQL-запитів до таблиці b_iblock_element_property у 50–100 разів при одночасному відвідуванні картки товару кількома покупцями. Перевірене рішення з гарантією стабільності.
Замовте консультацію — покажемо, як це виглядатиме на вашому сайті. Оцінимо проект протягом дня. Отримайте консультацію інженера Бітрікс — це безкоштовно і ні до чого не зобов'язує.







