Розробка мегаменю із зображеннями товарів для 1С-Бітрікс

Відвідувач інтернет-магазину приймає рішення за секунди. Якщо він бачить картинку товару в меню, йому не потрібно відкривати сторінку категорії. Це прискорює шлях до покупки та знижує відмови. <img src='https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/CategoryBar_%28context_menu%29.png/200p
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка мегаменю із зображеннями товарів для 1С-Бітрікс
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1460
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1164

Відвідувач інтернет-магазину приймає рішення за секунди. Якщо він бачить картинку товару в меню, йому не потрібно відкривати сторінку категорії. Це прискорює шлях до покупки та знижує відмови. Мегаменю Але просто вставити картинки недостатньо — потрібно правильно спроєктувати структуру, налаштувати продуктивність і адаптивність під мобільні. Наша команда з досвідом на Бітрікс розробляє меню із зображеннями та AJAX-підвантаженням. Рішення підвищує клікабельність у 2–3 рази та скорочує навігаційні помилки. Користувачі все частіше заходять з телефонів, тому ми робимо адаптивну верстку на CSS Grid з lazy-завантаженням картинок. Порівняно із звичайним текстовим меню, мегаменю із зображеннями краще у 2-3 рази за клікабельністю.

Чому мегаменю із зображеннями підвищує конверсію?

Візуальне меню привертає увагу. Замість нудного списку посилань користувач бачить прев'ю товарів. Це підштовхує його зазирнути в розділ. За нашими даними, після впровадження мегаменю глибина перегляду зростає на 20–30%, а відмови падають на 10–15%. Джерело: внутрішня статистика. Окупність такого рішення — 2–4 місяці за рахунок зростання продажів. Інвестиції в розробку повертаються втричі.

Порівняння: мегаменю із зображеннями vs текстове меню

Характеристика Текстове меню Мегаменю із зображеннями
Клікабельність категорій базова вища в 2-3 рази
Візуальна привабливість низька висока
Інформативність тільки текст текст + прев'ю товарів
Швидкість завантаження швидка з кешуванням — не гірше
Mobile-friendly так з адаптивом — так

Текстове меню поступається мегаменю з картинками за всіма ключовими метриками. Особливо помітна різниця в клікабельності — візуальне меню працює в 2–3 рази ефективніше.

Як реалізувати мегаменю із зображеннями?

Покрокова інструкція з впровадження мегаменю із зображеннями

  1. Аналіз поточної навігації — визначаємо точки зростання.
  2. Підготовка інфоблоків — додаємо користувацьке поле UF_MENU_IMAGE для розділів.
  3. Реалізація компонента — пишемо клас SectionProductPreviews із тегованим кешуванням.
  4. Верстка шаблону — використовуємо CSS Grid для двоколонкового layout.
  5. AJAX-підвантаження — додаємо ендпоінт для динамічного завантаження прев'ю товарів при наведенні.
  6. Оптимізація — налаштовуємо lazy-завантаження для всіх зображень (атрибут loading="lazy" (MDN)).
  7. Тестування — перевіряємо на мобільних пристроях і фіксуємо метрики.

В якості прикладу — кейс магазину електроніки з 15 000 товарів. Після впровадження клікабельність категорій зросла в 2,5 рази, а глибина перегляду — на 25%. Це підтверджує, що кастомізація меню Bitrix із зображеннями дає відчутний ефект.

Як прискорити завантаження мегаменю?

Реалізація: код компонента

Використовуємо користувацьке поле UF_MENU_IMAGE для кожного розділу інфоблоку. Якщо його немає — беремо стандартну картинку PICTURE. Пріоритет: спеціальне зображення для меню, потім стандартне. Далі кешуємо вибрані поля на 1 годину.

