«Подбор по совместимости» добавляет на сайт отдельный подбор товаров и блок совместимости в карточке товара. Покупатель выбирает, например, марку, модель и поколение автомобиля или производителя и модель принтера. Магазин настраивает от одного до четырёх уровней дерева и их названия, при необходимости включает выбор года выпуска.
Подбор показывает товары по связям, которые сотрудник завёл или загрузил. Решение не содержит собственной базы автомобилей или техники и не подтверждает физическую совместимость деталей: достоверность данных проверяет магазин. Оно не меняет заказы и не фильтрует штатный каталог автоматически; для вывода используются компоненты решения, которые нужно разместить на сайте.
ЧЕТЫРЕ ВИДА СОВМЕСТИМОСТИ
E — подходит точно; A — аналог; M — подходит с доработкой или оговоркой; N — не подходит. Связи можно задавать на разных уровнях дерева. Запрет на выбранном узле или его предке исключает товар для этого выбора. Годы связи ограничивают применимость; если они не заданы, используются годы узла. Примечание позволяет указать, например, необходимость переходника.
В карточке товара компонент выводит список применимости и ответ для выбранной покупателем модели. При включённом запоминании выбор хранится в cookie браузера; доступны недавние модели. Выбор можно передать ссылкой на страницу подбора.
ЗАГРУЗКА СВЯЗЕЙ ИЗ CSV
CSV распознаётся по заголовкам: товар определяется по ID или артикулу, модель — по пути кодов. Поддерживаются UTF-8 и Windows-1251, разделители «;», запятая и табуляция. Многострочное примечание сохраняется, если поле заключено в кавычки. Предел файла — 8 MiB, обработки — 50 000 записей.
Недостающие узлы создаются в пределах настроенной глубины. Повторная загрузка обновляет связи. Режим замены удаляет прежние связи только товаров, упомянутых в обрабатываемых строках, а не всего каталога. После загрузки следует проверить число добавленных, обновлённых и пропущенных строк и сообщения об ошибках.
ОТЧЁТ ПО СПРОСУ
Журнал сохраняет выполненные подборы, число найденных товаров и год, если он указан. Повторные запросы посетителя и частые запросы одной модели ограничиваются, поэтому журнал не является счётчиком каждого просмотра. Отчёт показывает популярные модели, запросы с пустым результатом, спрос по дням и ветки без связей. Агент удаляет старые записи по сроку хранения из настроек и убирает связи удалённых товаров.
ТРЕБОВАНИЯ
Главный модуль main версии 20.0.0 или новее, модуль iblock («Информационные блоки»), PHP 8.2 или новее. Поддерживаются MySQL и PostgreSQL в конфигурации, совместимой с установленной версией 1С-Битрикс. Данные и настройки хранятся на сайте.
1. Проверьте требования: main 20.0.0+, установленный iblock, PHP 8.2+. Сделайте резервную копию сайта и базы. Установите ozhogov.compat через раздел установленных решений Маркетплейса.
2. Установщик создаёт таблицы, копирует компоненты, скрипты и административные страницы, регистрирует обработчики событий и агент. Публичную страницу подбора он не создаёт: добавьте её самостоятельно.
3. В настройках модуля выберите инфоблок товаров, при необходимости раздел каталога и свойство артикула (например, CML2_ARTICLE). Задайте от одного до четырёх названий уровней, включите нужные параметры выбора года, запоминания модели, журнала и срока хранения.
4. Назначьте сотрудникам права на модуль: R — чтение, W — изменение. Публичный список товаров также учитывает права чтения элементов каталога, активность и сроки показа.
5. В разделе «Магазин → Подбор по совместимости» заведите дерево и связи товаров либо загрузите CSV. При создании узла не превышайте настроенное число уровней. Скрытие родителя скрывает его ветку из публичного выбора.
КОМПОНЕНТЫ НА САЙТЕ
На отдельной публичной странице после подключения штатного header.php разместите:
<?php
$APPLICATION->IncludeComponent("ozhogov:compat.selector", "", [
"SHOW_PRODUCTS" => "Y",
"COUNT" => "24",
"SHOW_RECENT" => "Y",
"COMPACT" => "N",
"SET_TITLE" => "Y",
]);
?>
В шаблоне детальной карточки товара используйте фактический ID элемента из результата компонента каталога:
<?php
$APPLICATION->IncludeComponent("ozhogov:compat.product", "", [
"PRODUCT_ID" => (int)$arResult["ID"],
"SHOW_LIST" => "Y",
"SHOW_CHECK" => "Y",
]);
?>
Не подставляйте фиксированный демонстрационный ID для всех карточек. Если шаблон использует другое имя переменной результата, передайте из него ID текущего товара.
ЗАГРУЗКА CSV
Откройте «Загрузка файлом». Пример файла:
product_id;model;fit;years;note
123;toyota/camry/xv70;M;2017-2024;"Нужен переходник"
Вместо 123 укажите ID существующего товара вашего каталога, а в model — путь кодов узлов. Можно использовать колонку article вместо product_id. Виды: E, A, M, N. Годы: диапазон, отдельный год, «с 2019», «до 2015». Кодировка — UTF-8 или Windows-1251; предел — 8 MiB и 50 000 записей. Переносы строки в note допустимы внутри кавычек.
Сначала проверьте небольшой файл. Для обычного добавления оставьте замену связей выключенной. Замена очищает прежние связи затронутого товара перед загрузкой его новых связей; остальные товары сохраняются. После загрузки проверьте счётчики результата, пропуски, ошибки и связи в карточке узла.
АГЕНТ И ОБНОВЛЕНИЕ
В списке агентов проверьте активный вызов \Ozhogov\Compat\Agent::cleanup(); с интервалом 86400 секунд. Он чистит журнал по сроку хранения из настроек, удаляет связи отсутствующих товаров и пересчитывает счётчики. Выполнение зависит от настройки агентов сайта на хитах или cron.
Обновляйте модуль штатным способом через Маркетплейс: updater.php переносит копии компонентов, скриптов и административных обёрток в общие каталоги сайта и регистрирует обработчик удаления товара, если его ещё нет.
При ручной замене файлов модульного каталога updater сам не выполняется. В доверенном служебном PHP-скрипте с подключённым прологом Битрикса выполните копирование файлов:
<?php
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/ozhogov.compat/install/index.php";
(new ozhogov_compat())->InstallFiles();
$events = \Bitrix\Main\EventManager::getInstance();
$registered = false;
foreach ($events->findEventHandlers("iblock", "OnAfterIBlockElementDelete", ["ozhogov.compat"]) as $handler) {
if (strcasecmp(ltrim((string)($handler["TO_CLASS"] ?? ""), "\\"), "Ozhogov\\Compat\\EventHandler") === 0
&& strcasecmp((string)($handler["TO_METHOD"] ?? ""), "onElementDelete") === 0) {
$registered = true;
break;
}
}
if (!$registered) {
$events->registerEventHandlerCompatible(
"iblock", "OnAfterIBlockElementDelete", "ozhogov.compat",
"Ozhogov\\Compat\\EventHandler", "onElementDelete"
);
}
?>
Этот вызов перезаписывает штатные копии в /bitrix/components/ozhogov/, /bitrix/js/ozhogov.compat/ и /bitrix/admin/. Сохраните собственные изменения этих копий заранее. Отдельно проверьте через EventManager::findEventHandlers наличие обработчика iblock → OnAfterIBlockElementDelete → Ozhogov\Compat\EventHandler::onElementDelete для модуля ozhogov.compat. Если записи нет, зарегистрируйте её один раз через EventManager::registerEventHandlerCompatible; не создавайте дубли. Одна замена файлов и InstallFiles обработчик не регистрируют.
ПРОВЕРКА РЕЗУЛЬТАТА
Откройте публичную страницу, выберите полный путь и год, проверьте подходящий товар, запрет N и примечание M в карточке. Убедитесь, что скрытая ветка и недоступные товары не показываются. Проверьте выбор модели после перехода в другую карточку, если запоминание включено. Выполните подбор с пустым результатом и проверьте журнал и отчёт с учётом ограничения повторов. После обновления проверьте новые копии компонентов, наличие обработчика удаления и состояние агента. Удалите временный служебный скрипт ручного обновления после использования.
— Электронная почта: nm.ozhogov@ya.ru
— Время ответа: в рабочие дни, в течение 48 часов с момента обращения.
— Часовой пояс: UTC+3 (Москва).
Чтобы вопрос решился с первого письма, приложите: название и версию решения, редакцию 1С-Битрикс и версию главного модуля, версии PHP и базы данных, адрес страницы, на которой воспроизводится проблема, последовательность действий для её повторения и снимок экрана с сообщением об ошибке. Если ошибка попала в журнал событий сайта, приложите запись из него.
В поддержку можно обращаться с вопросами по установке, настройке и обновлению решения, по совместимости с другими решениями и по ошибкам в его работе. Доработка решения под требования конкретного проекта в поддержку не входит и обсуждается отдельно.
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.