TSolucio: vtiger CRM for Hosting Companies

Definición y Objetivos

Esta personalización de vtiger CRM pretende adaptar la aplicación estándar a las necesidades de una empresa de servicios de hosting y registro de dominios en internet. Hemos conseguido esto añadiendo las siguientes características:

  • Gestión de partners que revenden los servicios al cliente final. Cada partner puede crear contratos para sus clientes, indicando si hemos de mandar factura directa al cliente o facturar al partner.
  • Gestión de comisiones a partners
  • Gestión de contratos de servicios con nuestros clientes/partners. Ahora tenemos un sitio donde registrar el servicio contratado por un cliente y la frecuencia de facturación que genera este contrato. Por ejemplo, podemos tener un contrato de registro de dominio y hosting a un precio determinado y con una frecuencia de facturación semestral.
  • Facturación automática recurrente con envío directo a cliente/partner de la factura (en formato PDF)
  • Agrupación de facturas a partners: todos los contratos indirectos asociados a un partner se facturan juntos en una única factura.
  • Un portal de acceso para los clientes donde pueden consultar sus facturas, modificar sus datos y gestionar sus incidencias con nosotros.

En el proceso hemos creado una personalización que puede servir para cualquier empresa que vende servicios de manera recurrente con un precio establecido con sus clientes y que tiene revendedores a comisión.

Partners

  • Un partner es una cuenta más en la lista de Cuentas (clientes) de vtiger CRM, la única particularidad de un partner será que en el campo “Partner” (miembro de) figura la misma cuenta.
  • Todas las cuentas asociadas a un partner, o sea sus clientes, deberán especificar en el campo “Partner” (miembro de) la cuenta Partner asociada. Las cuentas sin partner asociado se consideran “libres” y siempre se facturarán directamente.
  • Los partners cuentan con 2 campos “activos” en su definición (las cuentas que no son partners también cuentan con estos campos, pero no se consideran en ningún caso):
    • Frecuencia de facturación: Este campo marca la frecuencia con la que se facturará al partner, independientemente de la frecuencia asignada a sus contratos. Los contratos asociados a un partner, que se facturan al partner (facturación indirecta), se agrupan en una única factura que se genera con la frecuencia indicada por este campo.
    • Fecha de facturación: Marca el inicio de la facturación al partner, posteriormente, en función de la frecuencia de facturación, se facturará periódicamente cuando venza el periodo asignado en la frecuencia.
  • Se puede crear un usuario asociado a un partner para que éste tenga acceso a su información relacionada, estos usuarios pertenecerán al rol especial denominado: Partner.

Creación de un Partner con acceso al sistema

Para que un partner pueda gestionar sus clientes, contratos y facturas tenemos que darle acceso al sistema. Para introducir un partner y darle acceso a la aplicación hemos de seguir los siguientes pasos:

  • Crear una nueva cuenta con todos los datos del partner (exceptuando el campo Partner). Esta cuenta representa al partner en el sistema y es el que se utilizará para realizar su facturación entre otras cosas.
  • Una vez creada la cuenta hay que editarla y asignar en el campo Partner la misma cuenta, o sea, seleccionar el mismo partner. De esta manera marcamos la cuenta como partner; todas las cuentas que tienen a si mismos como Partner, se entiende que son partners. Todas las demás cuentas que tienen un partner distinto de si mismo se consideran clientes del partner asociado.

Con estos dos pasos ya tenemos los datos del partner introducidos en el sistema. Ahora tenemos que darle acceso al mismo creando un usuario asociado a la cuenta.

  • Creamos un usuario con los datos pertinentes, el Rol será SIEMPRE Partner y en el campo “Cuenta asociada” introducimos la cuenta que acabamos de crear.
  • A partir de este momento todas la entidades relacionadas con el partner (Cuenta, Incidencia, Contrato o Factura) que se creen o editen, serán asignadas al usuario relacionado con el partner.

Comisiones Partners

En función de a quien le hacemos la factura, al cliente (directa) o al partner (indirecta), el programa aplicará una tarifa diferente para determinar los precios de los productos. Estas tarifas se llaman “Cliente final” y “Partners”. El precio que se define en la ficha de producto será el precio de coste.

En el caso de tener productos que no tengan una tarifa asociada NO APARECERAN en la pantalla de captura de productos. Las reglas que definen este comportamiento son:

  • Si la factura es directa al cliente y NO tenemos precio del producto en la tarifa Cliente o Partner (en estas facturas necesitamos los 2 precios para calcular la comisión)
  • Si la factura es al partner y NO tenemos precio del producto en la tarifa Partner.

Los precios del sistema son siempre sin impuestos y las comisiones se calculan sobre estos precios.

La comisión se calculará automáticamente y se guardará en el contrato restando el precio del producto entre ambas tarifas

Contratos

  • Los contratos tienen los mismos campos que un albarán (SalesOrder) y añaden 4 más:
    • Facturación directa: Si se marca la casilla, el contrato se facturará directamente al cliente, independientemente de si tiene asociado o no un partner.
    • Frecuencia de facturación: funciona igual que con los partners y marcan con qué frecuencia se facturará el contrato, este campo no será relevante si el contrato está asignado a un cliente con partner asociado y no se marca la casilla de facturación directa
    • Fecha de alta: Marca la fecha de alta del contrato y se utiliza para iniciar la facturación periódica. Se facturará 15 días antes de la finalización del primer periodo.
    • Fecha de baja: Marca la fecha de finalización del contrato. A partir de esta fecha ya no se facturará al cliente.
  • Cada contrato tiene un campo “Comisión sobre ventas” donde se introducirá la comisión a percibir por el partner de la cuenta (en caso de que hubiera). El precio total del contrato es el que pagará el cliente final con la comisión aplicada.

