Brevo Sync da Easy Store: differenze tra le versioni

Da Webmobili Wiki.
Nessun oggetto della modifica
Riga 12: Riga 12:


== Brevo Account ==
== Brevo Account ==
Qui mettiamo le credenziali dei vari clienti che usufruiranno del programma.
=== MAV Arreda ===
Api-key: <code>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</code><br/>
Api-key: <code>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</code><br/>
account: <code>store@mavarreda.it</code><br/>
account: <code>store@mavarreda.it</code><br/>

Versione delle 13:31, 26 lug 2024

Cliente richiedente: Mav Arreda

Programma da console in Python schedulato una volta al giorno che si occupa di sincronizzare i dati cliente delle vendite Easy Store con quelli dell'account Brevo.

Nel caso specifico di Mav Arreda, questo ha un sito in Magento nel quale ha installato un plugin che sincronizza i dati delle vendite con Easy Store.
Il programma si pone l'obiettivo di riportare i dati anagrafici di queste vendite anche sull'account Brevo del cliente (nei custom attributes).

In una riunione si è discusso di poter utilizzare attributi custom multiple-choice per poter selezionare più di una singola preferenza marketing per ogni utente (es. interessato a Kartèll e Magìs).

Brevo mette a disposizione i campi transazionali che permettono di associare ad un singolo contatto N transazioni specificando un ID.
Utilizzeremo questi campi per compilare i campi riguardanti l'acquisto.

Brevo Account

Qui mettiamo le credenziali dei vari clienti che usufruiranno del programma.

MAV Arreda

Api-key: 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
account: store@mavarreda.it
pw: Mavarreda2022

Complessità tecniche

Mapping ID Easy in stringa per Brevo

Dobbiamo stabilire un mapping da ID a stringa per i campi idcategoria_anagrafica e idcategoria_anagrafica, che da EasyStore arrivano come interi ma su Brevo devono essere inseriti col valore stringa.

Codice custom a seconda del rivenditore

Il programma deve gestire la possibilità di eseguire un codice custom differente a seconda dell'account che viene sincronizzato.

Ad esempio MAV Arreda dopo aver sincronizzato i campi statici deve effettuare delle chiamate alle EasyAPI per recuperare dettagli della vendita e piazzarli in attributi specifici fatti ad hoc.

Si pensa di

  • implementare una interfaccia con un metodo customAction(account, easy, contactData)
  • implementare questi comportamenti ognuno in una diversa classe che implementi l'interfaccia precedente
  • stabilire da configurazione un'associazione cliente->classe
  • il ciclo principale controlla se nella configurazione c'è specificata una classe e nel caso la istanzia come nell'esempio di sotto e chiama la sua istanza.customAction()
import importlib

# Leggi il nome del modulo e della classe dal file di testo
with open('config.txt', 'r') as file:
    config = {}
    for line in file:
        key, value = line.strip().split('=')
        config[key] = value

modulo_nome = config.get('modulo_nome.classe_nome')
classe_nome = config.get('classe_nome')

# Importa dinamicamente il modulo
modulo = importlib.import_module(modulo_nome)

# Ottieni la classe dal modulo
Classe = getattr(modulo, classe_nome)

# Crea una nuova istanza della classe
miavariabile = Classe()