How to Set Up a Product Video Gallery in 1C-Bitrix (Multiple Videos)

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Showing 1 of 1All 1626 services
How to Set Up a Product Video Gallery in 1C-Bitrix (Multiple Videos)
Simple
~1 day
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1360
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    948
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    832
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1075

How to Set Up a Product Video Gallery in 1C-Bitrix

An online store with 5,000 products and 12 video reviews per product — a single VIDEO_URL property is no longer enough; a full video library is required. Our team specializes in such solutions and develops them individually for each project's needs.

We implement a complete video gallery: switching between clips, preview thumbnails, synchronization with the photo gallery, support for HTML5 video and external services (YouTube, Vimeo, Rutube). Out-of-the-box Bitrix has no ready-made component for this, so the solution is built from the infoblock infrastructure and a custom template with optimized content loading. We have applied this approach for 15 online stores, reducing page load time by 40% through proper caching, and now we'll walk through the key architectural points. The cost depends on integration complexity and content volume — typical projects start from $500.

Multiple Videos on the Product Card

For storing multiple videos, we use a multiple property of type S (string) with the flag MULTIPLE = Y. The symbolic code is VIDEO_GALLERY. In the b_iblock_element_property table, each video is stored as a separate row with the same IBLOCK_ELEMENT_ID. Retrieve all values:

$videos = [];
$res = \Bitrix\Iblock\ElementPropertyTable::getList([
    'filter' => [
        'IBLOCK_ELEMENT_ID' => $elementId,
        'CODE'              => 'VIDEO_GALLERY',
    ],
    'select' => ['VALUE', 'DESCRIPTION'],
    'order'  => ['ID' => 'ASC'],
]);
while ($row = $res->fetch()) {
    $videos[] = $row;
}

The DESCRIPTION field is used as the video caption — this is a standard field for multiple properties, editable directly in the element card.

Merging Video with Photo Gallery

Stores want a unified gallery: photos first, then videos. In the catalog.element component, photos come from $arResult['MORE_PHOTO'] — an array of image paths. Video thumbnails are appended to the end of the same slider container, but with a data-type="video" attribute. JavaScript handles the click: if data-type === 'video', it initializes an iframe; otherwise, it shows the image. This allows using a single Swiper or Splide instance for both content types without duplicating logic.

Gallery Structure: Thumbnails + Main Player

The classic pattern is a large player slot on top and a row of thumbnails below. Clicking a thumbnail replaces the main slot content. The preview is taken from the thumbnail API of the respective hosting.

Template for the catalog.element component, gallery block:

<?php
$videoItems = [];
foreach ($arResult['PROPERTIES']['VIDEO_GALLERY']['VALUE'] as $i => $url) {
    preg_match('/(?:v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/', $url, $m);
    if (!empty($m[1])) {
        $videoItems[] = [
            'id'    => $m[1],
            'desc'  => $arResult['PROPERTIES']['VIDEO_GALLERY']['DESCRIPTION'][$i] ?? '',
            'thumb' => "https://img.youtube.com/vi/{$m[1]}/mqdefault.jpg",
        ];
    }
}
?>
<?php if ($videoItems): ?>
<div class="video-gallery" id="videoGallery">
    <div class="video-gallery__main" data-active="<?= $videoItems[0]['id'] ?>">
        <!-- iframe появится по клику через JS -->
    </div>
    <div class="video-gallery__thumbs">
        <?php foreach ($videoItems as $idx => $v): ?>
        <button class="video-gallery__thumb <?= $idx === 0 ? 'is-active' : '' ?>"
                data-video-id="<?= $v['id'] ?>"
                aria-label="<?= htmlspecialcharsEx($v['desc']) ?>">
            <img src="<?= $v['thumb'] ?>" loading="lazy" alt="">
        </button>
        <?php endforeach; ?>
    </div>
</div>
<?php endif; ?>

Caching and Access Rights

The multiple property is read within a cacheable block. A problem occurs when editing: a manager adds a video in the admin panel, but the cache is not cleared. It is mandatory to register a tag:

$this->SetResultCacheKeys(['PROPERTIES']);
$GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . CATALOG_IBLOCK_ID);

The OnAfterIBlockElementUpdate event in the iblock module will reset the tag when an element is saved.

Working with Vimeo

If some videos are on Vimeo, the thumbnail is fetched via the API https://vimeo.com/api/v2/video/{id}.json. This is a synchronous request — it cannot be done in the template. The correct approach is a background Bitrix agent (CAgent) that scans gallery properties, requests thumbnails, and saves the URL to a separate multiple property VIDEO_THUMB. The template then reads ready-to-use previews without external requests during rendering. The agent runs once per minute and processes products that have the VIDEO_GALLERY property. It checks if a thumbnail already exists in VIDEO_THUMB; if not, it makes a request to the Vimeo API and saves the URL. After processing, the agent returns an empty string to remove itself if all thumbnails are obtained. According to Bitrix documentation, agents are the recommended way to handle async tasks.

