qwelp.sharedcart · Руководство по подключению
Документация
Поделиться корзиной: полное руководство по установке, настройке и использованию. Версия 1.0.0.
Начало
Модуль «Квэлп: Поделиться корзиной» сохраняет состав корзины и создаёт ссылку для просмотра. Покупатель может скопировать её, отправить через социальную сеть или показать QR-код.
- Установите модуль. В разделе «Установленные решения» найдите «Квэлп: Поделиться корзиной» и нажмите «Установить».
- Подключите кнопку. Передайте разработчику примеры из раздела «Подключение». Установщик не добавляет кнопку в произвольный шаблон корзины автоматически.
- Проверьте результат. Добавьте товар в корзину, нажмите «Поделиться корзиной» и откройте полученную ссылку в другом браузере. Должны появиться товары, количества и сохранённая сумма.
Как работает ссылка
Это снимок корзины на момент создания: последующие изменения товаров и цен не обновляют уже созданную ссылку. Просмотр доступен тому, у кого есть ссылка; он не переносит товары в корзину получателя и не создаёт заказ.
Ссылка действует 30 дней по умолчанию. Состав, количества и сохранённые в корзине цены содержатся в самой подписанной ссылке; новая запись в базе данных не создаётся. Последующие изменения корзины не меняют ссылку. Для больших корзин ссылка длиннее: если QR-код недоступен, скопируйте её целиком. Социальная сеть может ограничивать длину ссылки.
Перейти к проверке и решению частых проблем
Установка
Перед установкой
Нужны права администратора, PHP 8.2 и модуль «Главный модуль» версии 23.0.0 или новее. В Битриксе должны быть установлены модули «Интернет-магазин» (sale), «Торговый каталог» (catalog), «Информационные блоки» (iblock) и «Валюты» (currency).
- Создайте резервную копию сайта и базы данных.
- Загрузите решение средствами Marketplace. Откройте Marketplace → Установленные решения, найдите «Квэлп: Поделиться корзиной» и выполните установку.
- Дождитесь сообщения об успешной установке. В разделе «Квэлп» откройте «Квэлп: Поделиться корзиной → Документация».
- Перейдите к подключению кнопки и проверьте ссылку с непустой корзиной.
Что создаёт установщик
Установщик создаёт таблицу снимков корзины, регистрирует ежедневную очистку просроченных снимков, размещает собственные административные файлы, компоненты qwelp:sharedcart.page и qwelp:sharedcart.share, расширение qwelp.sharedcart и страницу personal/shared-cart/index.php в папке каждого настроенного сайта.
Общие ресурсы устанавливаются в /bitrix/js/qwelp/sharedcart/ и /bitrix/components/qwelp/sharedcart.page/. Пользовательские копии в /local/ не перезаписываются и имеют приоритет. Полная поставка Marketplace размещается в /bitrix/modules/qwelp.sharedcart/, административная страница — в /bitrix/admin/. Разработческая или пользовательская копия модуля в /local/modules/ имеет приоритет: при обновлении проверяйте, какая копия фактически загружается.
Перед установкой проверяются локальные каталоги расширения и обоих компонентов на всех настроенных сайтах. Пустые остаточные деревья каталогов удаляются автоматически. Неполная копия с файлами, но без config.php для расширения либо class.php/component.php для компонента, останавливает установку с указанием пути. Символические ссылки в этих путях не изменяются и также требуют проверки. Полноценные пользовательские копии сохраняются и продолжают иметь приоритет; их совместимость проверяет разработчик сайта. При удалении модуля пустые каталоги его файлов также очищаются, а пользовательские файлы и общие каталоги сохраняются.
Существующая пользовательская страница общей корзины не мешает установке: её каталог сохраняется без изменений и не присваивается модулю. Если страница ещё не подключена к модулю, добавьте вызов qwelp:sharedcart.page по примеру ниже. Конфликты общих файлов компонентов и JS, повреждённый файл учёта и небезопасные пути по-прежнему останавливают установку: сохраните указанный файл и передайте разработчику путь из сообщения.
Удаление и повторная установка
При удалении сохраняются страницы, созданные вручную, а также изменённые и сторонние файлы. Их наличие не блокирует удаление модуля. Удаляются только файлы, чьё содержимое совпадает с записанным при установке хешем; уже отсутствующие файлы пропускаются. Повреждённый файл учёта, небезопасный путь или ошибка доступа останавливают удаление с указанием пути. Сохранённые страницы и кнопки после удаления требуют ручного отключения. Повторная установка автоматически сохраняет пользовательскую страницу, в том числе изменённую страницу прежней установки, и продолжает установку общих файлов модуля. Удалять страницу или создавать для неё файл учёта вручную не нужно.
Откройте «Установленные решения», выберите удаление модуля и оставьте флажок сохранения данных, если снимки и настройки понадобятся после повторной установки. Удаление без сохранения данных уничтожает снимки и ключ подписи: старые ссылки восстановить нельзя без резервной копии.
Если вы добавили кнопку вручную, уберите её из шаблона корзины при отключении модуля. Пользовательские шаблоны и изменённые файлы проверяйте отдельно.
Подключение
Регистрация не нужна. Кнопка вызывает qwelp:sharedcart.CartLink.get: сервер читает существующую корзину текущей сессии и подписывает её состав без записи снимка. Для открытия новой ссылки требуется JavaScript. Сохраняйте весь адрес, включая часть после #qsc=. Ранее созданные ссылки ?code=… продолжают работать.
Этот раздел для разработчика сайта. Если кнопка уже есть и открывает окно со ссылкой, повторное подключение не требуется.
1. Подключите компонент
Добавьте вызов в пользовательский шаблон корзины или на страницу после подключения ядра. Компонент qwelp:sharedcart.share выводит кнопку и подготавливает окно отправки. Его шаблон сам подключает стили и скрипт; отдельно загружать расширение не нужно.
<?php
if (\Bitrix\Main\Loader::includeModule('qwelp.sharedcart'))
{
$APPLICATION->IncludeComponent('qwelp:sharedcart.share', '', ['SHOW_BUTTON' => 'Y'], false);
}
?>2. Если кнопка уже есть
Вызовите этот же компонент один раз с SHOW_BUTTON => N вне обновляемого фрагмента корзины. Добавьте существующей кнопке атрибут data-qsc-share-button. Оформление кнопки останется в шаблоне сайта.
<button type="button" class="qsc-cart-share" data-qsc-share-button>Поделиться корзиной</button>Компонент берёт текущую корзину сам: идентификатор пользователя передавать не нужно. Значение SHOW_BUTTON можно менять в параметрах компонента; по умолчанию кнопка включена.
Страница просмотра и её параметры
Установщик создаёт страницу personal/shared-cart/index.php относительно папки сайта. Для сайта в корне адрес имеет вид /personal/shared-cart/?code=…, для сайта в подпапке перед ним добавляется папка сайта. Код берётся из созданной модулем ссылки.
Если вы интегрируете модуль в уже существующую пользовательскую страницу, сохраните её и добавьте вызов компонента. Полный минимальный пример страницы:
<?php
declare(strict_types=1);
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php';
$APPLICATION->IncludeComponent('qwelp:sharedcart.page', '', ['SET_TITLE' => 'Y'], false);
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php';При копировании шаблона страницы сохраните data-qsc-page, data-qsc-loading, data-qsc-error и файл script.js: они загружают подписанный состав через POST и используют этот же шаблон для вывода. Для ключа на прежней установке используется уже существующий ключ подписи ядра; если ни одного ключа нет, выполните повторную установку с сохранением данных.
| Параметр | Значение | Назначение |
|---|---|---|
SET_TITLE | Y по умолчанию | Устанавливает заголовок страницы. Передайте N, если заголовком управляет сама страница. |
Компонент получает снимок по коду и отключает Композит для страницы просмотра. Не помещайте его результат в общий кеш или кеширующий родительский компонент.
Свой дизайн
Оба компонента используют обычные шаблоны Битрикса. Скопируйте нужную папку .default целиком:
- страница:
/bitrix/components/qwelp/sharedcart.page/templates/.default/→/local/templates/ИМЯ_ШАБЛОНА/components/qwelp/sharedcart.page/ИМЯ_КОПИИ/; - кнопка и окно:
/bitrix/components/qwelp/sharedcart.share/templates/.default/→/local/templates/ИМЯ_ШАБЛОНА/components/qwelp/sharedcart.share/ИМЯ_КОПИИ/.
Выберите имя копии в параметрах компонента или передайте его вторым аргументом IncludeComponent. Меняйте template.php, style.css, script.js и языковые файлы в своей копии. Для страницы достаточно разметки и CSS; общий CSS модуля к ней не подключается.
Если меняете только оформление окна, сохраните служебные атрибуты data-qsc-*, data-qr, data-network и классы элементов, используемые в script.js. Сохраните экранирование данных и обработку отсутствующей корзины. Установщик не записывает файлы в пользовательские папки шаблонов.
Настройки
Настройки кнопки, социальных сетей и ссылок открываются внутри меню «Квэлп → Квэлп: Поделиться корзиной → Настройки». В стандартных настройках модулей остаётся только «Доступ». Справа от каждого шаблона ссылки кнопка ⋯ открывает переменные с пояснениями. Выбор вставляет переменную на место курсора; «Вставить пример» заполняет пустое поле готовым шаблоном.
Откройте «Квэлп → Квэлп: Поделиться корзиной → Настройки». Пункт доступен пользователям с правом W на модуль. Во вкладке «Кнопка и социальные сети» выберите сайт в выпадающем списке «Сайт». При переключении открываются настройки выбранного сайта; несохранённые изменения не применяются. Ссылки на товары настраиваются на соседней вкладке.
Оформление кнопки и социальные сети
В настройках модуля откройте вкладку «Кнопка и социальные сети» и выберите сайт. Доступны акцентная, светлая и тёмная кнопки, а также свои цвета фона, текста, рамки и наведения. Можно задать скругление, выравнивание кнопки, значок и его размер и положение слева или справа от текста.
Для своей картинки загрузите PNG, JPEG или WebP до 1 МБ и 1024 × 1024 px. На сервере нужен GD; файл сохраняется как PNG. Новая картинка заменяет старую. Флажок «Удалить изображение» удаляет файл после сохранения. При удалении модуля с сохранением данных картинки сохраняются; при полном удалении удаляются только его собственные картинки.
Выберите нужные VK, Одноклассники и X. Если отключены все сети, раздел исчезает, а копирование ссылки и QR-код остаются. Нажмите «Сохранить кнопку и сети этого сайта»: настройки других сайтов, ссылок и прав не меняются. Предпросмотр показывает оформление до сохранения.
Оформление применяется к стандартному шаблону компонента с SHOW_BUTTON=Y. Для пользовательских шаблонов и вручную созданных внешних кнопок оформление задаётся в их собственном коде. Компонент не кеширует настройки; стандартный шаблон выводится в динамической области Композита.
Права доступа
Откройте «Настройки → Настройки продукта → Настройки модулей» и выберите «Квэлп: Поделиться корзиной». На вкладке «Доступ» назначьте права группам пользователей и нажмите «Сохранить».
| Право | Что доступно |
|---|---|
D — доступ закрыт | Административные страницы модуля недоступны. |
R — чтение | Просмотр документации. |
W — полный доступ | Документация, настройка ссылок на товары и управление правами. |
Это права административного раздела. Они не делают публичную ссылку закрытой: снимок просматривает любой получатель ссылки до окончания её срока.
Ссылки на товары
Откройте «Квэлп → Квэлп: Поделиться корзиной → Настройки», вкладку «Ссылки на товары». Для каждой пары сайт/каталог доступно поле шаблона. Пустое поле оставляет автоматический адрес из корзины; заполненное имеет приоритет. Пример для каталога с ЧПУ: /catalog/#SECTION_CODE#/#ELEMENT_CODE#/. Скопируйте структуру ЧПУ из настроек компонента каталога, а не адрес одного товара.
Доступны #SITE_DIR#, #ELEMENT_ID#, #ELEMENT_CODE#, #IBLOCK_ID#, #SECTION_ID#, #SECTION_CODE# и #SECTION_CODE_PATH#. Последняя подстановка содержит путь кодов разделов, а #SECTION_CODE# — код основного раздела. Указывайте путь от корня сайта без домена, обязательно с ID или кодом товара. Для торговых предложений подставляются поля основного товара. При отсутствии товара или нужного кода остаётся сохранённая ссылка.
Настройка действует и на уже отправленные ссылки при следующем открытии страницы, не меняя цены, количества и остальные данные снимка. Настройки разных сайтов и каталогов независимы. После сохранения проверьте несколько карточек. Очистите поле, чтобы вернуть автоматический режим. Если корзина уже открыта, обновите её страницу.
Заголовок страницы задаётся компонентом через SET_TITLE и выводится шаблоном сайта. Внутри списка товаров он повторно не выводится.
Срок действия
Размер и хранение
Состав корзины ограничен 60000 байтами. Новые ссылки содержат подписанные данные и не расходуют квоту базы данных. Короткие снимки через прежний API SharedBasket.createSnapshot требуют авторизации; для них сохранены общие квоты 30/мин, 300/час, 3000/сутки и 10000 действующих снимков. Ключ подписи создаётся при установке и сохраняется при обновлении и удалении с сохранением данных. Не меняйте ключ: это сделает выданные ссылки недействительными.
По умолчанию ссылки действуют 30 дней. В текущем экране настроек отдельного поля срока нет. Изменение выполняет разработчик через штатную настройку Битрикса.
Изменить срок через API
Добавьте этот код в контролируемую одноразовую миграцию сайта с подключённым ядром Битрикса. Замените 30 числом дней от 1 до 365. Не размещайте код на общедоступной странице или в обработчике каждого запроса.
if (\Bitrix\Main\Loader::includeModule('qwelp.sharedcart'))
{
\Bitrix\Main\Config\Option::set('qwelp.sharedcart', 'SHARE_BASKET_LIFETIME', '30');
}Настройка общая для установки. Она применяется только к новым снимкам; дата окончания старых ссылок не пересчитывается. Чтобы вернуть срок по умолчанию, установите значение 30.
Несколько сайтов
В настройках каждого сайта Битрикса проверьте доменное имя и папку сайта. Модуль использует их для адреса ссылки и открывает снимок только на том сайте, где он создан. Проверьте кнопку и страницу просмотра отдельно на каждом домене. Общая папка /bitrix/ сама по себе не подтверждает доступность локальных компонентов и расширений второго сайта.
Проверка
Проверка после подключения
- Добавьте несколько товаров в корзину и нажмите «Поделиться корзиной». Должно открыться окно со ссылкой и QR-кодом.
- Скопируйте ссылку и откройте её в другом браузере без авторизации. Сверьте товары, количества и сумму со снимком.
- Измените корзину, создайте новую ссылку. Старая должна показывать прежний состав.
- Проверьте пустую корзину и неверный код ссылки: должно появляться понятное сообщение, без ошибок PHP.
- Повторите проверку на телефоне, после обновления страницы и после AJAX-обновления корзины. При включённом Композите проверьте повторное открытие страницы корзины из кеша.
- Для многосайтовой установки повторите шаги на каждом сайте; ссылка должна вести на правильный домен.
| Проблема | Что проверить |
|---|---|
| Кнопки нет | Установщик не меняет шаблон корзины. Добавьте кнопку по разделу «Подключение» и проверьте пользовательский шаблон. |
| Кнопка не реагирует | Проверьте атрибут data-qsc-share-button и подключение компонента qwelp:sharedcart.share и ошибки JavaScript. Подключение ресурсов должно выполняться вне кешируемого фрагмента. |
| Ссылка показывает прежние товары | Снимок не обновляется. Создайте новую ссылку. |
| Корзина не найдена | Проверьте полный код, срок действия и домен: снимок привязан к сайту создания. Создайте новую ссылку. |
| По ссылке ошибка 404 или не найден компонент | Проверьте созданную страницу в папке нужного сайта, доступность компонента и его шаблона. При наличии локальной копии проверьте, не перекрывает ли она установленную. |
| Неправильный домен | Проверьте доменное имя сайта в Битриксе и основное имя сервера в настройках главного модуля. Затем создайте ссылку заново. |
| Где найти настройки | Откройте «Квэлп → Квэлп: Поделиться корзиной → Настройки». Для изменения нужны права W; при R доступна документация. |
Что передать разработчику при ошибке
Укажите версию модуля и Битрикса, версию PHP, сайт и последовательность действий. Приложите снимок экрана, текст ошибки из консоли браузера и результат сетевого запроса без cookies, токенов и персональных данных.
Сверено с документацией модуля 11.10.2026. Примеры PHP предназначены для вашего сайта на 1С-Битрикс.