Настройка QR-кодов для быстрого перехода к товару 1С-Битрикс
Складской работник сканирует QR-код на коробке и попадает на карточку товара в каталоге. Маркетолог печатает QR на ценнике в офлайн-магазине — покупатель сканирует и видит отзывы, характеристики, кнопку «Купить». Задача технически простая, но детали реализации определяют, будет ли система работать стабильно при тысячах товаров.
Формирование URL для QR
QR-код — это закодированный URL. Вопрос в том, какой URL кодировать.
Прямая ссылка на товар (https://shop.by/catalog/product/artikul-123/) — работает, пока не изменится ЧПУ-адрес товара. Переименовали раздел каталога — все напечатанные QR-коды стали битыми.
Ссылка через редирект по ID (https://shop.by/qr/1234/) — надёжнее. Создаётся PHP-страница или обработчик в urlrewrite.php, который по ID товара получает актуальный URL через CIBlockElement::GetByID() и делает 301-редирект. QR-код не зависит от структуры каталога.
Ссылка по XML_ID или артикулу (https://shop.by/qr/?sku=ART-0042) — лучший вариант для интеграции с 1С, где артикул — основной идентификатор. Обработчик ищет элемент по свойству ARTICLE и редиректит.
Генерация QR-кодов
На сервере QR генерируется PHP-библиотекой. Два рабочих варианта:
- chillerlan/php-qrcode — компактная, без зависимостей, генерирует SVG и PNG.
- endroid/qr-code — больше возможностей (логотип внутри QR, цвета), но тяжелее.
Установка через Composer: composer require chillerlan/php-qrcode. Генерация в компоненте catalog.element: в result_modifier.php добавляется код, создающий SVG-строку QR для текущего товара. SVG встраивается в шаблон через $arResult['QR_CODE_SVG'].
Для массовой генерации (печать каталога, этикетки) создайте отдельную страницу /admin/qr-export/, которая генерирует PDF с QR-кодами для выбранных товаров. Библиотека TCPDF или Dompdf справляется с задачей.
Кэширование и производительность
Генерация одного QR занимает 5–15 мс. На странице каталога с 30 товарами — до 450 мс только на QR. Решение: генерировать QR один раз и сохранять как файл в /upload/qr/{ELEMENT_ID}.svg. При изменении URL товара (событие OnAfterIBlockElementUpdate) — удалять файл, чтобы при следующем запросе сгенерировался новый.
UTM-метки и аналитика
Добавляйте в URL внутри QR UTM-параметры: ?utm_source=qr&utm_medium=offline&utm_campaign=price_tag. Это позволит в Яндекс.Метрике и Google Analytics отследить, сколько переходов дают офлайн-носители. Параметры не влияют на редирект — обработчик их просто прокидывает.