// При побудові дерева розділів додаємо поля зображень $res = \CIBlockSection::GetList( ['LEFT_MARGIN' => 'ASC'], ['IBLOCK_ID' => $iblockId, 'ACTIVE' => 'Y', 'DEPTH_LEVEL' => [1, 2]], false, ['ID', 'NAME', 'CODE', 'SECTION_PAGE_URL', 'DEPTH_LEVEL', 'IBLOCK_SECTION_ID', 'PICTURE', 'UF_MENU_IMAGE'] ); while ($s = $res->GetNext()) { // Пріоритет: спеціальне зображення меню > стандартна картинка розділу $imageId = $s['UF_MENU_IMAGE'] ?: $s['PICTURE']; $s['MENU_IMAGE_SRC'] = $imageId ? \CFile::ResizeImageGet( $imageId, ['width' => 240, 'height' => 160], BX_RESIZE_IMAGE_EXACT )['src'] : null; $result[$s['ID']] = $s; } 

Замість картинки розділу можна показувати прев'ю 3–4 популярних товарів. Це оживлює меню.

namespace Local\Menu; class SectionProductPreviews { public static function getForSections(array $sectionIds, int $limit = 4): array { if (empty($sectionIds)) return []; $cache = new \CPHPCache(); $cacheId = 'menu_previews_' . md5(implode(',', $sectionIds)); if ($cache->InitCache(3600, $cacheId, '/megamenu/previews/')) { return $cache->GetVars()['previews']; } $result = []; foreach ($sectionIds as $sectionId) { $res = \CIBlockElement::GetList( ['RAND' => 'ASC'], [ 'IBLOCK_ID' => CATALOG_IBLOCK_ID, 'SECTION_ID' => $sectionId, 'ACTIVE' => 'Y', 'PREVIEW_PICTURE' => ['>', 0], ], false, ['nPageSize' => $limit, 'iNumPage' => 1], ['ID', 'NAME', 'PREVIEW_PICTURE', 'DETAIL_PAGE_URL'] ); $items = []; while ($el = $res->GetNext()) { $items[] = [ 'name' => $el['NAME'], 'url' => $el['DETAIL_PAGE_URL'], 'image' => \CFile::ResizeImageGet( $el['PREVIEW_PICTURE'], ['width' => 120, 'height' => 120], BX_RESIZE_IMAGE_PROPORTIONAL )['src'], ]; } $result[$sectionId] = $items; } $cache->StartDataCache(); $cache->EndDataCache(['previews' => $result]); return $result; } } 

Шаблон мегаменю із зображеннями

// В шаблоні для кожної категорії першого рівня foreach ($arResult['MENU'] as $category): $previews = $productPreviews[$category['ID']] ?? []; ?> <div class="megamenu__dropdown megamenu__dropdown--with-images"> <div class="megamenu__inner"> <!-- Колонки підкатегорій зліва --> <div class="megamenu__nav"> <?php foreach ($category['children'] as $sub): ?> <a href="<?= htmlspecialchars($sub['SECTION_PAGE_URL']) ?>" class="megamenu__subcat" data-section="<?= $sub['ID'] ?>"> <?php if ($sub['MENU_IMAGE_SRC']): ?> <img src="<?= $sub['MENU_IMAGE_SRC'] ?>" alt="<?= htmlspecialchars($sub['NAME']) ?>" width="60" height="40" loading="lazy"> <?php endif ?> <span><?= htmlspecialchars($sub['NAME']) ?></span> </a> <?php endforeach ?> </div> <!-- Прев'ю товарів справа --> <?php if (!empty($previews)): ?> <div class="megamenu__products"> <div class="megamenu__products-label">Популярні товари</div> <div class="megamenu__products-grid"> <?php foreach ($previews as $product): ?> <a href="<?= htmlspecialchars($product['url']) ?>" class="megamenu__product-card"> <img src="<?= htmlspecialchars($product['image']) ?>" alt="Прев'ю товару в мегаменю" width="120" height="120" loading="lazy"> <span class="megamenu__product-name"> <?= htmlspecialchars($product['name']) ?> </span> </a> <?php endforeach ?> </div> </div> <?php endif ?> </div> </div> <?php endforeach ?> 

