La Aplicación Móvil permite desplegar un catálogo con imágenes para facilitar a los vendedores la toma de pedidos y a su vez darles una herramienta visualmente llamativa para mostrar los productos a sus clientes.
Para realizar la carga de las imágenes que los vendedores visualizarán en su dispositivo, es necesario subir dichas fotos asociadas a sus respectivos productos. Para esto existen 2 alternativas, la primera de ellas es mediante el portal web y la segunda es mediante el programa de sincronización InalambrikSync ya instalado en su servidor, este último requiere un archivo de Excel.
Carga de Imágenes Mediante el Portal Web
Para realizar la carga en el portal web se deben seguir los siguientes pasos:
- Ingresar al portal pedidos.inalambrik.com.ec con su usuario y contraseña.
- Presionar sobre el menú Configuración y luego sobre la opción de Productos
- Buscar el producto deseado utilizando los filtros que aparecen en la parte superior y presionar sobre el ícono de la lupa que se encuentra del lado izquierdo del producto.
- Presionar sobre la pestaña Imágenes
- Al realizar el paso anterior se mostrará una lista con las fotos ya registradas, si es la primera vez que se van a registrar imágenes, la lista aparecerá vacía. Para agregar una nueva imagen presione en el ícono más
ubicado en la parte superior derecha de los títulos de la lista.
- Esto desplegará una pantalla en donde se deberá registrar un título para la imagen y presionar en el botón Seleccionar Archivo
el cual abrirá una ventana de navegación para buscar la foto o imagen deseada.
- Una vez ubicada la imagen presione Abrir en la ventana y luego Confirmar en la página para confirmar la grabación de la imagen.
Al confirmar retornará al listado donde pordrá visualizar la imagen cargada y las subidas previamente. Sobre este listado puede Modificar una línea
, eliminar una imagen
o convertir una imagen en principal
.
Carga Masiva de Imágenes Mediante el Sincronizador
Para realizar la carga masiva de imágenes, debe estar instalado Microsoft Visual J#. Si se intenta subir datos y no se cuenta con esta librería, se mostrará un error de vsjlib. Visual J# puede ser descargado de internet de forma gratuita y no requiere reiniciar la máquina luego de la instalación.
Las tareas a realizar para la carga de Imágenes asociadas a Productos se describe a continuación:
1. En un Documento de Excel (xlsx, último formato) se deberán definir las siguientes columnas de información:
COLUMNA | DESCRIPCIÓN |
Código Producto | Código de Producto. |
#Archivo | Identificador de Número de Archivo asociado a Producto. Cada producto puede tener asociado N archivos/documentos. (#Secuencial). |
Título | Descripción a utilizar durante la visualización del archivo en la Galería o Catálogo Virtual. (máx. 20 caracteres). Si coloca (*) se indicará que es la imagen principal del producto. |
Descripción | Detalle breve del producto, relacionado a la imagen. (máx. 40 caracteres) |
Tipo | Debido a que es una imagen debe ir el texto IMAGE por cada fila. Si coloca la palabra DELETE, indicará que desea eliminar la imagen del portal. |
Catálogo1 | Dejar en blanco, no aplica para este caso. |
Catálogo2 | Dejar en blanco, no aplica para este caso. |
Catálogo3 | Dejar en blanco, no aplica para este caso. |
Ruta | Ruta Absoluta de la imagen. Es decir, la dirección física en donde esté alojada la imagen a cargar. |
Consideraciones
- No existe un tamaño específico establecido para las imágenes a cargar, pero se recomienda que tengan una relación de aspecto de 1:1, es decir que sean cuadradas o tiendan a serlo.
- Respecto al peso de las imágenes no deben exceder los 100 KB.
- El formato de las imágenes debe ser .jpg o .png
- Con respecto a la plantilla de Excel que se elabore con las columnas anteriormente detalladas:
- No aplicar celdas combinadas
- No dejar celdas vacías (excepto las tres columnas de Catálogo1, Catálogo2 y Catálogo3).
- Colocar la ruta completa de las imágenes, ejemplo: "C:\InalambricSync\ImagenesProductos\imagen1.jpg"
2. Con el archivo Excel, se utilizará el ejecutable aSync.exe (para versiones anteriores del sincronizador usar el comando aProductFileUploadFromExcelV1.exe ) del Inalambrik Sync que será el encargado de cargar los archivos/documentos al sistema a través de la definición establecida.
3. Ejecute desde la línea de comando lo siguiente:
- c:
- cd \InalambrikSync\bin
- aSync UPLOAD_PRODUCT_IMAGES_FROM_EXCEL imports\CatalogoYellow.xlsx
4. El ejemplo anterior asume que en la carpeta imports se encuentra el archivo CatalogoYellow.xlsx.
5. Un ejemplo de esta definición se puede ver en el archivo ProductFileUploadFromExcel.bat dentro de la carpeta c:\InalambrikSync\bin\batchs
6. Al ejecutar el programa anteriormente descrito, Inalambrik Sync empezará la carga de archivos hacia el sistema de toma de pedidos y notificará durante su procesamiento alguna eventualidad o problema con cada archivo definido en el Excel de configuración.
7. Una vez terminado el proceso, se podrán visualizar los archivos cargados en Productos de la plataforma web. A su vez, esta información estará disponible en la aplicación móvil en la ficha técnica de cada producto de la compañía.
Publicando Fotos de Productos desde su ERP
Si tiene las imágenes principales de los productos grabadas en su ERP, estas pueden publicarse automáticamente definiendo el siguiente query. Cambiar la ruta 'c:\InalambrikSync\images\' si es necesario y el nombre de la base de datos origen.
SET NOCOUNT ON DECLARE @STARTED_AT DATETIME DECLARE @SECONDS_ELAPSED NUMERIC DECLARE @MSG VARCHAR(200) DECLARE @Rows int -- Comment out this line if you need to force synchronization of this table. -- DELETE FROM InalambrikSync.dbo.SyncProductBrand -- Delete temporary table if exist IF OBJECT_ID('InalambrikSync.dbo.temp_ProductFile', 'U') IS NOT NULL DROP TABLE InalambrikSync.dbo.temp_ProductFile; -- Select source data from source RAISERROR('Selecting source records ...',0,1) WITH NOWAIT SET @STARTED_AT = SYSDATETIME() SELECT * INTO InalambrikSync.dbo.temp_ProductFile FROM ( SELECT ProductCode as ProductFileProductCode ,1 as ProductFileId ,ProductName as ProductFileTitle ,ProductName as ProductFileDescription ,'c:\InalambrikSync\images\nophoto.jpg' as ProductFileSource ,SYSDATETIME() as ProductFileModifiedOn ,'A' as ProductFileStatus FROM InalambrikSync.dbo.SyncProduct ) source_data SELECT @Rows=@@ROWCOUNT SET @SECONDS_ELAPSED = DATEDIFF(SECOND,@STARTED_AT,SYSDATETIME()) SET @MSG =LTRIM(STR(@Rows))+' records selected in '+LTRIM(STR(@SECONDS_ELAPSED))+' secs' RAISERROR(@MSG,0,1) WITH NOWAIT -- If table InalambrikSync.dbo.temp_ProductFile is created IF @@ERROR = 0 BEGIN RAISERROR('Building indexes ...',0,1) WITH NOWAIT SET @STARTED_AT = SYSDATETIME() CREATE NONCLUSTERED INDEX temp_InalambrikSync_ProductFile_Index ON InalambrikSync.dbo.temp_ProductFile ( ProductFileProductCode,ProductFileId ); -- Create an index on target table to improve performance IF NOT EXISTS(SELECT * FROM InalambrikSync.sys.indexes WHERE name = 'InalambrikSync_ProductFile_Index' ) CREATE NONCLUSTERED INDEX InalambrikSync_ProductFile_Index ON InalambrikSync.dbo.PRODUCTFILE ( ProductFileProductCode,ProductFileId ); SET @SECONDS_ELAPSED = DATEDIFF(SECOND,@STARTED_AT,SYSDATETIME()) SET @MSG =LTRIM(STR(@SECONDS_ELAPSED))+' secs' RAISERROR(@MSG,0,1) WITH NOWAIT -- Update record on table SyncProductBrand when key fields are found and data fields are different RAISERROR('Updating modifed records on table SyncProductBrand ...',0,1) WITH NOWAIT SET @STARTED_AT = SYSDATETIME() UPDATE t SET t.ProductFileTitle = substring(isnull(s.ProductFileTitle,''),1,20) , t.ProductFileDescription = substring(isnull(s.ProductFileDescription,'') ,1,40) , t.ProductFileSource = substring(isnull(s.ProductFileSource,'') ,1,250) , t.ProductFileModifiedOn = isnull(s.ProductFileModifiedOn,SYSDATETIME()) , t.ProductFileStatus = isnull(s.ProductFileStatus,'A') FROM InalambrikSync.dbo.PRODUCTFILE t INNER JOIN InalambrikSync.dbo.temp_ProductFile s ON t.ProductFileProductCode COLLATE DATABASE_DEFAULT = s.ProductFileProductCode and t.ProductFileId = s.ProductFileId WHERE t.ProductFileTitle COLLATE DATABASE_DEFAULT <> substring(isnull(s.ProductFileTitle,''),1,20) or t.ProductFileDescription <> substring(isnull(s.ProductFileDescription,''),1,40) or t.ProductFileSource <> substring(isnull(s.ProductFileSource,''),1,250) or t.ProductFileStatus <> isnull(s.ProductFileStatus,'A') SELECT @Rows=@@ROWCOUNT SET @SECONDS_ELAPSED = DATEDIFF(SECOND,@STARTED_AT,SYSDATETIME()) SET @MSG =LTRIM(STR(@Rows))+' records updated in '+LTRIM(STR(@SECONDS_ELAPSED))+' secs' RAISERROR(@MSG,0,1) WITH NOWAIT -- Insert record on table SyncProductBrand when key fields are not found RAISERROR('Inserting new records on table SyncProductBrand ...',0,1) WITH NOWAIT SET @STARTED_AT = SYSDATETIME() INSERT INTO InalambrikSync.dbo.PRODUCTFILE ( ProductFileProductCode ,ProductFileId ,ProductFileTitle,ProductFileDescription,ProductFileSource,ProductFileModifiedOn,ProductFileUploadedOn,ProductFileErrorMessage ,ProductFileStatus ) SELECT s.ProductFileProductCode ,s.ProductFileId , SUBSTRING(s.ProductFileTitle,1,20), SUBSTRING(s.ProductFileDescription,1,40) ,SUBSTRING(s.ProductFileSource,1,250),s.ProductFileModifiedOn,'2000-01-01 00:00:00', '' ,s.ProductFileStatus FROM InalambrikSync.dbo.temp_ProductFile s LEFT JOIN InalambrikSync.dbo.ProductFile t ON t.ProductFileProductCode COLLATE DATABASE_DEFAULT = s.ProductFileProductCode and t.ProductFileId = s.ProductFileId WHERE t.ProductFileProductCode IS NULL SELECT @Rows=@@ROWCOUNT SET @SECONDS_ELAPSED = DATEDIFF(SECOND,@STARTED_AT,SYSDATETIME()) SET @MSG =LTRIM(STR(@Rows))+' records inserted in '+LTRIM(STR(@SECONDS_ELAPSED))+' secs' RAISERROR(@MSG,0,1) WITH NOWAIT -- Set record as deleted when is not found on source table RAISERROR('Deleting records not found on source ...',0,1) WITH NOWAIT SET @STARTED_AT = SYSDATETIME() -- Field not available on this table UPDATE t SET t.ProductFileStatus = 'X' FROM InalambrikSync.dbo.ProductFile t LEFT JOIN InalambrikSync.dbo.temp_ProductFile s ON t.ProductFileProductCode COLLATE DATABASE_DEFAULT = s.ProductFileProductCode and t.ProductFileId = s.ProductFileId WHERE s.ProductFileProductCode IS NULL AND t.ProductFileStatus <> 'X' SELECT @Rows=@@ROWCOUNT SET @SECONDS_ELAPSED = DATEDIFF(SECOND,@STARTED_AT,SYSDATETIME()) SET @MSG =LTRIM(STR(@Rows))+' records set as deleted in '+LTRIM(STR(@SECONDS_ELAPSED))+' secs' RAISERROR(@MSG,0,1) WITH NOWAIT DROP TABLE InalambrikSync.dbo.temp_ProductFile; END
2. Ejecutar el comando "aSync.exe UPLOAD_PRODUCT_IMAGES" ubicado en la carpeta 'c:\InalambrikSync\bin' para publicar las nuevas imágenes