ПУБЛИЧНАЯ СТРАНИЦА ЗАКАЗА
Покупатель открывает заказ по ссылке с индивидуальным ключом без входа в личный кабинет. На странице — этап пути, последние события, ожидаемая дата и трек-номер со ссылкой на сайт перевозчика. Состав заказа включён по умолчанию; показ суммы и адреса доставки магазин разрешает отдельно.
ЭТАПЫ И СОБЫТИЯ
Шкала показывает пять этапов: принят, собираем, в пути, ждёт в пункте выдачи, получен. Отмена отображается отдельно. Соответствие статусов магазина этапам задаётся в настройках. Решение перечитывает заказ при сохранении и смене статуса; само статусы и отгрузки заказа не изменяет.
Менеджер может добавить событие с пояснением. Публичные записи показываются покупателю, внутренние заголовки и пояснения остаются в административной карточке. Добавление события меняет этап трекинга и ожидаемую дату; последующее обновление из заказа снова сверяет этап со статусом магазина. На странице выводятся последние 200 событий в хронологическом порядке.
ТРЕК-НОМЕР И ПЕРЕВОЗЧИК
Автоматический трек берётся из отгрузки или настроенного свойства заказа. Перевозчик определяется по названию текущей доставки. Поддерживаются шаблоны ссылок СДЭК, Почты России, Boxberry, DPD, PickPoint и 5Post; можно задать собственный шаблон. Трек и перевозчик становятся ручными только при изменении соответствующего значения менеджером в карточке. Сохранение без изменений оставляет автоматический режим. Ручные значения не заменяются при обновлении заказа; очистка поля возвращает автоматический режим при следующем обновлении. Автоматический трек следует за заказом, включая удаление номера. Для старых ссылок с неизвестным источником трек сохраняется при пустом номере заказа до появления номера в заказе.
ПОИСК БЕЗ ССЫЛКИ
Форма ищет заказ по номеру и телефону или почте. Контакт проверяется по данным заказа, а при отсутствии контактных свойств — по профилю покупателя. Число попыток с одного адреса ограничивается за 15 минут. После подтверждения контакта истёкшая ссылка получает новый ключ; старый ключ остаётся недействительным.
ОТЧЁТ ДЛЯ МАГАЗИНА
Отчёт показывает число ссылок и просмотров, этапы заказов, результаты поиска, наиболее просматриваемые страницы и заказы без движения дольше настроенного срока. Подборки заказов учитывают права сотрудника на их просмотр. Общая статистика доступна сотрудникам с полным доступом к магазину (sale W). Статистика строится по обращениям к странице и форме поиска.
СРОКИ И ДОСТУП
Срок действия ссылки задаётся в настройках; ноль означает бессрочную ссылку. Ключ можно заменить в карточке заказа. Обладатель действующей ссылки видит разрешённые магазином данные, поэтому ссылку следует передавать покупателю как доступ к его заказу.
События и попытки поиска хранятся по общему сроку из настроек: по умолчанию 365 дней, минимум 30 дней. Последнее событие незавершённого заказа сохраняется и после этого срока. В журнале попыток вместо адреса посетителя записывается хэш с солью сайта.
Решение использует сведения магазина и ссылки на сайты перевозчиков; самостоятельно статусы посылки у перевозчика не запрашивает. Поддерживаются MySQL/MariaDB и PostgreSQL. Требуется модуль «Интернет-магазин» (sale).
УСТАНОВКА И СТРАНИЦА
1. Установите решение через Marketplace → Установленные решения. Требуются PHP 8.2 или новее, главный модуль (main) 20.0.0 или новее и установленный модуль «Интернет-магазин» (sale).
2. Создайте страницу, например /track/index.php, и подключите компонент:
```php
<?php
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php';
$APPLICATION->IncludeComponent('ozhogov:tracking.page', '', [
'TOKEN_PARAM' => 'id',
'SHOW_FORM' => 'Y',
'SET_TITLE' => 'Y',
]);
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php';
```
3. В настройках модуля укажите адрес этой страницы: /track/ или /track/index.php. Дополнительные параметры query и фрагмент допустимы; ключ заказа добавляется параметром id. При другом TOKEN_PARAM компонент принимает и настроенное имя, и стандартный id; непустое значение настроенного параметра имеет приоритет.
4. Проверьте срок жизни ссылки, показ состава, суммы и адреса, права групп сотрудников и срок хранения событий и попыток поиска. Для работы с подборками заказов нужны право чтения tracking R и доступ к нужным заказам sale не ниже U; уровень P не поддерживается; для общей статистики — полный доступ sale W. Действия в карточке требуют права записи tracking и права изменения заказа в sale.
ПОЛУЧЕНИЕ ССЫЛКИ
Ссылка видна в разделе Магазин → Трекинг заказов → Ссылки. Для своего кода используйте API после подключения ядра Bitrix:
```php
$orderId = 123; // Фактический ID заказа в базе, не ACCOUNT_NUMBER.
if (\Bitrix\Main\Loader::includeModule('ozhogov.tracking')) {
$url = '';
$link = \Ozhogov\Tracking\Tracking::linkFor($orderId);
if ($link !== null && !\Ozhogov\Tracking\Core\Token::isExpired((int)$link['EXPIRES_AT'])) {
$url = \Ozhogov\Tracking\Tracking::url((string)$link['TOKEN'], 's1');
}
// Передайте непустой $url в свой сценарий уведомления покупателя.
}
```
Замените 123 на ID нужного заказа, а s1 — на идентификатор его сайта. linkFor находит или создаёт запись ссылки, но не продлевает уже истёкший ключ. Для истёкшей ссылки покупатель может воспользоваться формой поиска с проверкой контакта; сотрудник — сменить ключ в карточке. Модуль не рассылает письма и не подставляет ссылку в почтовые шаблоны автоматически: отправку и шаблон настраивает магазин.
ОБНОВЛЕНИЕ МОДУЛЯ
При обновлении через Marketplace updater добавляет недостающие поля источника трека и перевозчика, затем переносит компоненты, JS и административные обёртки. Для ручного обновления сначала замените файлы в /bitrix/modules/ozhogov.tracking/, затем в новом служебном запросе с подключённым ядром Bitrix выполните:
```php
if (\Bitrix\Main\Loader::includeModule('ozhogov.tracking')) {
\Ozhogov\Tracking\Schema::ensure();
}
```
После успешного обновления схемы скопируйте содержимое install/components/ в /bitrix/components/, install/js/ в /bitrix/js/, файлы install/admin/ в /bitrix/admin/. Повторный Schema::ensure() не добавляет уже существующие колонки. На старых ссылках источник трека неизвестен; на новых значения по умолчанию автоматические.
ЭТАПЫ И СРОК ДОСТАВКИ
1. На вкладке «Этапы» задайте строки «статус:этап», например N:A, P:P, S:S, F:D. Этапы: A — принят, P — сборка, S — в пути, R — ждёт в пункте выдачи, D — получен, C — отменён.
2. Для статуса без соответствия используется этап «принят», а при факте отгрузки — «в пути». Отмена заказа имеет приоритет над соответствием статуса.
3. Настройка срока доставки задаёт ожидаемую дату от последнего события. Это расчёт модуля, а не подтверждённое обещание перевозчика.
ТРЕК И ФОРМА ПОИСКА
Укажите код свойства для трек-номера, если номер хранится в свойстве заказа. Проверьте автоматическое определение перевозчика или сохраните трек и перевозчика вручную в карточке. Для своего перевозчика задайте HTTP(S)-шаблон с меткой #TRACK#.
Компонент ozhogov:tracking.form можно добавить в шапку, подвал или отдельную страницу. Покупатель вводит номер заказа и телефон либо почту. Отключение поиска в настройках закрывает его и для отдельной формы, и для формы на странице трекинга.
ПРОВЕРКА ПОСЛЕ НАСТРОЙКИ
Откройте ссылку тестового заказа, проверьте видимые данные, трек и сайт перевозчика, смену этапа после изменения статуса, поиск с правильным и неправильным контактом. Ссылки создаются для новых заказов при сохранении; для прежних — при обращении через API, создании ссылки кнопкой в административной карточке или подтверждённом поиске.
При удалении модуля установщик предлагает сохранить данные. После удаления компонентов публичная страница перестаёт работать, даже если данные оставлены в базе.
Техническая поддержка решения оказывается разработчиком в течение срока действия лицензии.
— Электронная почта:
nm.ozhogov@ya.ru— Время ответа: в рабочие дни, в течение 48 часов с момента обращения.
— Часовой пояс: UTC+3 (Москва).
Чтобы вопрос решился с первого письма, приложите: название и версию решения, редакцию 1С-Битрикс и версию главного модуля, версии PHP и базы данных, адрес страницы, на которой воспроизводится проблема, последовательность действий для её повторения и снимок экрана с сообщением об ошибке. Если ошибка попала в журнал событий сайта, приложите запись из него.
В поддержку можно обращаться с вопросами по установке, настройке и обновлению решения, по совместимости с другими решениями и по ошибкам в его работе. Доработка решения под требования конкретного проекта в поддержку не входит и обсуждается отдельно.