drupal

Commerce License con Organic Group

En este post explicaremos cómo realizar la compra de un producto en Drupal Commerce que incluya una licencia y cuyo acceso esté restringido exclusivamente a los miembros. Para ello, utilizaremos el módulo Organic Groups.

Para llevar a cabo todo ello, se necesitarán los siguientes módulos:

  • Organic Group: Permite la creación y gestión de grupos dentro del sitio.
  • Commerce: Proporciona la base para manejar productos y transacciones.
  • Commerce License: Añade la capacidad de gestionar licencias como productos.
  • Commerce License OG Role: Conecta las licencias con los roles dentro de los grupos, permitiendo que los usuarios obtengan permisos automáticamente al adquirir una licencia.
  • Organic Group access control: Gestiona los permisos de acceso dentro de los grupos

1. Dirígete a la sección Extend dentro de tu proyecto y activa los siguientes módulos: 

  • Organic group

  • Organic Group access control

  • Commerce + submódulos que sea necesario para comprar un producto.

  • Commerce License

  • Commerce License OG Roles.

2. Con los módulos y sus dependencias ya instalados, continuaremos con la configuración individual de cada uno para completar el funcionamiento del proyecto.

Crear el tipo de contenido “Group”
  • Luego de la instalación, crearemos el tipo de contenido Group. Para ello, dirígete a la siguiente ruta: admin/structure/types/add
  • En esta sección configuraremos el nuevo tipo de contenido con las siguientes opciones:

    • Nombre: Asignamos el nombre Group.
    • Menú de configuración: En el bloque lateral, ubicamos la opción Organic groups.
    • Activar como grupo: Marcamos la casilla Group, lo que permitirá que este tipo de contenido funcione como un grupo capaz de contener entidades y tener miembros.
    • Membership type: Dejamos la opción por defecto, a menos que queramos manejar tipos de membresía personalizados.
    • Restrict access to group members: Activa esta opción para que solo los miembros del grupo puedan acceder y visualizar tanto el grupo como los contenidos que pertenecen a él.
  • Una vez completada la configuración, hacemos clic en Save and manage fields para guardar los cambios y continuar con la definición de los campos necesarios.

Crear el tipo de contenido “Group content”
  • Ahora crearemos el tipo de contenido que funcionará como el contenido de grupo. Para ello dirigirse a la siguiente ruta: /admin/structure/types/add (Structure > Content types > Add content type.)

  • En esta sección configuramos el tipo de contenido con las opciones de:

    •  Nombre: Group content
    • Menú de configuración: En el bloque lateral, ubicamos la opción Organic groups.
    • Activar como Group content: Marcamos la casilla Group Content, lo que permitirá que este tipo de contenido funcione como contenido de un grupo.
      • Target type: Contenido (Configuración por defecto)
      • Target bundles: Seleccionar el tipo de contenido Group
    • Una vez completada la configuración, hacemos clic en Save and manage fields para guardar  y continuar con la definición de los campos necesarios.
  • Al crear este tipo de contenido, se añadirá automáticamente el campo Groups audience, el cual permitirá asociar el contenido a un grupo específico dentro del sitio.

Crear contenidos - Group y group content

  • Crear un contenido de Grupo, lo llamaremos Primer grupo. Dirigirse a la siguiente ruta:  /node/add/group.

  • Completa la información de acuerdo con los campos que hayas creado. Luego guardar el contenido creado.

  • Crear un contenido de Grupo, lo llamaremos Curso de Marketing. Dirigirse a la siguiente ruta:  /node/add/group_content

  • Completa la información de acuerdo con los campos que hayas creado.
    • En este tipo de contenido aparecerá el campo Groups audience, generado automáticamente al instalar el módulo. Allí deberás seleccionar el grupo que creamos previamente; en este ejemplo, “Primer grupo”.
  • Luego guardar el contenido creado.
Crear Licencia para un producto 
  • Para activar una licencia en los productos, dirígete al tipo de variación en: Administración >> Commerce >> Configuration >> Product variation types.

  • A continuación se muestran las configuraciones que deben realizarse. (En este ejemplo, utilizo el tipo de variación Default).

  • Habilitar las siguientes opciones:
    • Provides a license: Indica que este tipo de variación incluye una licencia.
  • En las configuraciones de la licencia habilitar la opción de:
    • OG Role: Licencia basada en roles dentro de grupos (Organic Groups).  Esta opción permite que la licencia funcione basada en roles dentro de grupos (Organic Groups), lo que significa que los usuarios que tengan un rol asignado en un grupo específico podrán acceder al contenido relacionado.
    • Activate license when order is placed:
      • Si se activa: La licencia se activa inmediatamente al completar el pedido.
  • Order item type: Define el tipo de ítem de pedido asociado a esta variación.
    • En este caso: Default.
  • Finalmente, no olvides guardar todos los cambios haciendo clic en el botón azul que se encuentra al final de la página, para asegurar que la configuración se guarde correctamente.

Creación de un Producto en Drupal Commerce

