Налаштування QR-кодів для швидкого переходу до товару 1С-Bitrix
Складський робітник сканує 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 відстежити, скільки переходів дають офлайн-носії. Параметри не впливають на редирект — обробник їх просто прокидає.







