Basato sulla piattaforma FileMaker, il Software ERP gFM-Business, che funziona su Apple macOS, Windows e iOS, contiene una funzione di negozio online integrata.Interfaccia basato su REST-API, con il quale è possibile trasferire clienti, articoli e ordini del negozio a gFM-Business con la semplice pressione di un tasto. gFM-Business supporta anche la sincronizzazione automatica dei livelli di stock con gli articoli del negozio online. L'ambito di applicazione standard comprende attualmente i sistemi di negozio Articoli per negozi 5.x, Gambio GX3 e WooCommerce per WordPress supportati.
Come parte di una licenza aperta da gFM-Business Basic o Professionale l'interfaccia del negozio online con FileMaker Pro (o Advanced) può essere ampliata per includere campi aggiuntivi o un altro sistema di negozio online. In questo articolo spieghiamo come è strutturata l'interfaccia del negozio online basata su API REST in gFM Business e come può essere ampliata per includere campi aggiuntivi o un altro sistema di negozio. La documentazione di tutte le definizioni e gli standard di base di gFM-Business è disponibile all'indirizzo qui.
Indice dei contenuti
- Struttura generale dell'interfaccia del negozio online integrato
- Tutti gli script ascoltano "REST
- REST_Query [sistema esterno|endpoint|]
- dlg.REST_selection_customers (parametro)
- dlg.REST_selection_orders (parametro)
- dlg.REST_selection_article (parametro)
- REST_Gambio_GX3_API_v210 (tipo di dati|sistema esterno|{oggetto|ID export}|)
- REST_WooCommerce_API_v3 (tipo di dati|sistema esterno|{oggetto|ID export}|)
- REST_Shopware_5x_API (tipo di dati|sistema esterno|{oggetto|ID export}|)
- Estensione dei campi di un negozio online esistente
- Espansione dell'interfaccia per includere un altro negozio online
- Estensione dell'interfaccia da parte di un partner di servizio o da parte nostra
Struttura generale dell'interfaccia del negozio online integrato
L'interfaccia del negozio online integrata nel software ERP gFM Business ha una struttura semplice e consiste nei seguenti componenti:
Negozi online nel modulo "Impostazioni
Tutti i negozi online possono essere impostati in [Impostazioni > Negozio online]. Il sottostante Tabella è la tabella "REST_API" del file "gFMw_Stammdaten". Se viene creato un nuovo negozio online, tutti i dati sono ottenuti per riferimento dalla tabella "REST_API_Stamm", che si trova anch'essa nel file "gFMw_Stammdaten". Se all'interfaccia viene aggiunto un altro sistema di negozi, nella tabella "REST_API_Stamm" deve essere creato anche un record di dati anagrafici per questo sistema di negozi, in modo da non dover inserire manualmente tutti i dati ogni volta che si utilizzano più negozi online.
La versione piccola di gFM-Business Basic supporta di default l'uso di un solo negozio online. In linea di principio, è possibile estenderla in modo che gFM-Business Basic consenta anche l'utilizzo di più negozi online. A tal fine, è sufficiente un corrispondente Portale per la selezione del negozio online può essere implementato come nella versione Professional. Tutte le funzioni e gli script supportano anche più negozi online nella versione Basic e non devono essere estesi per questa funzione.
Tavoli virtuali
Quando si selezionano i clienti, gli articoli o gli ordini del negozio da importare, tutti i dati disponibili sul server del negozio vengono visualizzati in una finestra di selezione. I dati visualizzati sono memorizzati solo temporaneamente in una tabella virtuale di gFM Business e vengono eliminati dopo la selezione. Il concetto di tabelle virtuali è stato presentato alla Conferenza FileMaker 2015 da Arnold Kegebein. presentato. In una tabella virtuale, i dati in arrivo non vengono salvati in singoli campi, ma solo in un campo ripetuto. Il numero di ripetizioni corrisponde al numero di campi da visualizzare in una tabella, un record di dati corrisponde a un record dei dati forniti. Tutte le tabelle virtuali si trovano nel file "gFM_Business.fmp12".
Una tabella virtuale contiene i seguenti campi (utilizzando come esempio gli articoli):
- _fk_Articolo_ID (ID articolo da gFM-Business con SQL-query su "_Shop_ID" nell'anagrafica dell'articolo. Compilata se l'articolo esiste già in gFM-Business)
- sistema_estero (ID del sistema esterno)
- _sGlobale (chiave globale, contiene sempre il valore 1)
- Selezione (Campo per la selezione da parte dell'utente di un record di dati da trasferire a gFM-Business)
- Campi dati (Campo ripetuto con 6 ripetizioni per 6 campi dati dell'interfaccia da visualizzare nella tabella)
- Selezione_ID (Campo calcolato, quale ID è stato selezionato)
- Campi dell'intestazione (Campo ripetuto con 6 ripetizioni per 6 titoli di campo dell'interfaccia da visualizzare nella tabella)
- Selezione_oggetto (Campo calcolato, quale posizione è stata selezionata per ultima nel set di risultati)
Le altre due tabelle virtuali funzionano in linea di principio allo stesso modo, con la differenza che nella tabella degli ordini vengono controllati gli ID della fattura e dell'ordine per i record di dati esistenti, anziché l'ID dell'articolo, e per i clienti l'ID del cliente.
Nel file "gFM_Business.fmp12" sono presenti tre tabelle virtuali per l'interfaccia del negozio online:
- vt_selection_article (tabella virtuale per la visualizzazione dei dati degli articoli salvati, il campo [campi dati] contiene 6 ripetizioni)
- vt_selection_orders (tabella virtuale per la visualizzazione dei dati degli articoli salvati, il campo [campi dati] contiene 9 ripetizioni)
- vt_selection_customers (tabella virtuale per la visualizzazione dei dati degli articoli salvati, il campo [campi dati] contiene 6 ripetizioni)
ID negozio nelle tabelle Business di gFM
Tutte le tabelle pertinenti contengono i seguenti campi, in modo che il software ERP gFM-Business possa tenere traccia di quali dati del negozio online sono stati assegnati ai dati in gFM-Business:
- _Identità del negozio (contiene l'ID del corrispondente record di dati nel negozio online)
- Sistema_Officina_Estero (contiene l'informazione a quale sistema di terze parti appartiene l'ID del negozio, poiché gFM-Business supporta l'uso di più negozi contemporaneamente)
Questi campi sono contenuti nelle seguenti tabelle di gFM-Business:
- Articolo master (tabella principale di tutti i prodotti)
- Clienti (tabella principale di tutti i clienti)
- Ordini (tabella principale di tutti gli ordini)
- Fatture (tabella principale di tutte le fatture)
Tutti gli script ascoltano "REST
Tutti gli script associati all'interfaccia del negozio online possono essere trovati nel campo di ricerca dell'applicazione Scrittura-editor inserendo "rest". Una volta consegnata, l'interfaccia è composta da un totale di sette script:
REST_Query [sistema esterno|endpoint|]
Questo script viene utilizzato per accedere al sistema Serversul quale è stato installato il negozio online e viene richiamato con i parametri "Sistema esterno" ed "Endpoint". Prima di effettuare un'interrogazione al server del negozio online, questo script di login deve essere sempre eseguito per accedere al server prima dell'interrogazione.
Impostare la registrazione degli errori [ On ] Impostare UserCancelAllow [ Off ] # # >>>>>>>>>> TRASMISSIONE VOCALE Impostare la variabile [ $dg_001 ; Valore: SQLAusführen ("SELECT \"Dialog_001\" FROM \"lg" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\"=" & prf::_Sprache_ID ; "" ; "" ) ] Impostare la variabile [ $dg_002 ; Valore: SQLAusführen ( "SELECT \"Dialog_002" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\"=" & prf::_Sprache_ID ; "" ; "" ) ] Impostare la variabile [ $dg_003 ; Valore: SQLAusführen ( "SELECT \"Dialog_003\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\"=" & prf::_Sprache_ID ; "" ; "" ) ]
Imposta la registrazione degli errori e trasferisce i testi dalla tabella delle lingue per il dialogo di errore che viene visualizzato se il login al server non riesce.
Impostare la variabile [ $fremdsystem ; Valore: StringColumns(Get(ScriptParameter); 1) ] Impostare la variabile [ $endpoint ; Valore: StringColumns(Get(ScriptParameter); 2) ] Impostare la variabile [ $api_url ; Valore: SQLAusführen ( "SELECT \"API_URL" DA ´"REST_API" WHERE \"name_foreign_system"='" & $fremdsystem & "'" ; "" ; "" ) ] Impostare la variabile [ $login ; Valore: SQLAusführen ( "SELECT \"Consumer_Key\" DA \"REST_API" WHERE \"name_foreign_system"='" & $fremdsystem & "'" ; "" ; "" ) ] Impostare la variabile [ $pass ; Valore: SQLAusführen ( "SELECT \"Consumer_Secret\" DA \"REST_API" WHERE \"name_foreign_system\"='" & $fremdsystem & "'" ; "" ; "" ) ]
Impostare tutte le variabili necessarie. Le variabili per il sistema esterno (nome del sistema esterno, ad es. "WooCommerce") e il punto finale (ad es. "Punto finale per gli articoli") vengono trasferite come parametri di script dalla finestra di dialogo dell'utente. Le variabili $api_url, $login e $pass sono prese dalla tabella "REST_API" del negozio online impostata nel file "gFMw_Stammdaten.fmp12".
Tutti gli altri comandi sono utilizzati per accedere a un sistema di negozio online con API RESTful e sono generalmente gli stessi per tutti i sistemi. Il seguente script parziale corrisponde in gran parte all'esempio fornito del programma Plugin MBS FileMaker.
dlg.REST_selection_customers (parametro)
Questo script visualizza la finestra di selezione con cui è possibile selezionare i clienti da importare in base ai dati disponibili nel negozio online. Questo script può essere richiamato con i seguenti parametri di script:
- Importazione - Questo parametro viene utilizzato per visualizzare la finestra di selezione per importare i clienti dal negozio online in gFM Business. Questo sotto-script è generato dallo script del popover "ts.kon_data_import" e contiene le chiamate per lo script dell'interfaccia principale di tutti i negozi online, che vengono richiamate a seconda della selezione.
- Seleziona tutti - Questo parametro può essere utilizzato per selezionare tutte le righe della finestra di selezione.
- Clienti_chiamati - Questo parametro può essere utilizzato per richiamare un cliente dalla finestra di selezione nella finestra Business di gFM.
dlg.REST_selection_orders (parametro)
Questo script visualizza la finestra di selezione con cui è possibile selezionare gli ordini da importare in base ai dati disponibili nel negozio online. Questo script può essere richiamato con i seguenti parametri di script:
- Ordine_di_importazione - Questo parametro viene utilizzato per visualizzare la finestra di selezione per importare gli ordini dal negozio online in gFM Business e quindi importarli come conferma d'ordine. Questo sotto-script viene generato dallo script del popover "ts.fak_data_import" e contiene le chiamate per lo script dell'interfaccia principale di tutti i negozi online, che vengono richiamate a seconda della selezione.
- Importazione_fattura - Questo parametro viene utilizzato per visualizzare la finestra di selezione per importare gli ordini dal negozio online in gFM Business e quindi importarli come fattura. Questo sotto-script viene generato dallo script del popover "ts.fak_data_import" e contiene le chiamate per lo script dell'interfaccia principale di tutti i negozi online, che vengono richiamate a seconda della selezione.
- Seleziona tutti - Questo parametro può essere utilizzato per selezionare tutte le righe della finestra di selezione.
- Chiamata d'ordine - Questo parametro può essere utilizzato per richiamare una conferma d'ordine dalla finestra di selezione nella finestra Business di gFM.
- Fattura_chiamata - Questo parametro può essere utilizzato per richiamare una fattura dalla finestra di selezione della finestra Business di gFM.
dlg.REST_selection_article (parametro)
Questo script visualizza la finestra di selezione con cui è possibile selezionare gli articoli da importare in base ai dati disponibili nel negozio online. Questo script può essere richiamato con i seguenti parametri di script:
- Importazione - Questo parametro viene utilizzato per visualizzare la finestra di selezione per l'importazione di articoli dal negozio online in gFM Business. Questo sotto-script viene generato dallo script del popover "ts.art_data_import" e contiene le chiamate per lo script dell'interfaccia principale di tutti i negozi online, che vengono richiamate a seconda della selezione.
- Seleziona tutti - Questo parametro può essere utilizzato per selezionare tutte le righe della finestra di selezione.
- Clienti_chiamati - Questo parametro può essere utilizzato per richiamare un elemento dalla finestra di selezione nella finestra Business di gFM.
REST_Gambio_GX3_API_v210 (tipo di dati|sistema esterno|{oggetto|ID export}|)
Questo script contiene tutti i sotto-script per l'importazione e l'esportazione di dati in relazione ai negozi online basati su Gambio GX3. Tutti i comandi di questo script sono controllati dal primo parametro "Tipo di dati", che può avere i seguenti valori:
- Clienti (script di importazione per l'importazione automatica dei clienti. Con questo tipo di importazione non viene visualizzata alcuna finestra di selezione prima dell'importazione, ma vengono importati automaticamente tutti i clienti non ancora esistenti. Con questo tipo di importazione, c'è il rischio di importare anche voci di spam indesiderate).
- Ordini_Ordini (Script di importazione per l'importazione automatica degli ordini del negozio come conferme d'ordine. Con questo tipo di importazione non viene visualizzata alcuna finestra di selezione prima dell'importazione, ma tutti gli ordini non ancora esistenti vengono importati automaticamente. Con questo tipo di importazione, c'è il rischio di importare anche voci di spam indesiderate).
- Ordini_Fatture (Script di importazione per l'importazione automatica degli ordini del negozio come fattura. Con questo tipo di importazione non viene visualizzata alcuna finestra di selezione prima dell'importazione, ma tutti gli ordini non ancora esistenti vengono importati automaticamente. Con questo tipo di importazione c'è il rischio di importare anche voci di spam indesiderate).
- Articolo (script di importazione per l'importazione automatica di prodotti dal negozio online. Con questo tipo di importazione, non viene visualizzata alcuna finestra di selezione prima dell'importazione, ma vengono importati automaticamente tutti gli articoli non ancora esistenti.
- Cliente (script di aggiornamento per aggiornare un singolo cliente del negozio online in gFM-Business. Per chiamare questo script, il parametro [ID export] deve essere fornito con l'ID del record di dati del cliente).
- Ordini (Script di importazione per importare un singolo ordine dal negozio online da un ordine. Per chiamare questo script, il parametro [ID export] deve essere fornito con l'ID del record di dati dell'ordine).
- Fatture_ordine (Script di importazione per importare un singolo ordine dal negozio online da una fattura. Per chiamare questo script, il parametro [ID export] deve essere fornito con l'ID del record di dati dell'ordine).
- Articolo singolo (Script di importazione per importare un singolo articolo dal negozio online in gFM-Business. Per richiamare questo script, il parametro [ID-Export] deve essere fornito con l'ID del record di dati dell'articolo).
- Selezione_clienti (Script di importazione per importare i dati dei clienti dal negozio online con finestra di selezione. Le funzioni all'interno della finestra di selezione sono controllate nel rispettivo script di dialogo [dlg.REST_Auswahl_Kunden]).
- Selezione_ordini (Script di importazione per importare gli ordini del negozio dal negozio online con finestra di selezione. Le funzioni all'interno della finestra di selezione sono controllate nel rispettivo script di dialogo [dlg.REST_Auswahl_Bestellungen]).
- Selezione articolo (Script di importazione per importare prodotti dal negozio online con finestra di selezione. Le funzioni all'interno della finestra di selezione sono controllate nel rispettivo script di dialogo [dlg.REST_Auswahl_Artikel]).
- Aggiornamento dello stock (Questo script può essere utilizzato per confrontare le scorte di un articolo con quelle del negozio online. Le scorte sul server vengono sovrascritte da quelle di gFM-Business).
- Aggiornamento_Clienti (Questo script viene utilizzato per aggiornare i dati dei clienti nel negozio online. I dati del negozio online vengono sovrascritti con quelli di gFM-Business. Per chiamare questo script, il parametro [ID-Export] deve essere fornito con l'ID del record di dati del cliente).
- Aggiornamento_stato_ordine (Questo script viene utilizzato per aggiornare lo stato degli ordini dal negozio online in gFM-Business. I dati di gFM-Business vengono sovrascritti con quelli del negozio online. Per richiamare questo script, il parametro [ID export] deve essere fornito con l'ID del record di dati dell'ordine).
- Aggiornamento_Articolo (Questo script viene utilizzato per aggiornare i dati degli articoli nel negozio online. I dati del negozio online vengono sovrascritti con quelli di gFM-Business. Per richiamare questo script, il parametro [ID-Export] deve essere fornito con l'ID del record di dati dell'articolo).
REST_WooCommerce_API_v3 (tipo di dati|sistema esterno|{oggetto|ID export}|)
Questo script contiene tutti i sotto-script per l'importazione e l'esportazione di dati in relazione ai negozi online basati su WooCommerce. Questo script contiene gli stessi parametri di comando dello script per i negozi online Gambio descritto sopra.
REST_Shopware_5x_API (tipo di dati|sistema esterno|{oggetto|ID export}|)
Questo script contiene tutti i sotto-script per l'importazione e l'esportazione di dati in relazione ai negozi online basati su Shopware. Questo script contiene gli stessi parametri di comando dello script per i negozi online di Gambio descritto sopra.
Estensione dei campi di un negozio online esistente
Gli script dell'interfaccia "REST_Shopsystem" contengono tutti i sotto-script necessari per importare i dati dal negozio online. In ogni sotto-script pertinente, i dati da recuperare dal negozio vengono prima memorizzati in un file Variabile salvato, ad es:
Impostare la variabile [$artikel_nr ; Valore: MBS("JSON.GetStringValue"; MBS("JSON.GetObjectItem"; $objekt; "productModel" )) ]
Quando questa variabile è impostata, le funzioni del plugin MBS vengono utilizzate per interrogare il campo [productModel] del negozio online. In questo caso, si tratta di un campo di testo, quindi viene utilizzata la funzione "JSON.GetStringValue". Per i campi numerici, si utilizza la funzione "JSON.GetIntegerValue" o "JSON.GetDoubleValue". I tipi di dati devono essere rigorosamente differenziati, altrimenti la funzione non può essere eseguita. Una volta impostate le variabili per tutti i campi, i dati memorizzati nelle variabili vengono scritti nelle tabelle di gFM-Business utilizzando la funzione MBS "FM.InsertRecord".
Per importare ulteriori campi dal negozio online, è sufficiente creare variabili aggiuntive per i campi aggiuntivi desiderati ed estendere di conseguenza la funzione "FM.InsertRecord" per scrivere i dati nelle tabelle di gFM Business.
Le variabili $json e $object
Per tutte le funzioni, i dati forniti dal negozio vengono salvati integralmente nella variabile $json. Questa variabile contiene quindi sempre il flusso di dati JSON completo fornito dal negozio online. A seconda della definizione, la variabile $object contiene solo una parte dei dati forniti, ad esempio un record di dati. Se si desidera aggiungere altre tabelle all'interfaccia REST-API dal negozio online o dalle estensioni del negozio, è necessario eseguire una nuova query con il rispettivo endpoint dell'interfaccia all'interno di uno script di importazione. Per maggiore chiarezza, è possibile salvare il risultato JSON in una variabile separata, ad esempio "$json_extension_1" e "$objekt_extension_1".
Espansione dell'interfaccia per includere un altro negozio online
L'aggiunta di un nuovo negozio online non ancora supportato da gFM-Business è abbastanza semplice e consiste nei seguenti passaggi:
- Aggiunta del nuovo negozio online in gFM-Business sotto [Impostazioni > Negozio online], tenendo conto dei dati di login e degli endpoint per tutti i tipi di dati
- Duplicazione di uno script di interfaccia esistentead esempio "REST_Shopware_5x_API" e rinominare il nuovo script con il nome del nuovo sistema di negozio, ad esempio "REST_Magento_xy_API".
- Personalizzare i campi in tutte le funzioni del nuovo script di importazione. Il prerequisito è che anche il nuovo negozio online disponga di un'API REST. Tutte le variabili già discusse nella sezione "Estensione dei campi di un negozio online esistente" devono essere adattate. I nomi delle variabili non devono essere modificati. Se vengono aggiunti nuovi campi/variabili, questi devono essere presi in considerazione anche nelle funzioni MBS "FM.InsertRecord" o "FM.UpdateRecord". Tutti i valori JSON vengono letti con le funzioni MBS nella versione standard di gFM-Business. È anche possibile sostituire queste funzioni MBS con funzioni FileMaker (ad esempio JSONGetElement).
- Estendere gli script di dialogo "dlg.REST_Auswahl_xyz".. Da questi script vengono richiamati gli script di importazione per tutti i negozi online, a seconda della selezione. Se viene aggiunto un nuovo sistema di negozi, questi script di selezione devono essere estesi per includere la chiamata allo script per il nuovo negozio online. Il nome del negozio online impostato in [Impostazioni > Negozio online] deve contenere la frase di testo che viene interrogata in questi script nella variabile $shopsystem.
Per i sistemi esistenti, si consiglia di duplicare il sistema produttivo per l'estensione dell'interfaccia del negozio e di eseguire prima lo sviluppo su un sistema di prova, per non compromettere il database reale con i test successivi.
Estensione dell'interfaccia da parte di un partner di servizio o da parte nostra
Noi o uno dei nostri partner di servizio saremo lieti di assistervi personalmente nell'ampliamento dell'interfaccia del negozio online nell'ambito di una licenza aperta. Possiamo implementare per voi l'intera estensione desiderata oppure offrire a voi o al vostro sviluppatore un'adeguata assistenza per l'estensione dell'interfaccia o per altre questioni relative al software gFM-Business ERP. Non esitate a contattarci!
Maggiori informazioni sulla licenza aperta del software ERP gFM-Business

Markus Schall sviluppa database personalizzati, interfacce e applicazioni aziendali basate su Claris FileMaker dal 1994. È partner di Claris, vincitore del FMM Award 2011 e sviluppatore del software ERP gFM-Business. È anche autore di libri e fondatore dell'associazione M. Schall Editore.


