Configuración Integración Vtex

Integración de VTEX

Tecnico

Revisar que esté instalado y funcionando la última versión de IGGlobal Cloud Service. 
1) descargar EXE de la siguiente pagina: https://www.rabbitmq.com/install-windows.html
001

2) al momento de Instalar sale el siguiente cartel.
002

pone si y descargar Erlang/OTP https://www.erlang.org/downloads

003

Instalar Erlang para continuar con la instalación de RabbitMQ


3) para probar que esté instalado correctamente RabbitMQ y Erlang/OTP entrar a la siguiente url:
http://localhost:15672/
Username: guest

Password: guest

004

o por services.msc buscar el servicio RabbitMQ. al finalizar la instalación, reiniciar el servicio de IGGlobal Cloud Service para que pueda operar con el servicio de RabbitMQ.

Si el servicio de monitor de rabbitmq no corre.
ejecutar el siguiente comando en la consola:

rabbitmq-plugins enable rabbitmq_management

y si aun no funciona, reinstalar el rabbitmq de vuelta y ejecutar el mismo comando

https://www.c-sharpcorner.com/article/using-net-core-with-rabbitmq-for-async-operations/
4) En el archivo “IGGlobalMasterInformac.db” hay que agregar el nombre de CuentaVTEX al dominio que corresponda, es un nuevo valor.
5) en la bases de INFORMAC, hay que agregar 2 registros en la siguiente tabla “Info_Componentes_Web”

– VTEX_CID = Nombre a la base que se va a conectar

– VTEX_STATUS_ORDERS = Nombre de estado que espera para pasar una orden de VTEX a un pedido del IGGLOBAL

Ejemplo:

Componente Clave
VTEX_CID DATOS_DESA
VTEX_STATUS_ORDERS ready-for-handling

6) en la instalación del IGGlobalCloudServices, buscar el siguiente archivo “Scheduling.Service.exe.config”,y agregar el mail donde van a llegar los posible errores , desde el ecommerce al erp. agregar el siguiente valor

<appSettings>

<add key=”igglobalMailLogTo” value=”mail@mail.com” />

</appSettings>
7) Habilitar la FU 50008

Funcional

VTEX:

  • Generalidades:
    • Cada artículo a sincronizar deberá tener en el campo CoArticuloAdicional el valor ‘VTEX-‘ + id de SKU de VTEX o agregar el atributo de VTEX y seleccionar el SKU que corresponda.
    • Cada plataforma posee un registro de parametrización que indica: la lista de precios, canal de distribución que maneja, tasa de iva (0 equivale a exento) y depósito.
  • Sincronización de precios:
    • Al guardar un precio de un artículo o al ejecutar el asistente de actualización de precios los precios de aquellos artículos que pertenezcan a la lista/canal configurados en la parametrización de la plataforma y que además tengan la marca VTEX en el campo CoArticuloAdicional o el atributo VTEX con el SKU que corresponda serán actualizados (sincronizados) hacia la plataforma VTEX.
    • Si existe algún error al sincronizar se registrará en el log el motivo del mismo, Las operaciones de sincronización exitosas también quedarán registradas en el log
  • Sincronización de stock:
    • Al guardar un movimiento de stock manual (entrada o salida) las cantidades de aquellos artículos que pertenezcan al depósito configurado en la parametrización de la plataforma y que además tengan la marca VTEX en el campo CoArticuloAdicional o el atributo VTEX con el SKU que corresponda serán actualizados (sincronizados) hacia la plataforma VTEX.
    • Al guardar un comprobante de ventas/compras  las cantidades de aquellos artículos que pertenezcan al depósito configurado en la parametrización de la plataforma y que además tengan la marca VTEX en el campo CoArticuloAdicional o el atributo VTEX con el SKU que corresponda serán actualizados (sincronizados) hacia la plataforma VTEX en función de la parametrización del cálculo de stock disponible asociado al usuario configurado en la parametrización de la plataforma. El cálculo se realiza con el datatable Stock disponible de un Artículo (30099)
  • Cargar Clave de VTEX
    • Entrar en el formulario de “eCommerce / B2C / Claves”

