Saltar enlaces

Ampliar la interfaz de la tienda online en el software ERP gFM Business

Ampliación de la interfaz de la tienda online en el software ERP gFM Business

Basado en la plataforma FileMaker, el Software ERP gFM-Business, que funciona en Apple macOS, Windows e iOS, contiene una función integrada de tienda en línea.Interfaz basado en REST-API, con el que se pueden transferir clientes, artículos y pedidos de la tienda a gFM-Business con sólo pulsar un botón. gFM-Business también soporta la sincronización automática de los niveles de existencias con los artículos de la tienda online. El alcance estándar incluye actualmente los sistemas de tienda Tienda 5.x, Gambio Compatible con GX3 y WooCommerce para WordPress.

Como parte de una licencia abierta de gFM-Business Básico o Profesional la interfaz de la tienda en línea con FileMaker Pro (o Advanced) también se puede ampliar para incluir campos adicionales u otro sistema de tienda en línea. En este artículo, explicamos cómo está estructurada la interfaz de la tienda en línea basada en la API REST de gFM Business y cómo puede ampliarse para incluir campos adicionales u otro sistema de tienda. Encontrará una documentación con todas las definiciones básicas y estándares de gFM-Business en aquí.


Estructura general de la interfaz integrada de la tienda en línea

La interfaz de la tienda online integrada en el software ERP gFM Business tiene una estructura sencilla y consta de los siguientes componentes:

Tiendas en línea en el módulo "Ajustes

Todas las tiendas online pueden configurarse en [Configuración > Tienda online]. Las Cuadro es la tabla "REST_API" del archivo "gFMw_Stammdaten". Si se crea una nueva tienda online, todos los datos se obtienen por referencia de la tabla "REST_API_Stamm", que también se encuentra en el archivo "gFMw_Stammdaten". Si se añade otro sistema de tiendas a la interfaz, también deberá crearse un registro de datos maestros para este sistema de tiendas en la tabla "REST_API_Stamm" para no tener que introducir todos los datos manualmente cada vez que se utilicen varias tiendas online.

settings_onlineshops

La versión pequeña gFM-Business Basic sólo soporta el uso de una tienda online por defecto. En principio, esto también se puede ampliar para que gFM-Business Basic también permita el uso de varias tiendas online. Para ello, sólo es necesario el correspondiente Portal para seleccionar la tienda online puede implementarse como en la versión Profesional. Todas las funciones y scripts también admiten varias tiendas online en la versión Básica y no necesitan ampliarse para esta función.

Mesas virtuales

Cuando se seleccionan clientes, artículos o pedidos de tienda para importar, todos los datos disponibles en el servidor de la tienda se muestran en una ventana de selección. Los datos mostrados aquí solo se almacenan temporalmente en una tabla virtual en gFM Business y se descartan después de la selección. El concepto de tablas virtuales fue presentado en la Conferencia FileMaker 2015 por Arnold Kegebein presentado. En una tabla virtual, los datos entrantes no se guardan en campos individuales, sino sólo en un campo repetido. El número de repeticiones corresponde al número de campos a mostrar en una tabla, un registro de datos corresponde a un registro de datos de los datos suministrados. Todas las tablas virtuales se encuentran en el archivo "gFM_Business.fmp12".

Una tabla virtual contiene los siguientes campos (utilizando artículos como ejemplo):

  • _fk_Article_ID (ID de artículo de gFM-Business con SQL-consulta sobre "_Shop_ID" en el maestro de artículos. Se rellena si el artículo ya existe en gFM-Business)
  • sistema_id_foreign (ID del sistema externo)
  • _sGlobal (Clave global, contiene siempre el valor 1)
  • Selección (Campo para la selección por parte del usuario de un registro de datos que debe transferirse a gFM-Business)
  • Campos de datos (Campo repetido con 6 repeticiones para 6 campos de datos de la interfaz que se mostrarán en la tabla)
  • ID_selección (Campo calculado, qué ID se seleccionó)
  • Campos de cabecera  (Campo repetido con 6 repeticiones para 6 títulos de campo de la interfaz que se mostrarán en la tabla)
  • Selección_de_objetos (Campo calculado, qué posición se seleccionó en último lugar en el conjunto de resultados)

