Se la tua piattaforma e-commerce non ha delle API da chiamare per raccogliere i dati su clienti ed ordini, RFMcube mette a disposizione la propria API attraverso la quale mandare i tuoi dati.
Per utilizzare le API di Rfmcube devi avere un account ed un connector creato selezionando come tipo di piattaforma Utilizza le API di Rfmcube. Se la piattaforma non è corretta il server restituisce il codice http 406.
L’API è accessibile creando delle request HTTPS al seguente endpoint:
https://api.rfmcube.com/v1
Le request
Le request devono essere inviate su HTTPS ed il contenuto del payload deve essere JSON (application/json). Ogni request deve includere gli header content-type: application/json
e api-key
che verrà valorizzato con la chiave API del tuo connector.
La chiave API viene generata automaticamente e può essere trovata nelle impostazioni del tuo connector.
Limitazioni
Dimensione request
La dimensione massima di una request è di 50MB. Nel caso in cui questo limite venga superato, il server restituisce il codice http 416.
Request per minuto
E’ possibile effettuare 60 request al minuto. Superato questo limite il server restituisce il codice http 429.
Primi passi per l’integrazione
Per iniziare subito la sincronizzazione con RFMcube è necessario inviare i dati relativi alle due entità fondamentali che compongono l’analisi RFM, i clienti e gli ordini.
Sta interamente allo sviluppatore il dovere di integrare i dati in modo coerente, mettendo in atto tutti gli accorgimenti necessari a garantire la consistenza dei dati, anche in caso di errori. Va quindi sviluppata una procedura che fa la sincronizzazione iniziale dei dati e poi successivamente invia Clienti e Ordini modificati o appena creati.
Se hai dei dubbi non esitare a contattarci!
Importa Clienti e Ordini
POST: [endpoint_url]/import
PAYLOAD:
{
"overwriteDescriptors": false,
"customers": [
{
"id": "1",
"email": "1test@rfmcube.com",
"createdAt": "2020-01-01T13:06:39Z",
"updatedAt": "2020-01-01T13:06:39Z",
"firstName": "Paolo",
"lastName": "Rossi",
"orders": [
{
"id": "1",
"createdAt": "2020-01-01T13:30:39Z",
"updatedAt": "2020-01-01T13:30:39Z",
"amount": 85.85,
"status": "10",
"statusLabel": "Completato",
"delivery": {
"province": "MI"
},
"items": [
{
"item_id": 1342,
"product_id": 43421,
"brand": "nike"
},
{
"item_id": 1340,
"product_id": 43420,
"brand": "nike"
}
]
}
]
}
]
}
Descrizione: il processo di import non è sincrono e può richiedere molto tempo. Questa chiamata ritorna immediatamente un processId che può essere utilizzato per richiedere informazioni sull’operazione in corso.
Il campo overwriteDescriptors determina se sovrascrivere la struttura dei metacampi creata in precedenza sul connector.
I campi in grassetto sono obbligatori ed essenziali per Rfmcube. Tutti gli altri campi possono essere definiti a piacere. Rfmcube penserà a creare i descrittori adeguati.
I campi status e statusLabel non sono obbligatori, ma nel caso vengano importati ordini sia completati che non vanno specificati per riuscire a fare il mapping degli ordini. Nel caso in cui non vengono passati gli stati degli ordini va comunque creato il mapping nella configurazione del connector.
Aggiorna Cliente
POST: [endpoint_url]/merge_customer
PAYLOAD:
{
"triggerIntegrations": true,
"customer": {
"id": "1",
"email": "test@rfmcube.com",
"createdAt": "2020-01-01T13:06:39Z",
"updatedAt": "2020-01-01T13:06:39Z",
"firstName": "Paolo",
"lastName": "Rossi"
}
}
Descrizione: Aggiunge un nuovo cliente o aggiorna un cliente già esistente. Questa chiamata aggiorna solo i dati del Cliente e non modifica gli ordini ad esso associati.
Impostando triggerIntegrations a true il contatto viene sincronizzato in tempo reale con i software terzi a cui il connector è integrato.
Aggiorna Ordine
POST: [endpoint_url]/merge_order
PAYLOAD:
{
"triggerIntegrations": true,
"order": {
"id": "1",
"createdAt": "2020-01-01T13:30:39Z",
"updatedAt": "2020-01-01T13:30:39Z",
"amount": 85.85,
"customerEmail": "1test@rfmcube.com",
"customerId": "1",
"status": "10",
"statusLabel": "Completato",
"delivery": {
"province": "MI"
},
"items": [
{
"item_id": 1342,
"product_id": 43421,
"brand": "nike"
},
{
"item_id": 1340,
"product_id": 43420,
"brand": "nike"
}
]
}
}
Descrizione: Aggiunge un nuovo ordine o aggiorna un ordine già esistente.
I campi status e statusLabel non sono obbligatori, ma nel caso vengano importati ordini sia completati che non vanno specificati per riuscire a fare il mapping degli ordini. Nel caso in cui non vengono passati gli stati degli ordini va comunque creato il mapping nella configurazione del connector.
Impostando triggerIntegrations a true il contatto collegato all’ordine viene sincronizzato in tempo reale con i software terzi a cui il connector è integrato.
Informazioni sul processo di import
GET: [endpoint_url]/processes/{processId}
RESPONSE:
{
"processId": 2,
"createdAt": "2020-10-16T22:01:05Z",
"updatedAt": "2020-10-16T22:01:16Z",
"status": "completed",
"type": "IMPORT_CUSTOMERS_API",
"data": {
"processedCustomers": 105,
"totalCustomers": 105
"processedOrders": 0
"totalOrders": 960
}
}
Descrizione: Richiedi informazioni su un processo creato con l’import dei contatti.
Soluzioni alternative
In alternativa è possibile creare un web service secondo le nostre specifiche al quale RFMCube effettua le chiamate.
Questa soluzione può sembrare più laboriosa ma in realtà è molto più semplice da implementare e lascia a RFMCube l’onere di garantire la consistenza fra i dati presenti nelle due piattaforme.
La vostra API dovrà ricevere le request da RFMCube, fare delle query su database secondo i filtri passati e restituire il risultato in formato JSON.
Per approfondire leggi l’articolo: Creazione di un web service RFMCube compliant