Platform Preview URL Autonomy
YouTube https://img.youtube.com/vi/{id}/mqdefault.jpg Constant URL, no requests
Vimeo Via API https://vimeo.com/api/v2/video/{id}.json Requires an agent for preloading

YouTube is more convenient in this regard — previews are always available. We recommend using YouTube as the primary hosting and Vimeo for confidential videos.

Storage Choice: Property or HL-block

Criteria Multiple Property HL-block
Ease of implementation Configured via admin panel Requires creating a table
Performance Direct select from b_iblock_element_property Additional query with JOIN
Sorting support By ID (order of addition) Any, can add a SORT field
Data volume Up to hundreds of records per element Thousands of records without issues

For most stores, a multiple property is sufficient. An HL-block is justified when there are many videos (more than 50 per product) or complex sorting is needed.

Our Work Process and Timeline

  1. Analysis — review the current infoblock structure, examine the photo storage type.
  2. Design — determine the set of properties, gallery template, integration method.
  3. Development — create the multiple property, template, agent for Vimeo (if needed), slider refinement.
  4. Testing — check on 10 products with different numbers of videos, caching, mobile version.
  5. Deployment — migrate to the live server, clear cache, train managers.

Timeline: from 3 to 7 working days depending on the complexity of integration with the existing gallery.

What’s Included in the Service

  • Setup of the multiple property VIDEO_GALLERY and the description field.
  • Development of a gallery template with thumbnails and a main player.
  • Integration with the existing photo gallery (Swiper/Splide).
  • Creation of an agent for fetching Vimeo thumbnails (optional).
  • Configuration of tagged caching and the reset event.
  • Documentation — data schema description and instructions for content managers.
  • Training — a 30-minute webinar for editors.
  • 1 year of support after project completion.

Contact us for a project evaluation — we will prepare a cost estimate and timeline within 1 business day. Order a video gallery setup, and your products will receive professional video reviews without performance degradation.

Why Our Approach Works

We provide a comprehensive solution, not isolated fixes. Each project includes documentation, testing, and team training. Our clients appreciate that we not only perform the work but also explain each step, enabling your team to maintain the system independently in the future. For our part, we guarantee support for one year after project completion.

Next Steps

If your company is facing the described issue, contact us for a free consultation. We will analyze your system and offer the optimal solution. The project cost depends on complexity and scope, but for typical solutions we always provide an accurate estimate based on a preliminary requirements analysis.

What Professional 1C-Bitrix Installation Includes

We start by checking innodb_buffer_pool_size. The default MySQL value (128 MB) is a death sentence for an online store with a catalog of 10,000+ items. We set 70–80% of available RAM on a dedicated server, 50% on VPS. This single setting speeds up the site by 2–3 times compared to the default. We'll assess your project in one day — get a consultation. Contact us to order turnkey installation with performance guarantee.

How to Choose Hosting and Edition for 1C-Bitrix Installation?

BitrixVM is a virtual machine with a pre-installed stack: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push server. For VPS — the best start. Everything is already configured for Bitrix, including OPcache, log rotation, and firewall. Management via web panel on port 8890. Bitrix documentation recommends starting with BitrixVM for predictable performance.

VPS/VDS is the sweet spot. Minimum configuration for a medium online store: 2 vCPU, 4 GB RAM, SSD. Optimal: 4 vCPU, 8 GB RAM. OS: Ubuntu 22.04 or Debian 12. If not BitrixVM, we configure the stack manually for the task. Virtual hosting — only for business cards and landing pages. Requirements: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 MB RAM, .htaccess. 1C-Bitrix hosting partners guarantee compatibility. Dedicated server — for highload. Typical architecture: web server separate, database separate, Redis/Memcached separate. For Enterprise edition — web cluster with load balancer. Cloud (Yandex Cloud, VK Cloud, Selectel) — when load spikes: sales, seasonal peaks. Autoscaling via Managed Kubernetes or simple VM vertical scaling.

Choosing the edition is equally important. A common mistake: choosing "Small Business" for a store that grows to B2B with wholesale prices and three warehouses in six months. Upgrading to "Business" — pay the difference, data is not lost, but it's better to plan ahead. Our specialists select the edition for current tasks and with room for growth. For example, the "Business" license (about 35,000 RUB) pays off through multi-warehouse and 1C exchange, while the wrong choice can lead to a loss of up to 30,000 RUB monthly on excess resources.