005 006

      • Origen: Lista de los eCommerce queres configurar
      • Nombre: Cuenta provista por el eCommerce
      • App Key: Clave provista por el eCommerce
      • App token: Token provista por el eCommerce
      • Usuario: Este usuario es para usar los valores por defecto del mismo. (Se puede cargar en “Configuración / Usuarios” )
      • Co. Cuenta Modelo: Este cliente es modelo para la carga de un nuevo cliente. (Se puede cargar en “Configuración / Tablas / Ventas / Clientes” )
      • IVA: Interés que se va a usar. 
      • No. Lista de Precios: se usa para sincronizar precio o órdenes. (Se puede cargar en “Configuración / Tablas / Inventarios / Lista de Precios” )
      • Co. Canal Distribución: se usa para sincronizar precio o órdenes. (Se puede cargar en “Configuración / Tablas / Ventas / Canales de Distribución” )
      • Co. Depósito: se usa para sincronizar stock. (Se puede cargar en “Configuración / Tablas / General / Depósitos” )
      • Co. Vendedor:  se usa para sincronizar órdenes. (Se puede cargar en “Configuración / Tablas / Ventas / Vendedores” )
      • No. Parámetro SKU: es la clave de atributo que se va a usar para identificar qué artículo tiene que ser sincronizado. (Se puede cargar en “Configuración / Tablas / Inventarios / Estructura de Codigo de Articulo” )
      • Co. Articulo Envio: esto es el artículo que se va a usar para agregar si la orden tiene envío. (Se puede cargar en “Configuración / Tablas / Inventarios / Artículos” )
      • Co. Artículo Intereses: este es el artículo que se va a usar para agregar si la orden tiene intereses. (Se puede cargar en “Configuración / Tablas / Inventarios / Artículos” )
      • Co. Cta. Ig/Eg: Número de banco en moneda base. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Ingreso y Egreso” )
      • Co. Cuenta: Número de cuenta en moneda base. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Caja y Bancos”  y tiene relación con Co. Cta. Ig/Eg)
      • Co. Cta. Ig/Eg  Divisa: Número de banco en divisa. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Ingreso y Egreso” )
      • Co. Cuenta Divisa: Número de cuenta en divisa. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Caja y Bancos” y tiene relación con Co. Cta. Ig/Eg  Divisa)

 


Cambio de diseño para Workflow

Para hacer que el workflow funciones con las respectivas tablas de propiedades dejo este query como guia de lo que se debe hacer