Las otras dos tablas virtuales funcionan en principio de la misma manera, con la diferencia de que en la tabla para pedidos se comprueban los ID de factura y pedido en busca de registros de datos existentes en lugar del ID de artículo, y para clientes el ID de cliente.

En el archivo "gFM_Business.fmp12" hay tres tablas virtuales para la interfaz de la tienda online:

  • vt_selection_article (tabla virtual para visualizar datos de artículos guardados, el campo [campos de datos] contiene 6 repeticiones)
  • vt_selection_orders (tabla virtual para visualizar datos de artículos almacenados, el campo [campos de datos] contiene 9 repeticiones)
  • vt_selection_customers (tabla virtual para visualizar datos de artículos guardados, el campo [campos de datos] contiene 6 repeticiones)

Identificadores de tienda en las tablas gFM Business

Todas las tablas relevantes contienen los siguientes campos para que el software ERP gFM-Business pueda rastrear qué datos de la tienda online han sido asignados a los datos en gFM-Business:

  • Tienda_Id (contiene el ID del registro de datos correspondiente en la tienda en línea)
  • Tienda_Sistema_extranjero (contiene la información a qué sistema externo pertenece el ID de la tienda, ya que gFM-Business admite el uso de varias tiendas al mismo tiempo)

Estos campos están contenidos en las siguientes tablas de gFM-Business:

  • Artículo principal (tabla maestra de todos los productos)
  • Clientes (tabla maestra de todos los clientes)
  • Pedidos (tabla maestra de todos los pedidos)
  • Facturas (tabla maestra de todas las facturas)

Todos los scripts escuchan "REST"

Todas las secuencias de comandos asociadas a la interfaz de la tienda en línea pueden encontrarse en el campo de búsqueda de la sección Guión-editor introduciendo "rest". Cuando se entrega, la interfaz consta de un total de siete secuencias de comandos:

Todas las secuencias de comandos de la interfaz de la tienda en línea

REST_Query [sistema externo|punto final|]

Este script se utiliza para iniciar sesión en Servidoren el que se ha instalado la tienda online y se llama con los parámetros "Sistema externo" y "Endpoint". Antes de realizar una consulta al servidor de la tienda online, este script de inicio de sesión debe ejecutarse siempre en primer lugar para iniciar sesión en el servidor antes de la consulta.

Configurar grabación de errores [ On ]

Configurar UserCancelAllow [ Off ]

# 

# >>>>>>>>>> TRANSMISIÓN DE VOZ

Establecer variable [ $dg_001 ; Valor: SQLAusführen ( "SELECT \"Dialog_001\" FROM \"lg\" WHERE \"_fk_ScriptName"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID"=" & prf::_Sprache_ID ; "" ; "" ) ] 

Establecer variable [ $dg_002 ; Valor: SQLAusführen ( "SELECT \"Dialog_002\" FROM \"lg\" FROM \"lg\" WHERE \"_fk_ScriptName"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID"=" & prf::_Sprache_ID ; "" ; "" ) ] 

Establecer variable [ $dg_003 ; Valor: SQLAusführen ( "SELECT \"Dialog_003\" FROM \"lg\" WHERE \"_fk_ScriptName"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID"=" & prf::_Sprache_ID ; "" ; "" ) ] 

Establece el registro de errores y transfiere los textos de la tabla de idiomas para el diálogo de error que se muestra si falla el inicio de sesión en el servidor.

Establecer variable [ $fremdsystem ; Valor: StringColumns(Get(ScriptParameter); 1) ] 

Establecer variable [ $endpoint ; Valor: StringColumns(Get(ScriptParameter); 2) ] 

Establecer variable [ $api_url ; Valor: SQLAusführen ( "SELECT \"API_URL\" FROM \"REST_API\" WHERE "name_foreign_system"='" & $fremdsystem & "'" ; "" ; "" ) ] 

Establecer variable [ $login ; Valor: SQLAusführen ( "SELECT \"Consumer_Key\" FROM \"REST_API\" WHERE "name_foreign_system"='" & $fremdsystem & "'" ; "" ; "" ) ] 

Establecer variable [ $pass ; Valor: SQLAusführen ( "SELECT \"Consumer_Secret\" FROM \"REST_API\" WHERE "nombre_sistema_extranjero"='" & $fremdsystem & "'" ; "" ; "" ) ] 

