Características E-Commerce V4
En este documento se detallan los componentes y características de la version 4 de E-Commerce de Bitworks.
Generalidades de Arquitectura
Sistemas Back End
Al igual que la version 3 del e-commerce la version 4 está basada en microservicios, pero incluyendo las siguientes mejoras:
Mejor distribución de los servicios, servicios muchas más granulares y flexibles
Manejo de eventos michos más detallados (más de 100 eventos despachados mediante colas a los que sistemas externos se pueden suscribir)
Autenticación de servicios estandarizada basada en OAuth 2.0
Seguimiento más exacto del estándar RESTful
Más microservicios y más funcionalidades en cada microservicio
Procesos en Segundo Plano
Los procesos en segundo plano están implementados utilizando “Azure Functions”, lo que permite que estos escalen de manera automática horizontalmente (replicándose muchas veces), para cubrir escenarios de alta de manda. Los procesos en segundo plano generalmente se ejecutan en baser a eventos de los APIs, y en algunos casos de manera programada.
Front End
El front end d ela interfaz administrativa esta desarrollado utilizando Blazor Webassembly, tecnología relativamente nueva que permite ejecutar código en el explorador del cliente.
La tecnología del front end del sitio web pude estar desarrollada en Web Assembly o en ASP.NET MVC.
La tecnología del front end de los aplicativos móviles puede estar desarrollada en React Native, Flutter o SDK Nativos de cada plataforma.
Microservicios
En esta sección se detallan los microservicios que conforman el e-commerce.
El 100% de los microservicios exponen sus funcionalidades por medio de un API REST documentada con el estándar Open API. lo que facilita crear sistemas en cualquier lenguaje que se basen en dichos microservicios. Es decir, una empresa que use el e-commerce de Bitworks puede crear en el futuro otros sistemas basados en dichos microservicios sin necesidad que Bitwork intervenga.
Escalamientos
Todos los microservicios soportan escalamiento horizontal automatico, es decir que los microservicios se pueden replicar de manera automática en momentos de alta demanda.
Listado de Microservicios
En la siguiente tabla se listan todos los microservicios que conforman el E-Commerce v4 de Bitworks. Se listan algunas funcionalidades de cada microservicio y se proporcione el enlace a su API y documentación.
# | Microservicio | Descripción | Ver API |
---|---|---|---|
1 | API Servidor de Autenticación | Expone funcionalidades para administrar todo el servidor de autenticación OAutn / Open Id. Permite hacer cosas como:
| |
2 | API de Autorización | Recibe de manera automática todas las acciones que se pueden ejecutar en todos los microservicios y permite definir a que acciones de cada microservicio tiene acceso cada rol del sistema. | |
3 | API de Multimedia | Se encarga de almacenar y extraer las imágenes y cualquier otro contenido multimedia, incluyendo textos largos. También es responsable de generar para cada imagen varias versiones de tamaño de acuerdo con los tamaños utilizados en el diseño gráfico del sitio. | |
4 | API de sucursales | Permite:
| |
5 | API de marcas | Permite:
| |
6 | API Categorías | Permite administrar una lista jerárquica de categorías de N niveles, generalmente utilizada para categorizar los productos. Sus funcionalidades incluyen:
| |
7 | API de Cupones | Este API permite:
| |
8 | API de Clientes | Permite:
| |
9 | API de Búsqueda | Este API sirve de punto de entrada para interactuar con el motor de búsqueda basado en Azure Search AI. Esta API se encarga:
Para más información de las características del buscador referirse a: https://azure.microsoft.com/en-us/products/ai-services/ai-search#features . | |
10 | APi Favoritos |
| |
11 | API de Catálogos Genéricos | En ocasiones se necesitan tener listas de valores, ej.: tipos de cuentos, tipos de clientes, etc. Este API permite generar dichos catálogos y administrar su contenido | |
12 | API de Ordenes | Este es API es bastante central el sistema y depende para funcionar de buena parte de los otros API. Su principal objetivo es manejar las ordenes o carretillas de compra del cliente, incluye estas funcionalidades:
| |
13 | API de Grupos de Productos | Permite generar grupos de productos y consultar si una lista de productos pertenece a un grupo. Este API es de gran utilidad para definir:
| |
14 | API de Productos | Este API permite:
| |
15 | API de cantidades permitidas | En ocasiones se desea colocar reglas en relación con cuantos productos pude comprar un cliente de un artículo, por ejemplo:
Este microservicio es uno de los microservicios basados en esquemas, es decir que dentro de cada esquema se puede definir reglas diferentes. Por ejemplo, el esquema de clientes retail permite comprar como máximo 10 productos que estén con descuento, pero el esquema de clientes mayoristas permite compara hasta 50 productos con descuento. | |
16 | API de Disponibilidades | Este es el API que maneja la cantidad disponible para venta de cada producto. Generalmente se sincroniza del ERP del cliente para llevar el inventario al día. Al igual que le API de “cantidades permitidas”, este API es basado en esquemas, es decir que se puede manejar varias cantidades disponibles para cada producto, por ejemplo:
| |
17 | API Tarifarios | El API de tarifarios es el responsable de manejar los precios de cada producto, este API también es basado en esquemas, es decir que se puede definir un precio diferente para cliente mayoristas y un precio para cliente retail. O un precio diferente pro sucursal, etc. | |
18 | API de promociones | El API de promociones es uno de los más complejos d todo el sistema, e imposible d eexplicar un texto breve, por lo que solo se dará una idea de sus funcionalidades. Para configurar una promoción se definen:
Está lógica de configuración permite hacer promociones complejas como:
Esta lógica de creación de promociones abre las puertas a una combinación virtualmente ilimitada de promociones. | |
19 | API Selector de Esquema | Como se mencionó anteriormente algunos APIs son basados en esquemas:
Esta API es la responsable de decidir que esquema utilizar en cada una de estas APIs basándose en el contexto en que se encuentra el usuario. Con contexto del usuario se refiere a cualquier cosa del entorno del usuario:
| |
20 | API de Zonas | Este API permite definir zonas geográficas de manera jerárquica, por ejemplo:
Las zonas se utilizan generalmente para relacionarlas a direcciones de entrega de clientes o direcciones de sucursales. Algunas características de este API son:
| |
21 | API de formularios | Este API permite definir formularios para capturar datos. Estos formularios se pueden utilizar para capturar datos de:
El API tine estas características:
| |
22 | API de Pagos |
| |
23 | API de Horarios |
|
Interfaz Administrativa
La solución de E-Commerce cuenta con un sistema administrativo para manipular toda la configuración relacionada coin el e-commerec por ejemplo:
Administrar datos de productos
Administra esquemas de tarifarios
Administrar grupos de productos
Administra categorías
Administrar sucursales
Colocar pedidos en nombre de un cliente, etc.
Obviamente este sistema solo es una interfaz web que sirve como Front End de todas las APIs mencionadas en la sección anterior.
Reportes
Cada microservicio cuenta con una base de datos independiente, por lo tanto, el sistema tiene más d 20 bases de datos. Por lo tanto, hay procesos corriendo constantemente que sincronizan la información de estas bases a un solo Data Warehouse consolidado. Este Data Warehouse está integrado con Power BI para que el comercio pueda genera todos los reportes que necesita o utilizar los reportes ya existentes.
Metodos de Pago
En cualquier momento es posible agregar más metodo de pago ya que Bitworks tiene control total sobre el desarrollo del e-commerce. Pero ya se tien integración con los siguientes meodos d epago:
Tarjetas de crédito con Serfinsa sin 3DS
Tarjetas de crédito con Serfinsa con 3DS
Tarjetas de crédito con Wompi con 3DS
Tarjetas de crédito con BAC con la pasarela FAC con 3DS
Pago con puntos de Banco Agricola
Pago con puntos de Davivienda
Pago con puntos de Cuscatlán
Pago con N1CO con 3DS
Pago con Bitcoin con WOMPI
Administrador de Contenidos
El sitio público del e-commerce se entrega totalmente administrable utilizando el administrador de contendidos Strapi (Strapi - Open source Node.js Headless CMS 🚀 ). El proyecto de implementación del e-commerce incluye definir los modelos de datos de Strapi que cumplan los requerimientos del diseño gráfico definido.