[embeddoc url=”https://kb.baseglobal.com.ar/wp-content/uploads/2018/09/Estados-Cambio-de-diseño.txt” download=”all”]

  • Crear tabla de propiedades para esa entidad.
  • modificar procedure de insert de esta entidad agregando un Insert a la tabla de propiedades y otro a la tabla Gr_Estados_Entidades para que funcione el historico de estados
  • Crear procedure para recuperar el estado Actual
  • Crear o modificar la vista que recupera los registros de esa entidad para que muestre el estado actual y lo muestre con su color, nombre
  • Crear procedure que altere el estado actual de una entidad en la tabla Propiedades
  • Crear procedure que inserte un nuevo registro a la tabla Propiedades con el estado nuevo de la entidad
  • Modificar el procedure “gr_estados_entidades_insert” que guarda cada uno de los estados nuevos o que son cambiados en el historico de estados. Este procedure tiene un “Case When” por tabla de propiedades que se a agregar o modificar un estado.
  • Modificar el procedure “Gr_Codigos_Estado_Actual” para que el Workflow y las autorizaciones de estado pueda recuperar el estado actual. Esto es interno en el cambio de estado y autorizacion

Desarrollo y prueba de tareas nuevas de CloudService

Para el desarrollo y prueba de las tareas disparadas por Quartz hay una solucion en el SourceSafe preparada para el testing de esas tareas.

La Solucion es DebuggerScheluder.

Esta solucion tiene un proyecto de consola y una referencia a la dll de Quartz y con coneccion al INFORMAC_DESARROLLO que es desde donde levanta las tareas a disparar.

Para probar esto se debe cargar una tarea en IGGlobal Online y en la solucion de DebuggerScheluder.sln se debe agregar una clase que es disparada por Quartz. Esta clase debe ir en el proyecto “Scheduling” de dicha solucion en la carpeta “Jobs” el nombre de la clase debe ser identico al nombre con que se dio de alta en el Online, tener en cuenta que quartz usa “Reflection” para correr las tareas.

El archivo “job.controller.js” en IGGlobal Online tiene todo lo que es la configuracion de las tareas que se van a disparar y en “SchedulerController.vb” esta como se guardan las tareas en las tablas de Quartz.

La funcion “getClassType” en SchedulerController.vb convierte el tipo de tarea a disparar en una clase que Quartz luego va a dispara usando reflection, ese mismo nombre es el que se usara en “DebuggerScheluder.sln”

 


Nuevo proceso de actualización de IGGLOBAL

Desafíos

  • Minimizar tiempos del proceso actual de actualización de los componentes de IGGLOBAL.
  • Mejorar el proceso de distribución de versiones y cambios a los clientes que utilicen IGGLOBAL.
  • Generar la infraestructura necesaria para proveer una actualización OTA de los componentes de IGGLOBAL.
  • Minimizar complejidad, y por ende mitigar riesgos de fallos en el proceso de actualización.

Características

El diseño inicial del nuevo proceso de actualización consta de:

  • Un servidor centralizado que almacenará el paquete del update, el cual incluye: cambios en bases de datos, componentes ejecutables y nuevos recursos multimedia.
  • Un servicio de actualización automática instalado en todos los servidores de bases de datos de los clientes en modalidad “Hybrid” y “On-Premise”. En caso de los clientes en modalidad “Cloud”, la infraestructura del servicio es provista por BASE GLOBAL.

Arquitectura SaaS – Multi-Tenant para IGGLOBAL

Objetivos

El presente proyecto tiene como objetivo extender la arquitectura actual de IGGLOBAL para tener la posibilidad de entregar el software en la modalidad SaaS (Software as a Service).

Dentro de las modificaciones a realizar se deberán tener en cuenta los siguientes requerimientos:

  • Los clientes del servicio podrán optar por ubicar físicamente la base de datos de la empresa (IGGLOBAL EDB) en servidores propios (on-premise) o bien alojarlos en algún proveedor de hoting/cloud.
  • Deberá darse soporte de multi-tenancy a todas las aplicaciones móviles de IGGLOBAL.
  • Se deberá poder llevar el control de acceso al servicio desde el departamento de implementación de BASE GLOBAL.
  • Será necesario optimizar y automatizar las rutinas de actualización de los componentes del software, de forma centralizada y transparente al cliente.

Implementación

Actualmente se están realizando los primeros diseños y pruebas del proyecto, las cuales implican cambios en las bases de datos existentes del sistema, generación de servicios autónomos que se instalarán en los servidores de los clientes y los ajustes a las arquitecturas de las aplicaciones.

A su vez, se están evaluando los beneficios y posibles desafíos de implementar ésta arquitectura.

Estado: En Proceso


Integración con centrales telefónicas IP DENWA

Relevamiento

[embeddoc url=”https://kb.baseglobal.com.ar/wp-content/uploads/2016/04/Integración-IGGLOBAL-Denwa-1.pdf” download=”all”]

Documentación API DENWA

[embeddoc url=”https://kb.baseglobal.com.ar/wp-content/uploads/2016/04/Contact-Center-WebServices-Schema-1.pdf” download=”all”]

[embeddoc url=”https://kb.baseglobal.com.ar/wp-content/uploads/2016/04/Contact-Center-REST-API-1.pdf” download=”all”]

[embeddoc url=”https://kb.baseglobal.com.ar/wp-content/uploads/2016/04/Contact-Center-Rest-Api-Examples-1-1.pdf” download=”all”]


Integración de IGGLOBAL con MercadoLibre

Objetivos

El presente proyecto tiene como objetivo realizar una librería reutilizable que permita integrar los servicios de MercadoLibre a través de sus APIs públicas y privadas (con autenticación OAuth 2.0) al sistema de gestión IGGLOBAL.

Con dicha librería se podrán generar las siguientes funcionalidades dentro del módulo eCommerce y Ventas de IGGLOBAL Online:

  • Publicar artículos
  • Recibir alertas de nuevas preguntas y compras que realizaron las personas por el portal MercadoLibre.
  • Responder preguntas de manera masiva, con la posibilidad de utilizar plantillas de respuestas.
  • Recibir las ventas ocurridas en MercadoLibre e integrarlas al circuito funcional preexistente en IGGLOBAL.

Implementación

El proyecto está representado por una librería en C# dentro de la solución de IGGLOBAL Online (IGGlobal.Ecommerce.MercadoLibre).

A su vez, se implementaron las interfaces gráficas dentro del proyecto IGGLOBAL Online.

Se utilizó la librería oficial que publica MercadoLibre Developers para el consumo de los datos a través de endpoints JSON.

Estado: Completo


Proyecto “Matilda” – Telemetría y telecomando con Arduino para control y riego de plantas a distancia

Objetivos

El presente proyecto tiene como objetivo realizar una librería reutilizable que permita a un microcontrolador Arduino enviar información (telemetría) y responder a señales (telecomando) del módulo de Internet of Things (IoT) de la plataforma IGGLOBAL Online.

Como escenario del proyecto se utilizó un grupo de sensores (humedad, presión y temperatura) para la lectura del estado actual de una planta de tipo “palo de agua” (Matilda) permitiendo recavar datos de humedad del suelo, temperatura y presión ambiente con el fin de, a través de un actuador controlado por IGGLOBAL, habilitar el paso de agua para el riego de la misma. Además se integró el servicio web de IoT ThingsSpeak para poder enviar información a una cuenta de Twitter por la cual se puede realizar el seguimiento de forma colaborativa.

Implementación

El proyecto está representado por:

  • El módulo Internet of Things de IGGLOBAL Online desde el cual se configuran aspectos de acceso y lectura de información que luego son descargados por el programa en la placa Arduino para su configuración.
  • Archivos de código C++ que se colocan en la placa Arduino.
  • Placa Arduino UNO.
  • Sensores de presión, humedad del suelo y temperatura.

Estado: Completo

Ubicación: \bg-srv03-fsFSGroupsDesarrollo_PROYECTOSArduino


Integración de ASP.NET MVC con Google APIs

Objetivos

El presente proyecto tiene como objetivo realizar una librería reutilizable que permita integrar los servicios Gmail, Calendar, Contacts y Drive ofrecidos por Google a través de sus APIs públicas y privadas (con autenticación OAuth 2.0) utilizando tecnologías ASP.NET MVC.

Además se buscará realizar la integración de la librería resultante al producto IGGLOBAL Online con el fin de extender su funcionalidad en módulos como CRM, Ventas, Compras, entre otros.

Implementación

El proyecto está representado por una solución de Visual Studio 2013 en donde se encuentran los siguientes proyectos:

  • GoogleCalendar.Mvc: proyecto que integra servicios de Google Calendar.
  • GoogleContacs.Mvc: proyecto que integra servicios de Google Contacts.
  • GoogleDrive.Mvc: proyecto que integra servicios de Google Drive.
  • GoogleGmail.Mvc: proyecto que integra servicios de Google Gmail.

Se utilizaron librerías oficiales de Google (vía NuGet) para el consumo de los datos a través de endpoints JSON.

Estado: Completo

Ubicación: \bg-srv03-fsFSGroupsDesarrollo_PROYECTOSGoogleApis.Mvc