Establezca todas las variables necesarias. Las variables para el sistema externo (nombre del sistema externo, p. ej. "WooCommerce") y el punto final (p. ej. "Punto final para artículos") se transfieren como parámetros de script desde el diálogo de usuario. Las variables $api_url, $login y $pass se toman de la tabla "REST_API" de la tienda online configurada en el archivo "gFMw_Stammdaten.fmp12".

Todos los demás comandos se utilizan para iniciar sesión en un sistema de tienda online con API RESTful y suelen ser los mismos para todos los sistemas. La siguiente secuencia de comandos parcial se corresponde en gran medida con el ejemplo suministrado del comando Plugin MBS FileMaker.

dlg.REST_selection_customers (parámetro)

Este script muestra la ventana de selección con la que se pueden seleccionar los clientes a importar basándose en los datos disponibles en la tienda online. Este script se puede llamar con los siguientes parámetros de script:

  • Importar - Este parámetro se utiliza para mostrar la ventana de selección para importar clientes de la tienda online a gFM Business. Este subguión se genera a partir del guión de ventana emergente "ts.kon_data_import" y contiene llamadas al script de la interfaz principal de todas las tiendas online, que se llaman en función de la selección.
  • Seleccionar todo - Este parámetro permite seleccionar todas las líneas de la ventana de selección.
  • Clientes_llamada - Este parámetro permite llamar a un cliente desde la ventana de selección de la ventana gFM Business.

dlg.REST_selection_orders (parámetro)

Este script muestra la ventana de selección con la que se pueden seleccionar los pedidos a importar basándose en los datos disponibles en la tienda online. Este script se puede llamar con los siguientes parámetros de script:

  • Import_Order - Este parámetro se utiliza para mostrar la ventana de selección para importar pedidos de la tienda online a gFM Business y luego importarlos como confirmación de pedido. Este subguión se genera a partir del guión de ventana emergente "ts.fak_data_import" y contiene llamadas al script de la interfaz principal de todas las tiendas online, que se llaman en función de la selección.
  • Importar_factura - Este parámetro se utiliza para mostrar la ventana de selección para importar pedidos de la tienda online a gFM Business y luego importarlos como factura. Este sub-script se genera a partir del script popover "ts.fak_data_import" y contiene llamadas al script de la interfaz principal de todas las tiendas online, que se llaman en función de la selección.
  • Seleccionar todo - Este parámetro permite seleccionar todas las líneas de la ventana de selección.
  • Llamada_de_pedido - Este parámetro permite llamar una confirmación de pedido desde la ventana de selección de la ventana gFM Business.
  • Factura_llamada - Este parámetro permite llamar una factura desde la ventana de selección de la ventana gFM Business.

dlg.REST_selection_article (parámetro)

Este script muestra la ventana de selección con la que se pueden seleccionar los artículos a importar basándose en los datos disponibles en la tienda online. Este script se puede llamar con los siguientes parámetros de script:

  • Importar - Este parámetro se utiliza para mostrar la ventana de selección para importar artículos de la tienda online a gFM Business. Este subguión se genera a partir del guión de ventana emergente "ts.art_data_import" y contiene llamadas al script de la interfaz principal de todas las tiendas online, que se llaman en función de la selección.
  • Seleccionar todo - Este parámetro permite seleccionar todas las líneas de la ventana de selección.
  • Clientes_llamada - Este parámetro permite llamar un elemento de la ventana de selección de la ventana gFM Business.

REST_Gambio_GX3_API_v210 (tipo de datos|sistema externo|{objeto|ID exportación}|)

