La solution basée sur la plateforme FileMaker Logiciel ERP gFM-Business, qui fonctionne sur Apple macOS, Windows et iOS, comprend une fonction de boutique en ligne intégrée.Interface basée sur l'API REST, qui permet de transférer les clients, les articles et les commandes de la boutique vers gFM-Business en appuyant sur un bouton. gFM-Business prend également en charge la comparaison automatique des stocks avec les articles de la boutique en ligne. Actuellement, les systèmes de boutique en ligne Shopware 5.x, Gambio GX3 et WooCommerce pour WordPress.
Dans le cadre d'une licence ouverte de gFM-Business Basic ou Professionnel l'interface de la boutique en ligne peut être étendue à d'autres champs ou à un autre système de boutique en ligne avec FileMaker Pro (ou Advanced). Dans cet article, nous expliquons comment l'interface de la boutique en ligne basée sur l'API REST dans gFM-Business est structurée et comment elle peut être étendue à d'autres champs ou à un autre système de boutique. Vous trouverez une documentation sur toutes les définitions et normes de base dans gFM-Business. ici.
Table des matières
- Structure générale de l'interface intégrée de la boutique en ligne
- Tous les scripts écoutent "REST
- REST_Query [Système externe|Endpunkt|]
- dlg.REST_Sélection_Clients (paramètre)
- dlg.REST_Sélection_Commandes (paramètres)
- dlg.REST_Sélection_Article (paramètre)
- REST_Gambio_GX3_API_v210 (type de données|système tiers|{objet|exportation ID}|)
- REST_WooCommerce_API_v3 (Type de données|Système tiers|{Objet|ID-Export}|)
- REST_Shopware_5x_API (Type de données|Système tiers|{Objet|ID-Export}|)
- Élargir les champs d'une boutique en ligne existante
- Étendre l'interface à une autre boutique en ligne
- Extension de l'interface par un partenaire de service ou par nous-mêmes
Structure générale de l'interface intégrée de la boutique en ligne
L'interface de la boutique en ligne intégrée dans le logiciel ERP gFM-Business a été conçue de manière structurellement simple et se compose des éléments suivants :
Boutiques en ligne dans le module "Paramètres
Toutes les boutiques en ligne peuvent être configurées sous [Paramètres > Boutique en ligne]. La Tableau est la table "REST_API" du fichier "gFMw_Stammdaten". Si une nouvelle boutique en ligne est créée, toutes les données sont obtenues par référence à la table "REST_API_Stamm", qui se trouve également dans le fichier "gFMw_Stammdaten". Si un autre système de boutique en ligne est ajouté à l'interface, il convient de créer également un enregistrement de données de base pour ce système de boutique en ligne dans la table "REST_API_Stamm", afin de ne pas devoir saisir manuellement toutes les données à chaque fois que plusieurs boutiques en ligne sont utilisées.
Par défaut, la petite version de gFM-Business Basic ne prend en charge que l'utilisation d'une seule boutique en ligne. En principe, il est possible d'étendre cette fonction de manière à ce que gFM-Business Basic permette également l'utilisation de plusieurs boutiques en ligne. Pour cela, il suffit de créer un Portail pour la sélection de la boutique en ligne peut être implémentée comme dans la version professionnelle. Toutes les fonctions et tous les scripts supportent en principe plusieurs boutiques en ligne, même dans la version Basic, et ne nécessitent pas d'extension supplémentaire pour cette fonction.
Tableaux virtuels
Lors de la sélection de clients, d'articles ou de commandes de la boutique à importer, toutes les données disponibles sur le serveur de la boutique sont affichées dans une fenêtre de sélection. Les données affichées ici ne sont stockées que temporairement dans une table virtuelle dans gFM-Business et sont rejetées après la sélection. Le concept des tables virtuelles a été présenté par Arnold Kegebein lors de la conférence FileMaker 2015. présenté. Dans une table virtuelle, les données entrantes ne sont pas enregistrées dans des champs individuels, mais uniquement dans un champ répétitif. Le nombre de répétitions correspond alors au nombre de champs à afficher dans une table, un enregistrement correspond à un enregistrement des données fournies. Toutes les tables virtuelles se trouvent dans le fichier "gFM_Business.fmp12".
Une table virtuelle contient les champs suivants (dans l'exemple des articles) :
- _fk_ID_article (ID d'article de gFM-Business avec SQL-Query sur "_Shop_ID" dans la base de données articles. Rempli si l'article existe déjà dans gFM-Business)
- _id_Système tiers (ID du système tiers)
- _sGlobal (clé globale, contient toujours la valeur 1)
- Sélection (champ pour la sélection par l'utilisateur d'un enregistrement qui doit être transféré dans gFM-Business)
- Champs de données (champ répétitif avec 6 répétitions pour 6 champs de données de l'interface à afficher dans la table)
- ID_Sélection (Champ calculé, quel ID a été sélectionné)
- Champs de tête (champ répétitif avec 6 répétitions pour 6 titres de champ de l'interface à afficher dans le tableau)
- Objet_Sélection (Champ calculé indiquant la dernière position sélectionnée dans le jeu d'enregistrements trouvés)
Les deux autres tables virtuelles fonctionnent en principe de la même manière, à la différence que dans la table pour les commandes, ce n'est pas l'ID de l'article qui est vérifié, mais l'ID de la facture et de la commande, et pour les clients, l'ID du client pour les enregistrements existants.
Pour l'interface de la boutique en ligne, il y a trois tables virtuelles dans le fichier "gFM_Business.fmp12" :
- vt_sélection_article (table virtuelle pour l'affichage des données d'articles enregistrées, le champ [champs de données] contient 6 répétitions)
- vt_sélection_commandes (table virtuelle pour l'affichage des données d'articles enregistrées, le champ [champs de données] contient 9 répétitions)
- vt_sélection_clients (table virtuelle pour l'affichage des données d'articles enregistrées, le champ [champs de données] contient 6 répétitions)
ID de magasin dans les tableaux de gFM Business
Afin de pouvoir suivre dans le logiciel ERP gFM-Business quelles données de la boutique en ligne ont été attribuées aux données dans gFM-Business, tous les tableaux pertinents contiennent les champs suivants :
- _Shop_Id (contient l'ID de l'enregistrement correspondant dans la boutique en ligne)
- _Shop_Système tiers (contient l'information à quel système tiers appartient l'ID de la boutique, car gFM-Business supporte l'utilisation de plusieurs boutiques en même temps)
Ces champs sont contenus dans les tables suivantes de gFM-Business :
- Base de données articles (Tableau de base de tous les produits)
- Clients (Tableau de base de tous les clients)
- Commandes (Tableau de base de toutes les commandes)
- Factures (Tableau de base de toutes les factures)
Tous les scripts écoutent "REST
Tous les scripts associés à l'interface de la boutique en ligne peuvent être recherchés dans le champ de recherche de l'interface. Script-en tapant "rest" dans l'éditeur de texte. A la livraison, l'interface se compose de sept scripts au total :
REST_Query [Système externe|Endpunkt|]
Ce script sert à l'inscription au Serveursur lequel la boutique en ligne a été installée et est appelé avec les paramètres "Système tiers" et "Point final". Avant d'effectuer une requête sur le serveur de la boutique en ligne, il faut toujours commencer par exécuter ce script de connexion pour se connecter au serveur avant la requête.
Définir l'enregistrement des erreurs [ Activé ] Activer Autoriser annulation utilisateur [ Arrêt ] # # >>>>>>>>>> TRANSMISSION DE LA VOIX Définir la variable [ $dg_001 ; Valeur : Exécution SQLA ( "SELECT \"Dialog_001\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\N"=" & prf::_Sprache_ID ; "" ; "" ) ] Définir la variable [ $dg_002 ; Valeur : Exécution SQLA ( "SELECT \"Dialogue_002\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\N"=" & prf::_Sprache_ID ; "" ; "" ) ] Définir la variable [ $dg_003 ; Valeur : Exécuter SQLA ( "SELECT \"Dialogue_003\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\N"=" & prf::_Sprache_ID ; "" ; "" ) ]
Définit l'enregistrement des erreurs et transfère les textes de la table des langues pour le dialogue d'erreur qui s'affiche si la connexion au serveur échoue.
Définir la variable [ $fremdsystem ; Valeur : StringSpalten(Hole(ScriptParameter) ; 1) ] Définir la variable [ $endpoint ; Valeur : StringSpalten(Hole(ScriptParameter) ; 2) ] Définir la variable [ $api_url ; Valeur : Exécution SQLA ( "SELECT \"API_URL\" FROM \"REST_API\" WHERE \NNom_du_système_externe\"='" & $fremdsystem & "'" ; "" ; "" ) ] Définir la variable [ $login ; Valeur : Exécution SQLA ( "SELECT \"Consumer_Key\" FROM \"REST_API\" WHERE \NNom_du_système_étranger\"='" & $fremdsystem & "'" ; "" ; "" ) ] Définir la variable [ $pass ; Valeur : Exécution SQLA ( "SELECT \"Consumer_Secret\" FROM \"REST_API\" WHERE \"Nom_Système_étranger\"='" & $fremdsystem & "'" ; "" ; "" ) ]
Définition de toutes les variables nécessaires. Les variables pour le système tiers (nom du système tiers, par ex. "WooCommerce") et le point final (par ex. "point final pour les articles") sont transmises comme paramètres de script depuis le dialogue utilisateur. Les variables $api_url, $login et $pass sont reprises de la table "REST_API" de la boutique en ligne mise en place dans le fichier "gFMw_Stammdaten.fmp12".
Toutes les autres commandes servent à la connexion à un système de boutique en ligne avec API RESTful et est en général identique pour tous les systèmes. Le script partiel suivant correspond en grande partie à l'exemple fourni par le Plugin MBS FileMaker.
dlg.REST_Sélection_Clients (paramètre)
Ce script affiche la fenêtre de sélection qui permet de choisir les clients à importer à partir des données disponibles sur la boutique en ligne. Ce script peut être appelé avec les paramètres de script suivants :
- Importation - Ce paramètre est utilisé pour afficher la fenêtre de sélection pour l'importation de clients depuis la boutique en ligne dans gFM-Business. Ce sous-script est créé à partir du script popover "ts.kon_importation_de_données" et contient des appels pour le script d'interface principal de toutes les boutiques en ligne, qui sont appelés en fonction de la sélection.
- Sélectionner tout - Ce paramètre permet de sélectionner toutes les lignes dans la fenêtre de sélection.
- Appeler_le_client - Ce paramètre permet d'appeler un client à partir de la fenêtre de sélection dans la fenêtre gFM-Business.
dlg.REST_Sélection_Commandes (paramètres)
Ce script affiche la fenêtre de sélection qui permet de choisir les commandes à importer sur la base des données disponibles sur la boutique en ligne. Ce script peut être appelé avec les paramètres de script suivants :
- ordre_d'importation - Ce paramètre est utilisé pour afficher la fenêtre de sélection pour l'importation des commandes de la boutique en ligne dans gFM-Business et pour les importer ensuite comme confirmation de commande. Ce sous-script est créé à partir du script popover "ts.fak_Importation de données" et contient des appels pour le script d'interface principal de toutes les boutiques en ligne, qui sont appelés en fonction de la sélection.
- Import_Facture - Ce paramètre est utilisé pour afficher la fenêtre de sélection pour l'importation des commandes de la boutique en ligne dans gFM-Business et pour les importer ensuite en tant que facture. Ce sous-script est créé à partir du script popover "ts.fak_Importation de données" et contient des appels pour le script d'interface principal de toutes les boutiques en ligne, qui sont appelés en fonction de la sélection.
- Sélectionner tout - Ce paramètre permet de sélectionner toutes les lignes dans la fenêtre de sélection.
- Appeler_ordre - Ce paramètre permet d'appeler une confirmation de commande à partir de la fenêtre de sélection dans la fenêtre gFM-Business.
- Consulter_la_facture - Ce paramètre permet d'appeler une facture à partir de la fenêtre de sélection dans la fenêtre gFM-Business.
dlg.REST_Sélection_Article (paramètre)
Ce script affiche la fenêtre de sélection qui permet de choisir les articles à importer à partir des données disponibles sur la boutique en ligne. Ce script peut être appelé avec les paramètres de script suivants :
- Importation - Ce paramètre est utilisé pour afficher la fenêtre de sélection pour l'importation d'articles de la boutique en ligne dans gFM-Business. Ce sous-script est créé à partir du script popover "ts.art_Importation de données" et contient des appels pour le script d'interface principal de toutes les boutiques en ligne, qui sont appelés en fonction de la sélection.
- Sélectionner tout - Ce paramètre permet de sélectionner toutes les lignes dans la fenêtre de sélection.
- Appeler_le_client - Ce paramètre permet d'appeler un article à partir de la fenêtre de sélection dans la fenêtre gFM-Business.
REST_Gambio_GX3_API_v210 (type de données|système tiers|{objet|exportation ID}|)
Ce script contient tous les sous-scripts pour l'importation et l'exportation de données en relation avec les boutiques en ligne basées sur Gambio GX3. Toutes les commandes de ce script sont contrôlées par le premier paramètre "Type de données", qui peut prendre les valeurs suivantes :
- Clients (Script d'importation pour l'importation automatique de clients. Avec ce type d'importation, aucune fenêtre de sélection n'est affichée avant l'importation, mais tous les clients qui n'existent pas encore sont importés automatiquement. Avec ce type d'importation, il y a un risque d'importer également des entrées de spam non souhaitées).
- commandes_commandes (Script d'importation pour l'importation automatique des commandes du shop comme confirmation de commande. Avec ce type d'importation, aucune fenêtre de sélection n'est affichée avant l'importation, mais toutes les commandes qui n'existent pas encore sont importées automatiquement. Avec ce type d'importation, il existe le risque d'importer également des entrées de spam non souhaitées).
- commandes_factures (Script d'importation pour l'importation automatique des commandes du shop sous forme de facture. Avec ce type d'importation, aucune fenêtre de sélection n'est affichée avant l'importation, mais toutes les commandes qui n'existent pas encore sont importées automatiquement. Avec ce type d'importation, il y a un risque d'importer également des entrées de spam non souhaitées).
- Article (Script d'importation pour l'importation automatique de produits de la boutique en ligne. Avec ce type d'importation, aucune fenêtre de sélection ne s'affiche avant l'importation, mais tous les articles qui n'existent pas encore sont importés automatiquement.
- Client (Script de mise à jour pour mettre à jour un seul client de la boutique en ligne dans gFM-Business. Pour l'appel de ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement du client).
- commande_commandes (Script d'importation pour importer une seule commande de la boutique en ligne à partir d'une commande. Pour l'appel de ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement de la commande).
- commande_factures (Script d'importation pour importer une seule commande de la boutique en ligne à partir d'une facture. Pour l'appel de ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement de la commande).
- Articles individuels (Script d'importation pour importer un seul article de la boutique en ligne dans gFM-Business. Pour appeler ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement de l'article).
- Sélection_client (Script d'importation pour l'importation de données clients depuis la boutique en ligne avec fenêtre de sélection. Les fonctions à l'intérieur de la fenêtre de sélection sont contrôlées dans le script de dialogue correspondant [dlg.REST_Auswahl_Kunden]).
- commandes_sélection (script d'importation pour l'importation de commandes de la boutique en ligne avec fenêtre de sélection. Les fonctions à l'intérieur de la fenêtre de sélection sont contrôlées dans le script de dialogue correspondant [dlg.REST_Auswahl_Bestellungen]).
- Article_Sélection (script d'importation pour l'importation de produits de la boutique en ligne avec fenêtre de sélection. Les fonctions à l'intérieur de la fenêtre de sélection sont contrôlées dans le script de dialogue correspondant [dlg.REST_Auswahl_Artikel]).
- Mise à jour_stock (Ce script permet de comparer le stock d'un article avec le stock de la boutique en ligne. Pour cela, le stock sur le serveur est remplacé par le stock de gFM-Business).
- Mise à jour_Clients (Ce script sert à actualiser les données des clients dans la boutique en ligne. Pour cela, les données de la boutique en ligne sont écrasées par les données de gFM-Business. Pour l'appel de ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement du client).
- Update_Statut_de_la_commande (Ce script sert à actualiser le statut des commandes de la boutique en ligne dans gFM-Business. Les données de gFM-Business sont alors remplacées par les données de la boutique en ligne. Pour l'appel de ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement de la commande).
- Mise à jour_article (Ce script sert à actualiser les données des articles dans la boutique en ligne. Pour cela, les données de la boutique en ligne sont écrasées par les données de gFM-Business. Pour appeler ce script, le paramètre [ID-Export] doit être fourni avec l'ID de l'enregistrement de l'article).
REST_WooCommerce_API_v3 (Type de données|Système tiers|{Objet|ID-Export}|)
Ce script contient tous les sous-scripts pour l'importation et l'exportation de données en relation avec les boutiques en ligne basées sur WooCommerce. Ce script contient les mêmes paramètres de commande que le script décrit précédemment pour les boutiques en ligne Gambio.
REST_Shopware_5x_API (Type de données|Système tiers|{Objet|ID-Export}|)
Ce script contient tous les sous-scripts pour l'importation et l'exportation de données en relation avec les boutiques en ligne basées sur Shopware. Ce script contient les mêmes paramètres de commande que le script décrit précédemment pour les boutiques en ligne Gambio.
Élargir les champs d'une boutique en ligne existante
Dans les scripts d'interface "REST_Shopsystem" se trouvent tous les sous-scripts nécessaires à l'importation des données de la boutique en ligne. Dans chaque sous-script pertinent, les données à demander à la boutique en ligne sont tout d'abord enregistrées dans un fichier de données. Variable enregistré, par exemple
Définir la variable [$artikel_nr ; Valeur : MBS("JSON.GetStringValue" ; MBS("JSON.GetObjectItem" ; $objekt ; "productModel" )) ]
Lorsque cette variable est définie, une requête est effectuée sur le champ [productModel] de la boutique en ligne à l'aide des fonctions du plug-in MBS. Dans ce cas, il s'agit d'un champ texte, c'est pourquoi la fonction "JSON.GetStringValue" est utilisée. Pour les champs numériques, on utilise soit la fonction "JSON.GetIntegerValue", soit la fonction "JSON.GetDoubleValue". Les types de données doivent être strictement différenciés, sinon la fonction ne peut pas être exécutée. Une fois que les variables ont été définies pour tous les champs, les données enregistrées dans les variables sont écrites dans les tables de gFM-Business à l'aide de la fonction MBS "FM.InsertRecord".
Pour importer d'autres champs de la boutique en ligne, il suffit de créer d'autres variables pour les autres champs souhaités et d'étendre en conséquence la fonction "FM.InsertRecord" pour l'écriture des données dans les tableaux gFM-Business.
Les variables $json et $objet
Pour toutes les fonctions, les données fournies par la boutique en ligne sont entièrement enregistrées dans la variable $json. Cette variable contient donc toujours le flux de données JSON complet qui a été livré depuis la boutique en ligne. Selon sa définition, la variable $objet ne contient qu'une partie des données livrées, par exemple un enregistrement. Si vous souhaitez ajouter d'autres tables de l'interface API REST à partir de la boutique en ligne ou également à partir des extensions de la boutique, vous devez effectuer une nouvelle requête avec le point final correspondant sur l'interface au sein d'un script d'importation. Pour plus de clarté, vous pouvez alors également enregistrer le résultat JSON dans une variable propre, par ex. "$json_extension_1" et "$objet_extension_1".
Étendre l'interface à une autre boutique en ligne
L'ajout d'une nouvelle boutique en ligne qui n'est pas encore prise en charge par gFM-Business est en principe assez simple et se compose des étapes suivantes :
- Ajouter la nouvelle boutique en ligne dans gFM-Business sous [Paramètres > Boutique en ligne] en tenant compte des données de connexion et des points finaux pour tous les types de données
- Dupliquer un script d'interface existantRenommer le script avec le nom du nouveau système de boutique, par exemple "REST_Shopware_5x_API" et "REST_Magento_xy_API".
- Adaptation des champs dans toutes les fonctions du nouveau script d'importation. La condition préalable est que la nouvelle boutique en ligne dispose également d'une API REST. Il faut adapter toutes les variables qui ont déjà été abordées dans la section "Extension des champs pour une boutique en ligne existante". Les noms des variables ne doivent pas être modifiés. Si de nouveaux champs/variables sont ajoutés, ils doivent également être pris en compte dans les fonctions MBS "FM.InsertRecord" ou "FM.UpdateRecord". Toutes les valeurs JSON sont lues dans la version standard de gFM-Business avec des fonctions MBS. Il est également possible de remplacer ces fonctions MBS par des fonctions FileMaker (par ex. JSONGetElement).
- Étendre les scripts de dialogue "dlg.REST_Sélection_xyz. Les scripts d'importation de toutes les boutiques en ligne sont appelés à partir de ces scripts, en fonction de la sélection. Si un nouveau système de boutique en ligne est ajouté, ces scripts de sélection doivent également être complétés par l'appel de script pour la nouvelle boutique en ligne. Le nom de la boutique en ligne configurée sous [Paramètres > Boutique en ligne] doit contenir la phrase de texte qui est interrogée dans ces scripts dans la variable $shopsystem.
Pour les systèmes existants, nous recommandons de dupliquer le système de production pour l'extension de l'interface de la boutique et d'effectuer le développement sur un système de test dans un premier temps, afin de ne pas mettre en péril le stock de données réel lors des tests ultérieurs.
Extension de l'interface par un partenaire de service ou par nous-mêmes
Nous ou l'un de nos partenaires de service sommes également à votre disposition pour vous aider à étendre l'interface de la boutique en ligne dans le cadre d'une licence ouverte. Nous pouvons soit implémenter l'extension complète souhaitée, soit vous proposer, à vous ou à votre développeur, un coaching approprié pour l'extension de l'interface ou pour d'autres questions relatives au logiciel ERP gFM-Business. N'hésitez pas à nous contacter !
Plus d'informations sur la licence ouverte du logiciel ERP gFM-Business

Markus Schall développe depuis 1994 des bases de données individuelles, des interfaces et des applications commerciales sur la base de Claris FileMaker. Il est partenaire de Claris, lauréat du FMM-Award 2011 et développeur du logiciel ERP gFM-Business. Il est en outre auteur de livres et fondateur du M. Schall Verlags.