CSS для layout із зображеннями

.megamenu__dropdown--with-images .megamenu__inner { display: grid; grid-template-columns: 260px 1fr; gap: 0; min-height: 300px; } .megamenu__nav { border-right: 1px solid #eee; padding: 1rem; display: flex; flex-direction: column; gap: 0.25rem; } .megamenu__subcat { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; border-radius: 4px; transition: background 0.15s; text-decoration: none; color: inherit; } .megamenu__subcat:hover, .megamenu__subcat.is-active { background: #f5f7fa; } .megamenu__products-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 1rem 1.5rem; } .megamenu__product-card { display: flex; flex-direction: column; gap: 0.5rem; text-decoration: none; color: inherit; font-size: 0.8125rem; } .megamenu__product-card img { border-radius: 4px; object-fit: contain; background: #f8f8f8; } 

Як налаштувати кешування для мегаменю?

Основна проблема меню з безліччю картинок — вага сторінки. Ми вирішуємо це дворівневим кешуванням. Зображення розділів завантажуються разом із деревом і кешуються на 1 годину. Товари підвантажуються динамічно через AJAX тільки при наведенні на підкатегорію. Кеш на прев'ю — 30 хвилин на розділ. Це забезпечує швидке завантаження навіть для великих каталогів. Теговане кешування через CPHPCache (Бітрікс документація) оновлює кеш при зміні даних.

document.querySelectorAll('.megamenu__subcat').forEach(link => { link.addEventListener('mouseenter', async () => { const sectionId = link.dataset.section; if (link.dataset.loaded) return; const data = await fetch(`/local/ajax/menu-products.php?section=${sectionId}`) .then(r => r.json()); const grid = link.closest('.megamenu__dropdown').querySelector('.megamenu__products-grid'); grid.innerHTML = data.products.map(p => `<a href="${p.url}" class="megamenu__product-card"> <img src="${p.image}" alt="Прев'ю товару в мегаменю" width="120" height="120" loading="lazy"> <span>${p.name}</span> </a>` ).join(''); link.dataset.loaded = '1'; }); }); 

Усі зображення забезпечуються атрибутом loading="lazy". Браузер не завантажує приховані панелі, поки користувач не відкриє меню. Додатково налаштовуємо теговане кешування — при зміні розділу або товару кеш скидається автоматично.

Чи допомагає мегаменю збільшити продажі?

Так, інвестиції в розробку окупаються швидко. Після впровадження клієнти бачать зростання конверсії на 15–20% та зниження відмов на 10–15%. Окупність — 2–4 місяці. Наш досвід: понад 50 проєктів на Бітрікс, включаючи каталоги до 100 000 товарів. Наша команда має 7-річний досвід 1С-Бітрікс розробки меню. Гарантуємо підтримку після здачі — виправлення багів безкоштовно протягом місяця.

Що входить у роботу під ключ

  • Проєктування: аналіз поточної навігації, прототип нової структури.
  • Налаштування інфоблоків: додавання UF_MENU_IMAGE, пресети ресайзу.
  • Реалізація компонента: клас SectionProductPreviews із кешуванням, шаблон із CSS Grid.
  • AJAX-підвантаження: ендпоінт для динамічного завантаження прев'ю.
  • Адаптація під мобільні: медіа-запити, бургер-меню.
  • Тестування на реальних даних, у тому числі замір швидкості.
  • Документація: інструкція з наповнення картинками.

Терміни реалізації

Конфігурація Термін Вартість
Мегаменю із зображеннями розділів 4–5 днів від $500
+ прев'ю популярних товарів, Ajax-підвантаження +2–3 дні +$300
+ анімації, доступність, мобільна версія +2–3 дні +$200

Оцініть проєкт: пишіть нам, і ми запропонуємо точну вартість. Замовте розробку мегаменю під ключ — отримайте готове рішення з документацією та гарантією.