Este script contiene todos los sub-scripts para la importación y exportación de datos en conexión con tiendas online basadas en Gambio GX3. Todos los comandos de este script se controlan a través del primer parámetro "Tipo de datos", que puede tener los siguientes valores:

  • Clientes (Script de importación para la importación automática de clientes. Con este tipo de importación no se muestra ninguna ventana de selección antes de la importación, sino que se importan automáticamente todos los clientes que aún no existen. Con este tipo de importación, existe el riesgo de importar también entradas de spam no deseadas).
  • Pedidos_Orders (Script de importación para la importación automática de pedidos de tiendas como confirmaciones de pedido. Con este tipo de importación no se muestra ninguna ventana de selección antes de la importación, sino que se importan automáticamente todos los pedidos que aún no existen. Con este tipo de importación, existe el riesgo de importar también entradas de spam no deseadas).
  • Pedidos_Facturas (Script de importación para la importación automática de pedidos de tienda como factura. Con este tipo de importación no se muestra ninguna ventana de selección antes de la importación, sino que se importan automáticamente todos los pedidos que aún no existen. Con este tipo de importación, existe el riesgo de importar también entradas de spam no deseadas).
  • Artículo (Script de importación para la importación automática de productos de la tienda en línea. Con este tipo de importación no se muestra ninguna ventana de selección antes de la importación, sino que se importan automáticamente todos los artículos que aún no existen.
  • Cliente (Script de actualización para actualizar un único cliente de la tienda online en gFM-Business. Para llamar a este script, el parámetro [ID export] debe suministrarse con el ID del registro de datos del cliente).
  • Pedidos (Script de importación para importar un único pedido de la tienda online a partir de un pedido. Para llamar a este script, el parámetro [ID export] debe suministrarse con el ID del registro de datos del pedido).
  • Facturas_pedido (Script de importación para importar un único pedido de la tienda online a partir de una factura. Para llamar a este script, el parámetro [ID export] debe suministrarse con el ID del registro de datos del pedido).
  • Artículo único (Script de importación para importar un solo artículo de la tienda online a gFM-Business. Para llamar a este script, el parámetro [ID-Export] debe suministrarse con el ID del registro de datos del artículo).
  • Selección_clientes (Script de importación para importar datos de clientes de la tienda online con ventana de selección. Las funciones dentro de la ventana de selección se controlan en el script de diálogo correspondiente [dlg.REST_Auswahl_Kunden]).
  • Selección_pedidos (Script de importación para importar pedidos de la tienda online con ventana de selección. Las funciones dentro de la ventana de selección se controlan en el script de diálogo correspondiente [dlg.REST_Auswahl_Bestellungen]).
  • Selección_de_artículos (Script de importación para importar productos de la tienda online con ventana de selección. Las funciones dentro de la ventana de selección se controlan en el script de diálogo correspondiente [dlg.REST_Auswahl_Artikel]).
  • Actualizar_stock (Este script se puede utilizar para comparar el stock de un artículo con el stock de la tienda online. El stock del servidor se sobrescribe con el stock de gFM-Business).
  • Actualizar_clientes (Este script se utiliza para actualizar los datos de los clientes en la tienda online. Los datos de la tienda online se sobrescriben con los datos de gFM-Business. Para llamar a este script, el parámetro [ID-Export] debe suministrarse con el ID del registro de datos del cliente).
  • Actualizar_estado_pedido (Este script se utiliza para actualizar el estado del pedido de la tienda online en gFM-Business. Los datos en gFM-Business se sobrescriben con los datos de la tienda online. Para llamar a este script, el parámetro [ID export] debe suministrarse con el ID del registro de datos del pedido).
  • Actualizar_artículo (Este script se utiliza para actualizar los datos de los artículos en la tienda online. Los datos de la tienda online se sobrescriben con los datos de gFM-Business. Para llamar a este script, el parámetro [ID-Export] debe suministrarse con el ID del registro de datos del artículo).

REST_WooCommerce_API_v3 (tipo de datos|sistema externo|{objeto|exportación de ID}|)

Este script contiene todos los sub-scripts para importar y exportar datos en conjunción con tiendas online basadas en WooCommerce. Este script contiene los mismos parámetros de comando que el script para tiendas online Gambio descrito anteriormente.

REST_Shopware_5x_API (tipo de datos|sistema externo|{objeto|exportación de ID}|)

Este script contiene todos los sub-scripts para importar y exportar datos en conjunción con tiendas online basadas en Shopware. Este script contiene los mismos parámetros de comando que el script para tiendas online Gambio descrito anteriormente.

Ampliar los campos de una tienda en línea existente

Los scripts de la interfaz "REST_Shopsystem" contienen todos los sub-scripts necesarios para importar datos de la tienda online. En cada subguión pertinente, los datos que deben recuperarse de la tienda se almacenan primero en un archivo Variable guardado, por ejemplo

Establecer variable [$artikel_nr ; Valor: MBS("JSON.GetStringValue"; MBS("JSON.GetObjectItem"; $objekt; "productModel" )) ]

Cuando se establece esta variable, se utilizan funciones del plugin MBS para consultar el campo [productModel] de la tienda online. En este caso, se trata de un campo de texto, por lo que se utiliza la función "JSON.GetStringValue". Para los campos numéricos, se utiliza la función "JSON.GetIntegerValue" o "JSON.GetDoubleValue". Los tipos de datos deben diferenciarse estrictamente, de lo contrario la función no podrá ejecutarse. Una vez establecidas las variables para todos los campos, los datos almacenados en las variables se escriben en las tablas de gFM-Business mediante la función MBS "FM.InsertRecord".

Para importar campos adicionales de la tienda online, simplemente cree variables adicionales para los campos adicionales deseados y amplíe la función "FM.InsertRecord" para escribir los datos en las tablas gFM Business según corresponda.

Las variables $json y $object

Para todas las funciones, los datos suministrados desde la tienda se guardan íntegramente en la variable $json. Por lo tanto, esta variable siempre contiene el flujo de datos JSON completo que se ha suministrado desde la tienda online. Dependiendo de la definición, la variable $object sólo contiene una parte de los datos suministrados, por ejemplo un registro de datos. Si desea añadir más tablas a la interfaz REST-API desde la tienda online o desde extensiones de la tienda, debe realizar una nueva consulta con el respectivo endpoint a la interfaz dentro de un script de importación. Para mayor claridad, también puede guardar el resultado JSON en una variable independiente, por ejemplo, "$json_extension_1" y "$objekt_extension_1".

Ampliación de la interfaz para incluir otra tienda en línea

Añadir una nueva tienda online que todavía no está soportada por gFM-Business es bastante sencillo en principio y consiste en los siguientes pasos:

  • Añadir la nueva tienda en línea en gFM-Business en [Configuración > Tienda online], teniendo en cuenta los datos de acceso y los puntos finales para todos los tipos de datos
  • Duplicación de un script de interfaz existentepor ejemplo, "REST_Shopware_5x_API" y renombra el nuevo script con el nombre del nuevo sistema de tienda, por ejemplo, "REST_Magento_xy_API".
  • Personalizar los campos en todas las funciones del nuevo script de importación. El requisito previo es que la nueva tienda online también disponga de una API REST. Todas las variables que ya se han tratado en la sección "Ampliación de campos para una tienda online existente" deben adaptarse. Los nombres de las variables no deben modificarse. Si se añaden nuevos campos/variables, también deben tenerse en cuenta en las funciones MBS "FM.InsertRecord" o "FM.UpdateRecord". Todos los valores JSON se leen con funciones MBS en la versión estándar de gFM-Business. También es posible sustituir estas funciones MBS por funciones de FileMaker (por ejemplo, JSONGetElement).
  • Ampliar los scripts de diálogo "dlg.REST_Auswahl_xyz". Los scripts de importación para todas las tiendas online se llaman desde estos scripts dependiendo de la selección. Si se añade un nuevo sistema de tiendas, estos scripts de selección también deben ampliarse para incluir la llamada al script de la nueva tienda online. El nombre de la tienda online configurada en [Configuración > Tienda online] debe contener la frase de texto que se consulta en estos scripts en la variable $shopsystem.

En el caso de los sistemas existentes, se recomienda duplicar el sistema productivo para la ampliación de la interfaz de la tienda y realizar primero el desarrollo en un sistema de prueba para no poner en peligro la base de datos real con las pruebas posteriores.

Ampliación de la interfaz por un socio de servicios o por nosotros

Nosotros o uno de nuestros socios de servicio estaremos encantados de ayudarle personalmente con la ampliación de la interfaz de la tienda online en el marco de una licencia abierta. Podemos implementar para usted la ampliación completa deseada u ofrecerle a usted o a su desarrollador el asesoramiento adecuado para la ampliación de la interfaz o para otras cuestiones relacionadas con el software ERP gFM-Business. No dude en ponerse en contacto con nosotros.

Más información sobre la licencia abierta del software ERP gFM-Business

Deja un comentario

Comparta esta página:

Software ERP tan flexible como su empresa.
Estaremos encantados de asesorarle.

Software ERP personalizable para Mac, Windows e iOS.

Usted se encuentra aquí: Ampliar la interfaz de tienda del software ERP gFM-Business