GNU/Linux, Open Source, Cloud Computing, DevOps y más...

Área privada de clientes desarrollada en Yii Framework y SugarCRM

4 comentarios

Cliente: Se omite por cuestiones de confidencialidad. Compañía distribuidora de electricidad (España)

Este trabajo consistió en la implementación de un área privada exclusiva para clientes accesible desde el sitio web corporativo de una compañía distribuidora de electricidad. Dicha zona reservada debía mostrar información a los clientes sobre sus propios contratos suscritos, consumos mensuales y datos de facturación, al mismo tiempo que debía permitir la modificación de sus propios datos básicos de cliente.

Logo Yii FrameworkLogo SugarCRM

Página principal del área privada de clientes basada en Yii Framework Además se la dotó de un apartado específico para agentes comerciales colaboradores de la compañía eléctrica que les permitiera dar de alta nuevos contratos y gestionar códigos promocionales que luego serían utilizados en distintas acciones de marketing.

Desarrollo basado en Yii Framework

Tras un análisis previo se optó por independizar totalmente esta área de clientes del resto del sitio web corporativo basado en WordPress, emplazándola en un subdominio propio y partiendo de un desarrollo desde cero basado en Yii Framework. A pesar de que la aplicación no se iba a separar en frontend y backend ni iba a precisar una API para comunicarse con otras aplicaciones, se partió tomando como base la plantilla avanzada de Yiinitializr con vistas a permitir su futura expansión y la implementación de nuevas funciones aún no previstas, pero probables dado el crecimiento que estaba experimentando mi cliente.


