Создаем сайт с платным доступом к контенту на базе Drupal.

В продолжение серии статей о типовых решения на базе CMS Drupal, я предлагаю вашему вниманию решение такой задачи как продажа доступа к определённому контенту на Вашем сайте.

Рекомендую Вам так же ознакомиться со следующими типовыми решениями: Доска объявлений средствами Drupal, Сайт «визика» средствами Drupal, Многоязычность в Drupal.

Реализовывать данное решение мы будем на старом добром Drupal 6.x.

Для создания сайта нам понадобятся следующие модули:

  1. Ubercart
  2. Localization update
  3. Uc Roboxchange
  4. Token
  5. Content Access

Шаг первый — создание отдельного типа материала и специальной роли.

Первое что нужно сделать, это создать новую роль, которая будет назначаться пользователю после покупки доступа к платному материалу.  Как Вы наверное знаете, в Drupal можно делать различные ограничения на доступ к материалам, блокам, модулям и так далее, так вот эту встроенную функцию мы и будем использовать.

Отдельные тип материалов нам понадобиться, чтобы легко разделить бесплатные страницы сайта от платных страниц.

Давайте создадим новую роль, делается это на странице /admin/user/roles. Я её назову pay_role, вы можете назвать так же или любым другим именем.

Теперь создаем новый тип материала на странице /admin/content/types/add, я его у себя назову pay_content. Теперь нам надо установить ограничения на просмотр этого типа материала, я осмелюсь предположить, что модули указанные выше уже установлены и включены. Настройки доступа делаются на странице — /admin/content/node-type/pay-content/access.

Выглядеть это будет примерно так:


Сохраняем изменения и двигается дальше.

Шаг два – создание товара для продажи роли.

Теперь нам нужно сделать самое главное, это определить особенности для товара, так как в нашем случаи товаром является, по сути виртуальная роль на не нужно заворачиваться с расчетом доставки и прочими деталями которые необходимы для продажи физического товара.

Давайте перейдем на страницу настройки /admin/store/settings/products/edit/features. Ниже я выкладываю скрин настроек, а под ним напишу небольшое пояснение.

На данной странице вы можете выбрать какую роль назначать при продажи товара, в зависимости от товара можно назначить определённую роль, у которое к примере может быть определенный срок действия, либо роль будет действительно до определённой даты, тут уже на ваше усмотрение.

Я у себя выставил следующие, роль присваивается пользователю на 1 месяц, в зависимости от количества указанного в товаре, то есть его количества срок роли будет умножать, ну например ваш товар – Подписка на закрытый раздел сайта, если покупатель выбрал количество этого товара 1 то доступ будет выдан на 1 месяц если он выбрал 3 то доступ выдается на 3 месяца, и стоимость подписки соответственно меняется. Напоминание о продление доступа я установил за неделю до его окончания, у вас могут быть свои настойки, все достаточно гибко.

После сохранения указанных настроек давайте создадим товар которые будет продавать подписку на платные разделы сайта.

Давайте создадим новый товар, не будем сильно вдаваться в описание товара, просто создаем, указываем цену артикул и самое главное особенность.

Как видно на рисунке выше при редактировании товара нам доступна вкладка «Особенности» нажимаем на нее и делаем небольшие настройки. Добавляем нашу особенность.

Выбираем артикул нашего товара и роль, которая будет присвоена пользователю после покупки данного товара.

Вы так же можете переопределить срок действия роли, если поставите галочку в поле «Override the default ending expiration».

После сохранения настроек особенности вы увидите вот такое вот.

Сохраняем наш товар и переходи к следующему шагу.

Шаг три – легкий тюнинг модуля магазина и подключение средств оплаты.

В первую очередь давайте отключим ненужные вещицы с этапа оформления заказа, для этого уберем лишние галочки на этой странице — /admin/store/settings/checkout/edit/panes и тут /admin/store/settings/checkout/edit/fields. На странице /admin/store/settings/checkout/edit поставим галочку — Регистрировать пользователей, если учетные записи новых клиентов создаются во время расчета стоимости.

После регистрируемся на сайте http://www.robokassa.ru/ru/ и указываем свои данные на странице /admin/store/settings/payment/edit/methods. Это позволит Вам принимать платежи электронными деньгами и после оплаты автоматически присваивать пользователю роль.

Можно так же подключить другие способы оплаты, если оплата производится безналом или почтовым переводом, то после того как заказу будет присвоен статус «платеж получен», пользователю автоматически будет выдана роль.

Дополнительно

Теперь вам осталось только создать страницы с использование созданного типа материала – pay_content. Делается это стандартно тут /node/add. Вот и все теперь ко всем материалам имеющим тип pay_content можно будет получить доступ только имея роль pay_role которая в свою очередь присваивается при покупке товара.

[like_to_read]

Дистрибутив и модули, используемые в решении можно загрузить здесь — http://narod.ru/disk/43666734001.aa50ae8bb6de571218d8d091364c8c58/distr_end_modules.zip.html

Дистрибутив и дамп базы с настройками показанными в данном решении — http://narod.ru/disk/43667269001.ec2d9d7b9fefb029cc73a7410fd30d8d/distr_end_dump_db.zip.html

[/like_to_read]

Я буду рад любой ссылочке на блог в качестве благодарности.