Edition For Whom Key Limitation
Start Business cards, landing pages No infoblocks 2.0, no trade catalog
Standard Corporate sites No e-commerce module
Small Business Small stores 1 price type, 1 warehouse, no 1C exchange
Business Medium stores, B2B Multi-warehouse, multicurrency, CommerceML
Enterprise Highload, cluster Web cluster, CDN, multisite

What Server Settings Are Critical for 1C-Bitrix?

Web Server and PHP

nginx as reverse proxy + Apache (mod_php) or nginx + PHP-FPM directly. The second option saves memory — Apache is not needed. But some Bitrix modules use .htaccess, so for compatibility we sometimes keep Apache. nginx configuration: fastcgi_read_timeout 300 — for long operations (1C import), client_max_body_size 1024m — large file uploads. Block access to .settings.php, .settings_extra.php, bitrix/.settings.php — they contain database passwords. Rewrite rules from urlrewrite.php — Bitrix generates them, but with nginx + PHP-FPM they need to be duplicated. PHP 8.0–8.2 with extensions: mbstring, curl, gd, xml, json, opcache, redis/memcached. Key php.ini settings: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.

Database and Caching

MySQL/MariaDB. Key my.cnf parameters: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — number of CPU cores. Encoding utf8mb4 mandatory, otherwise emoji and special characters break. Redis is preferable to Memcached for Bitrix — supports persistent connections and is more reliable. In production, Redis handles concurrent writes three times faster than Memcached under typical load. Configure in .settings_extra.php:

'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]
Example Redis configuration for Bitrix
sudo apt install redis-server
sudo systemctl enable redis

Add to .settings_extra.php as above.

SSL, Email, and Cron

SSL — Let's Encrypt via certbot in 90% of cases. Redirect HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. In Bitrix, switch to HTTPS in the main module settings. Email: abandon mail() — connect SMTP (Yandex.Mail for domain, Mail.ru for Business). Be sure to configure SPF, DKIM, DMARC. Without SPF, emails go to spam. Test deliverability via mail-tester.com — score 9+/10. Cron: Bitrix agents switch to system cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. Schedule 1C exchange (15–60 min), search reindex, backups (mysqldump + rsync, rotation 7+4), temporary file cleanup.

Security and Administration

File system: owner www-data, directories 755, files 644, upload 775. nginx blocks access to configuration files. Enable Bitrix Proactive Protection — WAF, activity control (block after 5 failed attempts), kernel integrity check. For admin panel: two-factor authentication via Google Authenticator or OTP, restrict access by IP via nginx for paranoid.

How Long Does 1C-Bitrix Installation and Configuration Take?

Task Timeline
Installation on virtual hosting 2–4 hours
Installation on VPS with stack configuration 1–2 days
Installation on dedicated with architecture design 2–5 days
SSL + email + cron + security 1–2 days
Backup and monitoring setup 0.5–1 day

Post-Installation Checklist

  1. Performance Monitor (/bitrix/admin/perfmon_panel.php) — aim for 30+ points. Below 20 means serious configuration issues.
  2. System Check — automatic check of all parameters. Red items must be fixed, yellow — case by case.
  3. Security Scanner — check for typical vulnerabilities.
  4. PageSpeed Insights — TTFB < 200ms on VPS, LCP < 2.5s.
  5. Test 1C exchange — if integration is planned, verify CommerceML exchange before launch.

Additionally, check software versions, caching settings, cron operation, SSL certificate, SPF/DKIM/DMARC, access rights, delete default users and pages. For projects with 54-FZ, ensure fiscalization is configured via OFD provider.

Deliverables

  • Fully configured server for 1C-Bitrix with MySQL, PHP, nginx optimization.
  • Installed and activated license of the required edition.
  • SSL certificate, email settings, cron and backups.
  • Documentation: all configuration parameters, access credentials, cron tasks.
  • Content manager training: how to log into admin panel, add products, upload images.
  • Post-installation support for 30 days — consultations on settings.

Why Trust Professionals with Installation?

Incorrect installation means lost time and money. We've seen projects where a store on "Start" couldn't handle 50 visitors because innodb_buffer_pool_size wasn't configured. After migrating to VPS with correct configuration, the site "flew". Incorrect configuration can cost 30,000 RUB monthly due to excessive resource consumption. You get a ready-made architecture that scales. Order turnkey 1C-Bitrix installation — get a reliable platform for business growth. Contact us for a free consultation: we'll calculate the cost and time for your project. Over 7 years of experience, 120+ Bitrix projects implemented, including highload stores with million-item catalogs. Get in touch — we'll help configure Bitrix for your project.