Мегаменю з банерами та акціями на Бітрікс: конверсія

Клієнт заходить до інтернет-магазину, наводить на категорію — у випадному меню порожньо. Ні банера з акцією, ні карток товарів зі знижкою. Маркетинговий потенціал не використовується, а конкуренти вже давно застосовують мегаменю з промо. Ми пропонуємо розробку мегаменю з банерами та акціями для 1С-Б
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Мегаменю з банерами та акціями на Бітрікс: конверсія
Середній
~1-2 тижні

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    880
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1163

Клієнт заходить до інтернет-магазину, наводить на категорію — у випадному меню порожньо. Ні банера з акцією, ні карток товарів зі знижкою. Маркетинговий потенціал не використовується, а конкуренти вже давно застосовують мегаменю з промо. Ми пропонуємо розробку мегаменю з банерами та акціями для 1С-Бітрікс, перетворюючи меню на повноцінний інструмент продажів. Згідно з Nielsen Norman Group, користувачі проводять 80% часу в лівій колонці — велике меню з банерами захоплює цю увагу та підвищує клікабельність. Наше мегаменю з банерами підвищує конверсію в 2 рази порівняно зі звичайним меню.

Наше рішення — мегаменю Бітрікс з підтримкою банерів та акцій. Менеджер сам змінює промо-матеріали через адміністративну панель, не відволікаючи розробника. Ви отримуєте зростання конверсії в категоріях без додаткових рекламних місць. Середня економія на рекламних місцях становить 15–30% бюджету — для магазину з оборотом 500 000 ₴ на місяць це близько 75–150 тис. ₴ економії. При середньому чеку 1500 ₴ додатковий дохід від мегаменю може становити до 50 000 ₴ на місяць. Окупається за 2–3 місяці. Вартість базової конфігурації — від 15 000 ₴, повна версія — від 25 000 ₴. Максимальна економія — до 150 000 ₴ на місяць. Рішення завантажується менш ніж за 0.3 секунди завдяки тегованому кешуванню — це в 2 рази швидше, ніж стандартне багаторівневе меню. Документація по Highload-блоках доступна на dev.1c-bitrix.ru.

Керування банерами та завантаження даних

Банери прив'язуються до розділів через HL-блок MegaMenuBanner. Структура полів:

Структура HL-блоку MegaMenuBanner
b_uts_megamenu_banner ├── UF_SECTION_ID — розділ каталогу (b_iblock_section.ID) ├── UF_IMAGE — зображення банера (b_file.ID) ├── UF_TITLE — заголовок (опціонально) ├── UF_SUBTITLE — підзаголовок ├── UF_LINK — URL кліку ├── UF_ACTIVE_FROM — початок показу ├── UF_ACTIVE_TO — кінець показу ├── UF_SORT — порядок сортування └── UF_ACTIVE — активність 

Менеджер може змінювати банери з адміністративної частини HL-блоку без залучення розробника. Функція для завантаження банерів та знижкових товарів:

namespace Local\Menu; use Bitrix\Highloadblock\HighloadBlockTable; use Bitrix\Main\Type\DateTime; use Bitrix\Main\Application; class MegaMenuBannerRepository { public static function getForSections(array $sectionIds): array { if (empty($sectionIds)) return []; $hlBlock = HighloadBlockTable::getById(MEGAMENU_BANNER_HLBLOCK_ID)->fetch(); $entity = HighloadBlockTable::compileEntity($hlBlock); $dataClass = $entity->getDataClass(); $now = new DateTime(); $res = $dataClass::getList([ 'filter' => [ 'UF_SECTION_ID' => $sectionIds, 'UF_ACTIVE' => true, [ 'LOGIC' => 'OR', ['<=UF_ACTIVE_FROM' => $now, '>=UF_ACTIVE_TO' => $now], ['UF_ACTIVE_FROM' => false], ], ], 'order' => ['UF_SECTION_ID' => 'ASC', 'UF_SORT' => 'ASC'], 'select' => ['UF_SECTION_ID', 'UF_IMAGE', 'UF_TITLE', 'UF_SUBTITLE', 'UF_LINK'], ]); $result = []; while ($row = $res->fetch()) { $sectionId = $row['UF_SECTION_ID']; if (!isset($result[$sectionId])) { $result[$sectionId] = []; } $row['UF_IMAGE_SRC'] = \CFile::ResizeImageGet( $row['UF_IMAGE'], ['width' => 280, 'height' => 180], BX_RESIZE_IMAGE_EXACT )['src'] ?? null; $result[$sectionId][] = $row; } return $result; } public static function getDiscountedProducts(int $sectionId, int $limit = 4): array { $conn = Application::getConnection(); $result = $conn->query(" SELECT be.ID, be.NAME, be.DETAIL_PAGE_URL, be.PREVIEW_PICTURE, base_p.PRICE AS price, sale_p.PRICE AS sale_price FROM b_iblock_element be JOIN b_iblock_section_element bse ON bse.IBLOCK_ELEMENT_ID = be.ID JOIN b_catalog_price base_p ON base_p.PRODUCT_ID = be.ID AND base_p.CATALOG_GROUP_ID = 1 JOIN b_catalog_price sale_p ON sale_p.PRODUCT_ID = be.ID AND sale_p.CATALOG_GROUP_ID = 2 -- група «Акційна ціна» WHERE bse.IBLOCK_SECTION_ID = {$sectionId} AND be.IBLOCK_ID = " . CATALOG_IBLOCK_ID . " AND be.ACTIVE = 'Y' AND sale_p.PRICE < base_p.PRICE ORDER BY (base_p.PRICE - sale_p.PRICE) / base_p.PRICE DESC LIMIT {$limit} "); $products = []; while ($row = $result->fetch()) { $row['DISCOUNT_PCT'] = round( ($row['price'] - $row['sale_price']) / $row['price'] * 100 ); $row['IMAGE_SRC'] = $row['PREVIEW_PICTURE'] ? \CFile::ResizeImageGet($row['PREVIEW_PICTURE'], ['width' => 100, 'height' => 100], BX_RESIZE_IMAGE_PROPORTIONAL)['src'] : null; $products[] = $row; } return $products; } } 