Los contratos debe crearlos el partner en el sistema, para ello tiene dos posibilidades según la facturación irá a su cargo o a cargo del cliente final. Si la facturación es directa, o sea a cliente final. El partner debe crear la cuenta con todos los datos para poder realizar la factura y después crear un contrato de facturación directa con la frecuencia de facturación y todos los productos contratados. En este caso se aplicará automáticamente la tarifa de cliente final a los productos elegidos y se calculará la comisión correspondiente.

En el caso de una facturación indirecta, el partner debe introducir el contrato bien a su propia cuenta o bien a la cuenta cliente final. Recomendamos que asocie el contrato al cliente final aunque no vaya a servir para facturación sí sirve para poder asociar cada contrato con sus propios clientes. Ahora debe elegir facturación indirecta, la frecuencia de facturación y los productos contratados. En este caso el precio de los productos se obtendrá de la tarifa de partner y no habrá comisión asociada. El partner podrá facturar lo que le parezca a sus clientes.

Facturación Automática

  • La facturación automática es un proceso periódico, en el que el sistema comprueba qué contratos debe facturar y realiza las funciones necesarias para generar facturas a partir de los contratos.
  • En contratos de facturación directa y en función de la frecuencia de facturación genera facturas de los contratos que vencerán (el periodo) 15 días después del día actual.
  • En contratos ligados a partners, el sistema comprueba que es el día adecuado para facturar al partner (en función de la frecuencia y la fecha de facturación definidas en el partner), con ello elige los contratos que vencen (el periodo) 15 días después del día actual y los agrupa en una sola factura, suma las comisiones de los contratos implicados en el campo “Comisión sobre Ventas” de la factura y especifica en cada producto, a qué contrato pertenece y qué comisión tiene asignada, el total de la factura será la cantidad a pagar por el cliente final, con la comisión ya aplicada.
  • Cada vez que se crea una factura automática, esta envía un mensaje de correo al cliente con la factura en formato PDF adjunta.
  • Para la activación de la facturación mensual es necesario incluir una tarea en el cron del sistema que ejecute todos los días el script autofra.php ubicado en el directorio cron de la instalación de vtiger CRM. No obstante para forzar una activación manual se puede acceder desde el navegador web a la dirección:
    http://<SERVIDOR>/<INST_vtigerCRM>/index.php?module=Invoice&action=generate_invoice

Portal de Acceso Cliente (Customer Portal)

Para poder usar el Portal tenemos que crear un contacto (con cuenta de correo válida) y después cambiar el campo “Usuario de Portal” a “Si”. En ese momento la aplicación envía un correo al contacto (el servidor de correo saliente de vtiger CRM ha de estar correctamente configurado) con el nombre de usuario (el email) y la contraseña. A partir de ese momento ya se puede entrar a la parte privada del Portal.

La sección de preguntas frecuentes (FAQ) se ha abierto y es de acceso libre, sin ningún tipo de autentificación. En la parte superior derecha hay un enlace denominado “Acceso Clientes” que nos dirige a la pantalla de autentificación para poder acceder al área privada del portal.

Dentro de la parte privada encontramos las nuevas pestañas “Mis Facturas” y “Paneles”.

En “Mis Facturas” se listan todas las facturas asociadas a la cuenta a la que pertenece el contacto (por tanto el contacto que se crea en el sistema ha de estar ligado a un cliente -Cuenta- concreto) y si tiene alguna factura por pagar (todas las que no tienen estado Pagada) aparecen los iconos de pago al final, el tercer icono abre na ventana con los datos para poder hacer efectivo el pago por transferencia. Estos datos se han de introducir en el script pay_transfer.php. Este script recibe los parámetros de precio, número de factura y nombre de cliente.

Para que se puedan ver los detalles de la factura vía PDF la cuenta de correo del contacto que esta accediendo desde el portal ha de coincidir con la cuenta registrada en CRM para ese usuario y ademas estar asignado como contacto de la cuenta sobre la que se factura.

La pestaña de “Paneles” es un contenedor de información estática, un especie de comodín. Se muestra la información que genera el script Panels/panels.html. Normalmente pondremos la información de acceso a los paneles de los clientes.

En la ventana de “Mis Preferencias” el cliente tendrá acceso a sus datos y podrá modificar aquellos que nosotros designemos.

El aspecto visual del portal es la que tiene por defecto, no obstante se pueden realizar las personalizaciones que fueran necesarias.

Temas pendiente. Posibles mejoras

  • Al crear un contrato no se genera ningún tipo de aviso de que el trabajo se ha de hacer. Deberíamos definir un proceso de aviso de creación de contrato y su trabajo asociado
  • Alta y gestión de contratos desde el portal. Para ambos, cliente final puede comprar=compras online
  • Alta y gestión de cuentas/contactos desde el portal (para el partner)
  • un modulet per a la portada, on els partners vejen en tipo gráfica els ingresos i comisions que han generat i eixe tipus de coses