Para crear un nuevo producto, debemos dirigirnos a la siguiente ruta: /product/add/default, una vez allí, completa la información según los campos definidos en el tipo de producto.

Información del producto
  • En esta sección se detalla toda la configuración relacionada con la licencia del producto. Aquí se deberán completar distintos campos que permiten definir cómo se gestionará el acceso y los permisos del usuario una vez realizada la compra.
  • Tipo de licencia:Determina la clase de licencia que se asignará al usuario después de adquirir el producto. En este caso, se utiliza el tipo OG Role, el cual permite que, al activarse la licencia, el usuario sea agregado automáticamente a un grupo específico y se le asigne un rol dentro de ese grupo.

  • Tipo de grupo: Especifica el tipo de grupo al que pertenecerá el usuario cuando la licencia se active. En este caso, el tipo de grupo configurado es “Group”, el cual fue creado previamente para organizar y administrar a los usuarios que obtienen acceso a través de una licencia.

  • Grupo: Indica el grupo específico al que será añadido el comprador del producto una vez que la licencia sea activada. En este caso, el grupo seleccionado es “Primer grupo”, el cual fue creado previamente.

  • Rol de grupo: Define el rol que se otorgará dentro del grupo, lo cual determina los permisos y acciones permitidas, Para este caso, se debe seleccionar la opción Member, de modo que el usuario obtenga los permisos necesarios para acceder al contenido.
  • Membership type: Establece el tipo de membresía que se generará para el usuario dentro del grupo. En este caso, es suficiente dejar el valor por defecto, ya que este tipo de membresía cumple con la configuración estándar necesaria para el funcionamiento de la licencia.
  • License expiration: Permite definir la duración o fecha de expiración de la licencia asociada al producto. Este ajuste determina hasta cuándo el usuario mantendrá acceso al grupo o contenido asignado. Se presentan tres opciones:

  • Para este producto de ejemplo, utilizaremos la opción Rolling interval y configuraremos un período de 5 minutos. Esto significa que, una vez activada la licencia, el usuario tendrá acceso durante ese intervalo de tiempo antes de que la licencia expire automáticamente.
  • Finalmente, una vez completadas todas las configuraciones correspondientes a la licencia, el grupo y los datos del producto, procedemos a guardar el producto,

Realizar la compra y verificar la activación de la licencia

El siguiente paso es realizar una compra de prueba para comprobar que todo funciona correctamente. Para ello, es necesario contar con un usuario registrado en el sistema. No requiere un rol específico; basta con que tenga una cuenta activa.

Después de completar el proceso de compra, podremos verificar si la licencia se ha activado correctamente, para ello nos dirigimos a la siguiente sección :  admin/commerce/licenses

A continuación se muestra el apartado donde se registran y administran los datos correspondientes a las licencias.

1. Sección de filtros (parte superior)

  • License type: menú desplegable para filtrar por tipo de licencia.
  • Name or email contains: campo de texto para buscar por nombre o correo.
  • State: filtro desplegable para el estado.
  • Botón “Filter”: aplica los filtros seleccionados.

2. Tabla de resultados: Contiene un listado de registros con columnas:

  • ID: identificador del registro.
  • Label: nombre o descripción del elemento (enlace clicable).
  • License type: tipo de licencia (ej. “OG Role”).
  • Owner: propietario (ej. “valeria”).
  • State: estado del elemento (ej. “Active”, “Expirado”).
  • Granted: fecha y hora de asignación.
  • Expires: fecha y hora de expiración.
  • Updated: última actualización.
  • Operations / Links: menú de acciones (botón “Ver”, “Editar” y “Borrar”).

Licencia Activada

  • Una vez realizada la compra, ubicamos la columna “State” dentro de la tabla, donde podemos verificar que la licencia está activada. Esto indica que el proceso se completó correctamente y que el usuario ya tiene acceso al contenido.
  • Si nos dirigimos al contenido, podemos visualizarlo sin inconvenientes, lo que confirma que ya tenemos acceso a él.
  • Para verificar que el usuario ha sido agregado al grupo y puede acceder al contenido, nos dirigimos a la siguiente ruta: /group/node/1/admin/members, donde node/1 corresponde al ID del grupo.
  • Cuando la licencia vence, el usuario es retirado automáticamente del grupo.

Licencia expirada

  • Como en el ejemplo configuramos que la licencia expire después de 5 minutos, al cumplirse ese tiempo el estado de la licencia cambia a “Expired”.
  • Al cambiar el estado, esto indica que el usuario ya no tiene acceso al contenido.
  • Con estos pasos, el proceso de configuración y verificación de licencias queda completado. Ahora el sistema está listo para gestionar compras, activar licencias y controlar el acceso al contenido de manera automática y eficiente.

 

Me pareció interesante el artículo

Deseo más información

O también puedes comunicarte con nosotros.

por whatsapp por whatsapp

Añadir nuevo comentario

Protected by Spam Master

Me gustaría más información sobre:

Protected by Spam Master