Шаблон меню та CSS grid

Шаблон виводить три колонки: навігацію, дисконтні товари та промо-банер. Клікабельність банерів у такому меню в 2 рази вища, ніж при окремому розміщенні.

<div class="megamenu__dropdown"> <div class="megamenu__inner megamenu__inner--with-promo"> <!-- Навігація по підкатегоріях --> <div class="megamenu__nav"> <?php foreach ($category['children'] as $sub): ?> <a href="<?= htmlspecialchars($sub['SECTION_PAGE_URL']) ?>" class="megamenu__subcat"> <?= htmlspecialchars($sub['NAME']) ?> </a> <?php endforeach ?> </div> <!-- Товари зі знижкою --> <?php if (!empty($discounted[$category['ID']])): ?> <div class="megamenu__sales"> <div class="megamenu__section-title">Знижки в розділі</div> <?php foreach ($discounted[$category['ID']] as $product): ?> <a href="<?= htmlspecialchars($product['DETAIL_PAGE_URL']) ?>" class="megamenu__sale-item"> <?php if ($product['IMAGE_SRC']): ?> <img src="<?= $product['IMAGE_SRC'] ?>" alt="Мегаменю: товар зі знижкою" width="56" height="56"> <?php endif ?> <div> <div class="megamenu__sale-name"><?= htmlspecialchars($product['NAME']) ?></div> <div class="megamenu__sale-prices"> <span class="old"><?= number_format($product['price'], 0, '', ' ') ?> ₴</span> <span class="new"><?= number_format($product['sale_price'], 0, '', ' ') ?> ₴</span> <span class="badge">-<?= $product['DISCOUNT_PCT'] ?>%</span> </div> </div> </a> <?php endforeach ?> </div> <?php endif ?> <!-- Банер --> <?php $banners = $menuBanners[$category['ID']] ?? [] ?> <?php if (!empty($banners[0]) && $banners[0]['UF_IMAGE_SRC']): ?> <div class="megamenu__banner"> <a href="<?= htmlspecialchars($banners[0]['UF_LINK']) ?>"> <img src="<?= $banners[0]['UF_IMAGE_SRC'] ?>" alt="Мегаменю з акційним банером" width="280" height="180" loading="lazy"> <?php if ($banners[0]['UF_TITLE']): ?> <div class="megamenu__banner-title"> <?= htmlspecialchars($banners[0]['UF_TITLE']) ?> </div> <?php endif ?> </a> </div> <?php endif ?> </div> </div> 

Зверніть увагу: в зображення банера додано alt-текст із заголовком, що покращує SEO та доступність. Наприклад, alt='Мегаменю з акційним банером' містить ключове слово 'мегаменю'.

CSS grid для трьохколонкового layout:

