qwelp.sharedcart · Руководство по подключению

Документация

Поделиться корзиной: полное руководство по установке, настройке и использованию. Версия 1.0.0.

Начало

Модуль «Квэлп: Поделиться корзиной» сохраняет состав корзины и создаёт ссылку для просмотра. Покупатель может скопировать её, отправить через социальную сеть или показать QR-код.

  1. Установите модуль. В разделе «Установленные решения» найдите «Квэлп: Поделиться корзиной» и нажмите «Установить».
  2. Подключите кнопку. Передайте разработчику примеры из раздела «Подключение». Установщик не добавляет кнопку в произвольный шаблон корзины автоматически.
  3. Проверьте результат. Добавьте товар в корзину, нажмите «Поделиться корзиной» и откройте полученную ссылку в другом браузере. Должны появиться товары, количества и сохранённая сумма.

Как работает ссылка

Это снимок корзины на момент создания: последующие изменения товаров и цен не обновляют уже созданную ссылку. Просмотр доступен тому, у кого есть ссылка; он не переносит товары в корзину получателя и не создаёт заказ.

Ссылка действует 30 дней по умолчанию. Состав, количества и сохранённые в корзине цены содержатся в самой подписанной ссылке; новая запись в базе данных не создаётся. Последующие изменения корзины не меняют ссылку. Для больших корзин ссылка длиннее: если QR-код недоступен, скопируйте её целиком. Социальная сеть может ограничивать длину ссылки.

Перейти к проверке и решению частых проблем

Установка

Перед установкой

Нужны права администратора, PHP 8.2 и модуль «Главный модуль» версии 23.0.0 или новее. В Битриксе должны быть установлены модули «Интернет-магазин» (sale), «Торговый каталог» (catalog), «Информационные блоки» (iblock) и «Валюты» (currency).

  1. Создайте резервную копию сайта и базы данных.
  2. Загрузите решение средствами Marketplace. Откройте Marketplace → Установленные решения, найдите «Квэлп: Поделиться корзиной» и выполните установку.
  3. Дождитесь сообщения об успешной установке. В разделе «Квэлп» откройте «Квэлп: Поделиться корзиной → Документация».
  4. Перейдите к подключению кнопки и проверьте ссылку с непустой корзиной.
Что создаёт установщик

Установщик создаёт таблицу снимков корзины, регистрирует ежедневную очистку просроченных снимков, размещает собственные административные файлы, компоненты 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_TITLEY по умолчаниюУстанавливает заголовок страницы. Передайте 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/ сама по себе не подтверждает доступность локальных компонентов и расширений второго сайта.

Проверка

Проверка после подключения

  1. Добавьте несколько товаров в корзину и нажмите «Поделиться корзиной». Должно открыться окно со ссылкой и QR-кодом.
  2. Скопируйте ссылку и откройте её в другом браузере без авторизации. Сверьте товары, количества и сумму со снимком.
  3. Измените корзину, создайте новую ссылку. Старая должна показывать прежний состав.
  4. Проверьте пустую корзину и неверный код ссылки: должно появляться понятное сообщение, без ошибок PHP.
  5. Повторите проверку на телефоне, после обновления страницы и после AJAX-обновления корзины. При включённом Композите проверьте повторное открытие страницы корзины из кеша.
  6. Для многосайтовой установки повторите шаги на каждом сайте; ссылка должна вести на правильный домен.
ПроблемаЧто проверить
Кнопки нетУстановщик не меняет шаблон корзины. Добавьте кнопку по разделу «Подключение» и проверьте пользовательский шаблон.
Кнопка не реагируетПроверьте атрибут data-qsc-share-button и подключение компонента qwelp:sharedcart.share и ошибки JavaScript. Подключение ресурсов должно выполняться вне кешируемого фрагмента.
Ссылка показывает прежние товарыСнимок не обновляется. Создайте новую ссылку.
Корзина не найденаПроверьте полный код, срок действия и домен: снимок привязан к сайту создания. Создайте новую ссылку.
По ссылке ошибка 404 или не найден компонентПроверьте созданную страницу в папке нужного сайта, доступность компонента и его шаблона. При наличии локальной копии проверьте, не перекрывает ли она установленную.
Неправильный доменПроверьте доменное имя сайта в Битриксе и основное имя сервера в настройках главного модуля. Затем создайте ссылку заново.
Где найти настройкиОткройте «Квэлп → Квэлп: Поделиться корзиной → Настройки». Для изменения нужны права W; при R доступна документация.
Что передать разработчику при ошибке

Укажите версию модуля и Битрикса, версию PHP, сайт и последовательность действий. Приложите снимок экрана, текст ошибки из консоли браузера и результат сетевого запроса без cookies, токенов и персональных данных.

Сверено с документацией модуля 11.10.2026. Примеры PHP предназначены для вашего сайта на 1С-Битрикс.