© Anton Dolganin 2025
Перейти в маркетплейс для покупки решения.
Представляю Вам функционально законченное решение для организации продажи цифрового контента.
С его помощью вы сможете предоставить пользователям доступ на платное скачивание файлов, возможность купить размещенный на сайте контент или приобрести электронные лицензии. Инструменты модуля Продажа контента помогут автоматизировать обработку и доставку электронных заказов в Вашем Интернет-магазине. А благодаря его гибким настройкам, Вы сможете учесть все тонкости и специфику Вашего бизнеса.
Модуль решает следующие задачи:
После покупки модуль, как и его последующие обновления, будет доступен через систему обновлений 1С-Битрикс. Рассмотрим его возможности и настройки подробнее.
Важно: Настройка магазина и платежных систем не входит в пакет модуля и вы должны будете произвести ее самостоятельно.
Важно: Для полноценной работы модуля в настройках модуля Интернет-магазин (не текущего модуля) включите опцию «Включить обработку устаревших событий».
Одной из отличительных особенностей модуля является возможность динамической генерации текстовых ключей. Вы можете задать маску ключа (например, PIN-##########) и при покупке ключ будет автоматически сгенерирован и отправлен пользователю. Это избавляет от необходимости генерировать ключи и самостоятельно загружать их в базу. И как правило, требуется при продаже статей на вашем сайте (доступ к материалу предоставляется после ввода ключа в специальное поле). С модулем поставляется публичный компонент для организации продажи доступа.
Если же база ключей строго определена, то перед началом работы в базу модуля загружается определенное количество ключей, которые привязываются к товарам.
Модуль дает возможность работать со следующими типами ключей :
Вы можете протестировать данный функционал на демо-сайтах: продажа PIN-кодов, продажа платных статей.
Как происходит отгрузка кодов:
После того как пользователь оплатил заказ (т.е. у заказа сменился флаг на «оплачено» или произошел переход в заранее определенный статус), происходит отгрузка ключа. И пользователю приходит письмо на его e-mail, указанный при оформлении заказа (или взятый из его профиля, если такое свойство в заказе отсутствует).
А ключ попадает в секцию отгруженных.
В случае, когда загруженные ключи заканчиваются, администратор получает уведомление об этом (причем, вы можете настроить при каком остатке ключей высылать предупреждение), а ключ попадет в очередь. Далее администратор может добавить необходимые ключи и произвести отправку.
Также у данной части модуля есть возможность массового импорта ключей из CSV-файла:
Или пакетная загрузка для конкретного товара (подойдет, когда товаров мало, а ключей много). Варианты загрузки: несколько текстовых ключей; текстовый файл с ключами; несколько файловых ключей; архив с файловыми ключами:
Функционал этого раздела модуля позволяет продавать все, что передается по сети Интернет и может иметь какую-либо ценность, например MP3-файлы, PDF или даже изображения. Принцип здесь еще проще, чем в предыдущей части модуля. Вы указываете в настройках модуля какие инфоблоки товаров являются электронным контентом и в каком свойстве содержится покупаемый файл. Все остальное модуль сделает сам. После оплаты товара пользователем (у заказа сменился статус на «оплачено») ему приходит письмо с уникальной ссылкой для скачивания файла. Время жизни ссылки, а также ее уникальность настраиваются в модуле. |
![]() |
Вы можете протестировать данный функционал на демо-сайтах: продажа МР3, продажа клипартов.
С модулем поставляется два публичных компонента:
Для получения данного функционала перейдите в режим правки на странице, на которой планируете разместить данный компонент и выберите «Измените страницу в редакторе».
В дереве перейдите к компоненту Магазин — Персональный раздел — Ключи пользователя и мышью перетащите его в любое место на странице.
В результате пользователь получит доступ к списку сделанных им заказов.
Внимание! Есть более упрощенная схема в том плане, что вы просто настраиваете штатный каталог Битрикс, а потом вносите некоторые коррективы. Читать по ссылке. Описанный ниже подход тоже имеет право на реализацию, но является уже устаревшим. Компонент Организация продажи доступа к отдельным статья (isale.news.detail) полностью идентичен стандартному компоненту 1С-Битрикс news.detail, за тем лишь исключением, что для получения детальной информации о статье, нужно будет ввести купленный до этого ключ.Разместите компонент на странице: перейдите в режим правки и выберите «Измените страницу в редакторе». В дереве перейдите к компоненту Контент — Статьи и новости — Новость детально (закрытый раздел) — и мышью перетащите его в любое место на странице. Настройте параметры компонента: |
![]() |
Шаблон компонента - выберите шаблон для вашего компонента
Основные параметры - выберите тип и код инфоблока, в котором расположен платный контент, а также ID или код новости
Источник данных - выберите поля и свойства, которые планируется отображать. Укажите, какие свойства будут доступны только после покупки
Остальные параметры настроек установите в соответствии с принятыми на вашем сайте политиками.
Перед тем как перейти к настройкам модуля убедитесь, что у на Вашем сайте создан как минимум один инфоблок, который будет использоваться для продажи электронного контента (если такого инфоблока нет - создайте его). А также убедитесь, что данный инфоблок является Торговым каталогом, для этого перейдите в Администрирование - Контент - "имя_инфоблока" - Настройки инфоблока - Торговый каталог - и поставьте галочку Является Торговым каталогом.
Выведите инфоблок на страницу в публичном разделе.
Далее произведите настройку модуля в соответствии и вашими задачами:
Отправлять товар не при оплате, а при переводе в статус — иногда бывает необходимо отправлять товар не при оплате заказа, а при переводе в определенный статус. С помощью этой настройки вы можете сделать это. Указать можно как один, так и несколько статусов.
После отдачи файла переводить заказ в статус — если данная опция активирована (указан какой-либо статус), то, после того как файл будет отдан пользователю на скачивание, будет произведена автоматическая смена статуса заказа на указанный.
Запрещать скачивание файла, если заказ в статусе — если активировать данную опцию каким-либо статусом, то пользователь не сможет скачать файл товара, который находится в заказе с запрещенным статусом, при прочих удовлетворительных условиях.
При успешной отправке всех ключей переводить заказ в статус — в случае успешной отправки всех ключей (весь заказ был в наличии и не произошло системного сбоя) можно автоматически перевести заказ в указанный статус.
Отправлять ключи пакетами — по умолчанию на каждый ключ отправляется одно письмо и, если пользователь купил несколько товаров, то ему будут отправлены письма по количеству ключей. Данная опция позволяет группировать ключи в одно письмо.
Минимальное число оставшихся ключей для одного товара — при достижении этого количества для каждого ключа администратору будет отправлено уведомление о том, что количество ключей определенного товара достигло минимального остатка. Важно: Если ключи закончатся, то при покупке товара они будут помещаться в очередь. Не учитывается при динамической генерации ключей (см. ниже).
При загрузке ключей проверять очередь — если данная опция активирована, то при добавлении новых ключей любым способом (в том числе и через импорт) будет происходить проверка очереди и заполнение ее в случае совпадения по полю "товар".
В списке ключей показывать пути до файлов ключей — данная опция под рядом с каждым файловым ключом выводит физический путь до файла.
Только ручная отправка ключей — функция, которая отключает отправку ключей (но не электронных товаров), все ключи попадают в очередь и требуют ручной отправки.
Запрещать отгрузку товара, при неполной комплектации ключей — если вы не хотите отправлять заказ, если каких-то ключей не оказалось в наличии - включите данную опцию.
Инфоблоки товаров для отгрузки ключей — инфоблоки, в которых содержатся товары, ключи к которым вы будете продавать на своем сайте.
Инфоблоки товаров для автоматической генерации ключей — выделите здесь те инфоблоки, товары из которых допускают динамически генерируемый ключ. Обратите внимание, что ключ будет генерироваться только в том случае, если для данного товара нет доступных к отгрузке ключей.
Шаблон ключа для генерации — шаблон для динамической генерации ключа.
Путь для хранения ключей — защищенная директория на сервере, где будут храниться файловые ключи (не путать с электронным товаром). К таким файлам может относиться файл активации какой-либо программы.
Инфоблоки электронных товаров — инфоблоки, в которых находится электронный контент. При оплате товаров из данных инфоблоков будет происходить отправка уникальной ссылки на скачивание файлов.
Коды свойств, где содержится продаваемый файл — коды (инфоблоков может быть несколько) свойств, в которых находятся файлы, являющиеся электронным контентом. Код свойства можно узнать в настройках соответствующих инфоблоков.
Время жизни в днях для ссылки скачивания — при покупке электронного товара пользователю выдается ссылка, по которой он сможет скачать файл. Данная настройка устанавливает "время жизни" данной ссылки. По прошествии указанного количества дней, файл будет более недоступен.
Делать ссылки уникальным для одного компьютера/браузера — при активировании данной опции каждая ссылка привязывается к пользователю и он уже не сможет ею воспользоваться на другом компьютере.
Сделанные настройки необходимо сохранить.
Модуль поставляется в открытых кодах, поэтому Вы можете доработать его с учетом специфики своего бизнеса. Ниже представлены несколько частных решений, позволяющих реализовать ту или иную схему, не включенную в модуль стандартно.
Все решения основаны на базе обработчиков событий. Разместите нужный вам пример кода в файле /bitrix/php_interface/init.php (если файла нет, то создайте его)
В данном примере, если товар находится в категории с ID равным 2 или 3, то отгрузка происходить не будет. Важный момент, что не учитываются вложенные категории.
2. Необходимо кастомизировать список товаров (ключей), в почтовом шаблоне при пакетной отправке ключей.
AddEventHandler("asd.isale", "OnBuildOrderListItem", "IsaleOnBuildOrderListItemHandler");
function IsaleOnBuildOrderListItemHandler(&$itemList, $arFields)
{
if ($arFields["K_TYPE"] == "S")
$itemList = $arFields["PRODUCT_NAME"] .': '. $arFields["K_VALUE"]." (http://sitename.ru/detail.php?id=".$arFields["PRODUCT_ID"].")\n";
} Вот какой результат будет приходить на почту (добавлена ссылка на детальный просмотр товара):
4. Необходимо, чтобы автоматически генерируемый купон создавался по маске, которая хранится в свойстве с кодом COUPON_MASK продаваемого товара.
<?
AddEventHandler("asd.isale", "OnBeforeCheckBasketItem", "IsaleOnBeforeCheckBasketItemHandler");
function IsaleOnBeforeCheckBasketItemHandler(&$arElement, $arOrder, &$arBasketItem)
{
if (CModule::IncludeModule('iblock') && CModule::IncludeModule('asd.isale'))
{
if ($arProp = CIBlockElement::GetList(array(), array('ID' => $arElement['ID']))->GetNextElement()->GetProperties())
{
$key = new CIsaleKeys();
$arFields = array(
'K_VALUE' => $key->GeneratePin($arProp['COUPON_MASK']['VALUE']),
'K_TYPE' => 'S',
'PRODUCT_ID' => $arElement['ID'],
'PRODUCT_PRICE' => $arBasketItem['PRICE'],
'PRODUCT_DISCOUNT' => $arBasketItem['DISCOUNT_PRICE'],
'PRODUCT_CURRENCY' => $arBasketItem['CURRENCY'],
'ORDER_ID' => $arOrder['ID'],
'OWNER_ID' => $arOrder['USER_ID'],
);
$newkeyID = $key->Add($arFields);
}
}
}
?>
В данном случае уберите нужный вам инфоблок из автоматически генерируемых ключей в настройках модуля. Фактически мы сэмулировали эту автоматическую генерацию.
Технические требования модуля:
* — библиотека необходима для распаковки ZIP-архивов при импорте ключей. В модуле присутствует «кустарный» класс для распаковки ZIP-архивов и разработчик не дает гарантий в корректной его работе.
© Anton Dolganin 2025