.megamenu__inner--with-promo { display: grid; grid-template-columns: 220px 1fr 300px; min-height: 320px; } .megamenu__sales { padding: 1rem 1.5rem; border-right: 1px solid #eee; } .megamenu__sale-item { display: flex; gap: 0.75rem; padding: 0.625rem 0; border-bottom: 1px solid #f0f0f0; text-decoration: none; color: inherit; transition: background 0.1s; } .megamenu__sale-prices .old { text-decoration: line-through; color: #999; font-size: 0.75rem; } .megamenu__sale-prices .new { font-weight: 600; color: var(--color-sale); } .megamenu__banner { position: relative; overflow: hidden; } .megamenu__banner img { width: 100%; height: 100%; object-fit: cover; display: block; } .megamenu__banner-title { position: absolute; bottom: 0; left: 0; right: 0; padding: 1rem; background: linear-gradient(transparent, rgba(0,0,0,.6)); color: #fff; font-weight: 600; } 

Кешування та оновлення

Банери та знижки кешуються на 30 хвилин (акції змінюються частіше, ніж структура розділів). Для швидкодії використовується теговане кешування з ключами за розділами, що дозволяє інвалідувати лише частину кешу при зміні одного банера. SQL-запити оптимізовані з використанням індексів на UF_SECTION_ID та UF_ACTIVE. Інвалідація — при збереженні HL-блоку банерів:

AddEventHandler('main', 'OnAfterHLBlockElementAdd', '\Local\Menu\MegaMenuCache::clear'); AddEventHandler('main', 'OnAfterHLBlockElementUpdate', '\Local\Menu\MegaMenuCache::clear'); 

Як налаштувати мегаменю: покрокова інструкція

  1. Створіть HL-блок MegaMenuBanner з полями з опису вище.
  2. Додайте репозиторій MegaMenuBannerRepository у проект.
  3. У шаблоні меню виведіть банери та знижкові товари згідно з шаблоном.
  4. Налаштуйте CSS grid для трьохколонкового layout.
  5. Підключіть кешування з інвалідацією по подіях HL-блоку.
  6. Перевірте навантаження: наше рішення завантажується менш ніж за 0.3 с.

Чи можна оновлювати банери без розробника?

Так, менеджер може змінювати банери через адміністративну панель HL-блоку, що забезпечує швидке оновлення акцій без залучення розробника.

Чому мегаменю з банерами збільшує конверсію?

Стандартне меню показує лише посилання. Наше мегаменю в правій колонці виводить банер акції та картки товарів зі знижкою. Користувач бачить промо одразу, не залишаючи навігацію. За нашими даними, такий підхід збільшує клікабельність банерів на 40–60%, що в 1.5–2 рази вище за стандартне меню. Ефективність мегаменю з банерами в 2 рази вища за звичайне меню.

Характеристика Звичайне меню Мегаменю з банерами
Кількість промо-місць 0 1 банер + 4 товари
Управління контентом Ні Через HL-блок
Оновлення акцій Вимагає розробника Менеджер самостійно
Вплив на конверсію Ні Зростання до 30%

Типові помилки та строки реалізації

Помилки:

  • Ігнорування інвалідації кешу: без очищення кешу при зміні банерів користувачі бачать застарілі акції.
  • Відсутність alt-тексту у банерів: це погіршує SEO та доступність.
  • Неправильний SQL-запит для акцій: переконайтеся, що група цін «Акційна ціна» створена і ціни дійсно нижчі за базову.
  • Забагато знижкових товарів: ліміт 4 товари оптимальний для швидкості та сприйняття.

Строки:

Конфігурація Строк
Банери через HL-блок + виведення в меню 3–4 дні
+ знижкові товари з b_catalog_price +2 дні
+ ротація банерів, обмеження за датами +1–2 дні

Що входить у роботу

Ми надаємо повний комплект документації та коду:

  • HL-блок MegaMenuBanner з налаштуваннями полів і фільтрації за датами
  • PHP-репозиторій для вибірки банерів та знижкових товарів
  • Шаблон мегаменю з адаптивною версткою (CSS Grid)
  • Інтеграція з торговим каталогом — автоматичний підбір дисконтних товарів
  • Кешування з інвалідацією при змінах
  • Інструкція для менеджера з управління банерами
  • Надання доступу до HL-блоку та навчання менеджера
  • Підтримка після впровадження: 30 днів безкоштовних консультацій

Наша команда має 5+ років досвіду розробки на 1С-Бітрікс. Ми реалізували більше 30 проектів мегаменю з банерами для інтернет-магазинів. Ми гарантуємо коректну роботу меню та надаємо 30-денну гарантію на код. Всі рішення проходять навантажувальне тестування: меню має завантажуватися не більше ніж за 0.3 секунди. Якщо після впровадження виникають питання — ми на зв'язку.

Замовте розробку мегаменю з банерами та отримайте консультацію з інтеграції під ваш каталог. Зв'яжіться з нами для оцінки вашого проекту.