Error: Your Requested widget " ai_widget-6" is not in the widget list.
  • [do_widget_area above-nav-left]
    • [do_widget_area above-nav-right]
      • [do_widget_area footer-1]
        • [do_widget id="wpp-4"]
      • [do_widget_area footer-2]
        • [do_widget id="recent-posts-4"]
      • [do_widget_area footer-3]
        • [do_widget id="recent-comments-3"]
      • [do_widget_area footer-4]
        • [do_widget id="archives-4"]
      • [do_widget_area logo-bar]
        • [do_widget id="oxywidgetwpml-3"]
      • [do_widget_area menu-bar]
        • [do_widget id="search-3"]
      • [do_widget_area sidebar]
        • [do_widget id="search-4"]
        • [do_widget id="ai_widget-2"]
        • [do_widget id="categories-5"]
        • [do_widget id="ai_widget-3"]
        • [do_widget id="ai_widget-4"]
        • [do_widget id="ai_widget-5"]
      • [do_widget_area sub-footer-1]
        • [do_widget id="text-4"]
      • [do_widget_area sub-footer-2]
        • [do_widget_area sub-footer-3]
          • [do_widget_area sub-footer-4]
            • [do_widget_area upper-footer-1]
              • [do_widget id="search-2"]
              • [do_widget id="recent-posts-2"]
              • [do_widget id="recent-comments-2"]
              • [do_widget id="archives-2"]
              • [do_widget id="categories-2"]
              • [do_widget id="meta-2"]
            • [do_widget_area upper-footer-2]
              • [do_widget_area upper-footer-3]
                • [do_widget_area upper-footer-4]
                  • [do_widget_area widgets_for_shortcodes]
                    • [do_widget id="search-5"]
                    • [do_widget id="ai_widget-6"]
                  • [do_widget_area wp_inactive_widgets]
                    • [do_widget id="wpp-2"]
                    • [do_widget id="text-1"]
                    • [do_widget id="recent-posts-3"]
                    • [do_widget id="categories-3"]
                    • [do_widget id="archives-3"]
                    • [do_widget id="icl_lang_sel_widget-3"]

                  Integración con SugarCRM

                  Uno de los requisitos fundamentales y gran particularidad de este diseño es que toda la información que debía mostrarse a los usuarios del área de clientes residía en un backend basado en SugarCRM y que queda ampliamente descrito en este otro artículo de mi portafolio: Personalización exhaustiva de SugarCRM para empresa comercializadora de electricidad.

                  Formulario para relacionar cuentas de SugarCRM con cuentas de usuario en Yii Framework

                  Por tanto, era necesario implementar una interfaz SugarCRM< ->Yii Framework para integrar ambas soluciones y poder compartir datos de clientes, contratos, consumos y facturas tomados directamente de la base de datos de SugarCRM, actuando la aplicación Yii como una capa de presentación de dicha información.

                  Datos del módulo Cuentas de SugarCRMIntegración Yii-SugarCRM formulario de contratación agentes

                  Diseño responsive basado en Bootstrap

                  La interfaz de usuario presenta un diseño limpio HTML5+CSS3+jQuery basado en Bootstrap que es totalmente responsive, es decir, adaptable a todo tipo de dispositivos, ya sea PC’s de escritorio, tabletas u otro dispositivos móviles como smartphones. De esta forma se consiguió una aplicación totalmente accesible a todos los usuarios basada en los más modernos estándares del diseño web, y al mismo tiempo muy rápida y ligera.


                  Error: Your Requested widget " ai_widget-6" is not in the widget list.
                  • [do_widget_area above-nav-left]
                    • [do_widget_area above-nav-right]
                      • [do_widget_area footer-1]
                        • [do_widget id="wpp-4"]
                      • [do_widget_area footer-2]
                        • [do_widget id="recent-posts-4"]
                      • [do_widget_area footer-3]
                        • [do_widget id="recent-comments-3"]
                      • [do_widget_area footer-4]
                        • [do_widget id="archives-4"]
                      • [do_widget_area logo-bar]
                        • [do_widget id="oxywidgetwpml-3"]
                      • [do_widget_area menu-bar]
                        • [do_widget id="search-3"]
                      • [do_widget_area sidebar]
                        • [do_widget id="search-4"]
                        • [do_widget id="ai_widget-2"]
                        • [do_widget id="categories-5"]
                        • [do_widget id="ai_widget-3"]
                        • [do_widget id="ai_widget-4"]
                        • [do_widget id="ai_widget-5"]
                      • [do_widget_area sub-footer-1]
                        • [do_widget id="text-4"]
                      • [do_widget_area sub-footer-2]
                        • [do_widget_area sub-footer-3]
                          • [do_widget_area sub-footer-4]
                            • [do_widget_area upper-footer-1]
                              • [do_widget id="search-2"]
                              • [do_widget id="recent-posts-2"]
                              • [do_widget id="recent-comments-2"]
                              • [do_widget id="archives-2"]
                              • [do_widget id="categories-2"]
                              • [do_widget id="meta-2"]
                            • [do_widget_area upper-footer-2]
                              • [do_widget_area upper-footer-3]
                                • [do_widget_area upper-footer-4]
                                  • [do_widget_area widgets_for_shortcodes]
                                    • [do_widget id="search-5"]
                                    • [do_widget id="ai_widget-6"]
                                  • [do_widget_area wp_inactive_widgets]
                                    • [do_widget id="wpp-2"]
                                    • [do_widget id="text-1"]
                                    • [do_widget id="recent-posts-3"]
                                    • [do_widget id="categories-3"]
                                    • [do_widget id="archives-3"]
                                    • [do_widget id="icl_lang_sel_widget-3"]

                                  Gestión de usuarios

                                  Para proteger la información del área de clientes se implementó un sistema de registro automático de usuarios que les permitía registrarse a ellos solos sin ninguna intervención por parte de la empresa, automatizando todo el proceso de comprobación de la existencia de un contrato en vigor a partir de datos que aparecieran en las últimas facturas, envío de correos de verificación, correos de recuperación de contraseñas olvidadas, recuerdo de sesiones durante 15 días, modificación de datos de usuario, autorización basada en roles para diferenciar usuarios normales de agentes comerciales e impedir a los primeros acceder a los recursos sólo permitidos a los segundos, etc.

                                  Página de login y registro de usuariosPreferencias y datos básicos de usuario

                                  Capturas de pantalla

                                  A continuación se muestra una recopilación de capturas de pantalla que muestran otras funcionalidades que ofrece esta área privada de clientes corporativa:

                                  Listado del módulo personalizado Contratos de SugarCRMDatos del módulo personalizado Facturas de SugarCRM

                                  Ejemplo de un contrato de cliente procedente de SugarCRMEjemplo de contrato de cliente procedente de SugarCRM

                                  Consumos de electricidad por períodoEjemplo de un período de consumo por parte de un cliente

                                   

                                  Sobre el autor

                                  Daniel López Azaña
                                  Arquitecto de soluciones Cloud AWS & Linux Sysadmin Freelance

                                  Emprendedor, generador de ideas y mente inquieta. Apasionado de las nuevas tecnologías, especialmente de los sistemas Linux y del software libre. Me gusta escribir además sobre actualidad tecnológica, Cloud Computing, AWSi, DevOps, DevSecOps, seguridad, desarrollo web y programación, SEO, ciencia, innovación, emprendimiento, etc.

                                  DanielÁrea privada de clientes desarrollada en Yii Framework y SugarCRM

                                  Artículos relacionados

                                  4 comentarios

                                  Unirte a la conversación
                                  • Ana de la Huerta - 26/08/2015 responder

                                    Hola Daniel buenos días, estoy haciendo la página de la empresa y esta hecha en joomla, el área privada de clientes se puede implementar para joomla? no es de electricidad la compañia. También soy súper amante de los animales 😀 gracias y espero tu pronta respues.

                                    Pablo - 17/11/2015 responder

                                    Hola, yo tambien soy amante de los animales. Que casualidad!

                                  • Cesar Palacio - 30/03/2016 responder

                                    Saludos, los registros de usuarios también se guardaba en SugarCRM?

                                    Daniel - 05/05/2016 responder

                                    En este caso no porque se quería que los usuarios de SugarCRM y los del área de clientes fueran independientes, pero no habría ningún problema en usar una única tabla de usuarios común.

                                  Deja una respuesta

                                  Tu dirección de correo electrónico no será publicada.