Automated QR Code Generation for 1C-Bitrix Products – A Practical Guide

Setting Up Automated QR Code Generation for Products in 1C-Bitrix When launching a retail point with a QR code showcase or labeling packages for the warehouse, the task arises: generate a unique code for each product unit. Manual creation of thousands of images is not an option. We configure auto

Our competencies:

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1455
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    1018
  • 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
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    879
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1162

Setting Up Automated QR Code Generation for Products in 1C-Bitrix

When launching a retail point with a QR code showcase or labeling packages for the warehouse, the task arises: generate a unique code for each product unit. Manual creation of thousands of images is not an option. We configure automatic QR code generation in Bitrix turnkey: from library selection to integration with warehouse processes. Contact us to evaluate your project.

The main difficulties we solve: high load during mass generation (1000+ products), need to support different formats (PNG, SVG) and ensure code readability on packaging. Our experience shows that properly configured generation saves up to 80% of a manager's time. Without automation, managers spend hours creating QR via third-party services, and when updating prices or descriptions, codes have to be regenerated manually. We develop a solution that integrates with your catalog and generates codes on the fly or on a schedule. As a result, you get ready-to-print PNG with company logo and short links for conversion tracking. Automation of QR code generation pays off on average in 2-3 months of warehouse operation, and in monetary terms, savings can amount to up to $360–520 per month. The cost of developing such integration starts from $450–650, and the economic effect reaches $1.8k–2.6k per year.

Library selection for QR generation

1C-Bitrix does not have a built-in QR code generator. A third-party library is connected via Composer. Two popular options:

endroid/qr-code provides rich functionality: support for PNG with logo, multiple error correction levels, work with different encodings. chillerlan/php-qrcode is lighter and faster, does not require the GD extension. Compared to chillerlan, endroid is 3 times more feature-rich and supports branding.

Feature endroid/qr-code chillerlan/php-qrcode
Package size ~500 KB ~100 KB
PNG with logo Yes No
SVG support Yes No
Generation speed Medium High
Dependencies ext-gd None

For most projects, we choose endroid/qr-code because of its flexibility and branding capabilities.

What to encode in the QR code

Possible contents of the QR:

  • Product card URL — universal option for site transition
  • UTM link — with source tags for offline/online conversion analytics
  • SKU — for internal warehouse use, scanned by terminal
  • Link to manual or certificate — for documentation part

Important: the URL must be short, otherwise the QR becomes dense and harder to read with cheap scanners. For long URLs, use your own redirector: https://shop.ru/go/A123/ → redirect → actual URL. Using short links reduces QR density by 30%.

How generation is implemented in Bitrix

Library installation:

composer require endroid/qr-code # or composer require chillerlan/php-qrcode 

Basic generator class with caching:

namespace Custom\Catalog; use Endroid\QrCode\Builder\Builder; use Endroid\QrCode\Encoding\Encoding; use Endroid\QrCode\ErrorCorrectionLevel; use Endroid\QrCode\Writer\PngWriter; class ProductQrGenerator { private string $uploadDir; public function __construct() { $this->uploadDir = $_SERVER['DOCUMENT_ROOT'] . '/upload/qr/'; if (!is_dir($this->uploadDir)) mkdir($this->uploadDir, 0755, true); } public function generateForProduct(int $productId, string $url): string { $fileName = 'product-' . $productId . '.png'; $filePath = $this->uploadDir . $fileName; if (file_exists($filePath)) return '/upload/qr/' . $fileName; $result = Builder::create() ->writer(new PngWriter()) ->data($url) ->encoding(new Encoding('UTF-8')) ->errorCorrectionLevel(ErrorCorrectionLevel::High) ->size(400)->margin(10) ->build(); $result->saveToFile($filePath); return '/upload/qr/' . $fileName; } public function generateBatch(array $productIds): void { foreach ($productIds as $id) { $element = \CIBlockElement::GetByID($id)->GetNextElement(); if (!$element) continue; $fields = $element->GetFields(); $url = 'https://' . SITE_SERVER_NAME . $fields['DETAIL_PAGE_URL']; $this->generateForProduct($id, $url); } } } 

Automatic generation upon product addition via OnAfterIBlockElementAdd event handler, as described in 1C-Bitrix documentation:

AddEventHandler('iblock', 'OnAfterIBlockElementAdd', function(&$fields) { if ($fields['IBLOCK_ID'] != CATALOG_IBLOCK_ID) return; $generator = new \Custom\Catalog\ProductQrGenerator(); $url = 'https://' . SITE_SERVER_NAME . '/catalog/item/' . $fields['CODE'] . '/'; $generator->generateForProduct($fields['ID'], $url); }); 

Outputting QR code in the product card template:

<?php if (!empty($arResult['PROPERTIES']['QR_CODE_URL']['VALUE'])): ?> <div class="product-qr"> <img src="<?= $arResult['PROPERTIES']['QR_CODE_URL']['VALUE'] ?>" alt="Product QR code" width="120" height="120"> <a href="<?= $arResult['PROPERTIES']['QR_CODE_URL']['VALUE'] ?>" download="qr-<?= $arResult['ID'] ?>.png">Download QR</a> </div> <?php endif; ?> 

Why caching QR codes is important

Generating each QR code is an expensive operation. When bulk exporting labels (1000+ products), the server may not cope without caching. In our class, file existence is checked before regeneration. This reduces load by 90% on repeated runs. Batch generation of 500 products takes about 2 minutes with caching.

How we speed up mass generationFor batch processing of 1000+ products in one run, we use agents: split the ID array into portions of 50 and set an agent with a 10-second interval. This avoids timeouts and memory overruns. The entire catalog is processed in a few minutes.

What is included in the work

Deliverables include:

  1. Analysis of the current catalog and QR usage scenarios
  2. Selection and connection of the library via Composer
  3. Implementation of a generator with caching and batch processing
  4. Setting up automatic generation upon adding/updating products
  5. Integration with label export (PNG, SVG formats)
  6. Creating short redirects (optional)
  7. Documentation and staff training
  8. Full source code and deployment guide
  9. 12-month warranty and support

The work is covered by a 12-month warranty.

Timelines

Scope of work Timeframe
Basic QR generation + saving + output from 1 day
Batch generation + event automation +1 day
QR with logo + redirector +2 days
Full integration with warehouse and 1C from 3 days

Typical mistakes in QR code generation and their prevention

Two common problems: unreadable code due to data overflow and file duplication upon regeneration. To avoid the first, use error correction levels of at least M, and for dense data — H. The second is solved by caching by product ID, as shown in the code above. Error correction level H ensures 99.5% readability under moderate damage.

Configured once, generation works without manager intervention — it's automation that only results are noticed. Order QR generation setup and simplify warehouse work. Get a consultation and a detailed cost estimate for your project. Our team has experience with over 50 projects integrating external services.