e-commerce, Integrazione cataloghi fornitori

blue-internet-technology-background-headerL’argomento che andrò a trattare riguarderà indipendentemente sia i venditori che fanno magazzino preacquistando prodotti, e sia coloro che tipicamente agiscono da intermediari tra i produttori\distributori e gli acquirenti dalla piattaforma di e-commerce.
Un operatore di medie e grandi dimensioni ma non solo, dovrà cercare di differenziare le sue fonti di approvvigionamento su più fornitori. Tale necessità, per diverse ragioni pratiche, son legate a diverse esigenze:

  • garantire la massima disponibilità dei prodotti;
  • aumentare lo spettro dei prodotti da offrire in modo anche da soddisfare il più possibile la clientela affezionata;
  • ottenere il più rapidamente possibile i nuovi prodotti per intercettare le nuove tendenze di acquisto \ moda;
  • garantire prezzi, servizi competitivi e affidabilità.

Considerando le esigenze elencate, diversificare le fonti di approvvigionamento, non è esclusiva di aziende medio-grandi, infatti io consiglierei per le piccole di selezionare inizialmente fornitori con grande affidabilità e attendibilità anche a discapito dell’ampiezza dell’offerta prodotti e poi passare via via ad aggiungerne altri per arricchire la base dati soprattutto per i prodotti del core business. Ora nel merito della problematica dobbiamo assumere che i nostri fornitori non diano le informazioni del loro catalogo nel formato adottato dal nostro sistema. Su ciascun catalogo dovremo:

  • filtrare, per trattare solo le classi (categorie) di prodotti che ci interessano;
  • selezionare le informazioni del prodotto per noi importanti\essenziali. Sicuramente dovranno fornirci le chiavi identificative, potremmo fare a meno dell’EAN da integrare successivamente, quindi dovranno anche darci almeno: il Brand, il ProducerCode, il nome prodotto, il tipo garanzia, la disponibilità (anche indicativa) del prodotto, infine devono fornirci l’identificativo del prodotto dal lato fornitore (sia per consentirci upgrade che per gli ordini che gli faremo);
  • integrare le informazioni forniteci che, al di là delle chiavi identificative del prodotto, potranno persino essere errate; un fornitore potrebbe non fornirci l’EAN, dovremo integrarlo, il nome, la descrizione e sicuramente la scheda tecnica potranno anzi dovranno essere modificate per vari motivi: attendibilità, creazione personalizzata di criteri di ricerca SEO;
  • correggere e prevenire gli errori. Se abbiamo deciso di identificare i prodotti per Brand + ProducerCode, possiamo decidere di aggiungere, qualora il prodotto ne fosse sprovvisto, l’EAN in altro momentoad es quando lo si porrà on-line la prima volta. Avendo gli strumenti per identificare il prodotto poremmo centralizzare l’acquisizione delle schede prodotto e relativo aggiornamento;
  • mappare la classificazione del prodotto fornito con quella adottata nel nostro sistema; associare il prodotto alla categoria secondo il nostro sistema e così per il brand qualora il nome associato dal fornitore fosse diverso dal nostro;

Catalogo prodotti a pagamento

A proposito del catalogo fornitori, alcuni forniscono il proprio catalogo già completo di tutto ciò che potrebbe essere necessario ed utile. Infatti, spesso questo è un servizio a pagamento, è una cosa ragionevole considerando (vedere: acquisizione e aggiornamento schede prodotto) che fornire schede con informazioni attendibili non è scontato e disporre di schede tecniche realistiche ed accurate non è cosa semplice, ed è un costo. Sarà comunque necessaria una personalizzazione anche automatizzabile, affinché le info del prodotto siano ottimizzate dal punto di vista SEO.

Rendere persistente l’origine del prodotto pubblicato e dei vari fornitori

L’acquisizione fisica del catalogo prodotti dovrà avvenire nella nostra base dati in una tabella apposita in cui far confluire frequentemente aggiornamenti, questa sarà cancellata e ripopolata ad ogni sincronizzazione prevista. Ciò è anche un test di verifica qualitativa delle informazioni che ci fornisce il fornitore.
Superata questa fase iniziale, le informazioni nella tabella di partenza dovranno essere rese disponibili stabilmente. Una prima motivazione ovvia è la creazione del prezzo finale per ogni prodotto on-line. Quindi una seconda tabella sarà predisposta ad ospitarle prevedendo una data di prima acquisizione ed una di modifica.
In questa seconda tabella dovrà esser presente il codice articolo adottato dallo specifico fornitore, a tal proposito faccio presente che può capitare con frequenza tutt’altro che bassa, l’occorrenza di errori anche nel ProducerCode o nell’EAN. E’ indispensabile prevedere una tale circostanza ed il codice articolo è l’unico modo per riferirvisi.
Altro ruolo fondamentale di questa seconda tabella è tener traccia di tutti i fornitori di uno stesso articolo, che oltre ad essere richiesto per la determinazione del migliore fornitore prodotto, assolve alla esigenza di legarsi alla vendita sia per ragioni logistiche, creazione dell’ordine a fornitore, sia per ragioni contabili, determinazione del guadagno infine anche per ragioni statistiche, rilevare il fornitore che ci fa guadagnare di più.

Soluzione adottata in grandi linee

Quanto precedentemente esposto è stato completamente integrato nella piattaforma di e-commerce alla quale io ho lavorato quindi è frutto della mia esperienza diretta. Questa gestione si avvale di una parte di BackOffice in cui si sono gestite le parti variabili o di configurazione ed una parte di logica pura corrispondente a processi schedulati che compiono fisicamente le operazioni di allineamento fornitori-base dati delle vetrine on-line.

BackOffice

In questo ambito avremo le seguenti sezioni:

  1. Configurazione dell’acquisizione del catalogo prodotti fornitore;
  2. Mappatura delle categorie prodotto secondo il fornitore con le nostre. Mappatura delle marche fornitore con le corrispondenti marche adottate nel nostro sistema (capita frequentemente che il nome non coincida pur trattandosi di identico prodotto);
  3. Ricerca ed ottimizzazione manuale dei prodotti acquisiti in attesa di pubblicazione on-line o già gestiti
  4. Impostazioni di “forzatura” messa on-line nel caso di prodotti gestiti manualmente o che non seguiranno l’iter canonico di reperimento schede prodotto perché difficilmente ottenibili da terzi.

Il primo step sarà quello di configurare l’acquisizione del catalogo del fornitore specifico.
Il catalogo prodotti potrà sostanzialmente essere messo a disposizione via FTP (su piattaforma del fornitore, caso più frequente o meno frequentemente presso di noi) oppure via HTTP.
Invece le tipologie più frequenti e di cui io mi son occupato sono: file CSV (con maggiore frequenza), file Excel (per questi consiglio di non usare le librerie Microsoft per evitare confusioni di versione o di architettura 32 \ 64 bit), file XML.
E’ possibile che tutte le informazioni che ci fornisce il fornitore risiedano in uno stesso file oppure risiedano in più file che insieme ampliano o correggono a cascata le informazioni presenti sul primo, in quest’ultimo caso ogni file usa una chiave per riferirsi al prodotto che potrà essere il codice fornitore oppure il ProducerCode. Esempio di fornitori ampiamente riconosciuti interzionalmente che usano più file sono:

  • Esprinet. In cui i files successivi integrano le info del file principale, tra questi c’è quello delle disponibilità, quello dei prezzi riservati. Tutti i file sostanzialmente “correggono” le informazioni derivanti dal principale. I files possono risiedere su locazioni diverse e richiedere autenticazioni differenti ciò perché corrispondenti a trattamenti differenti o abbonamenti diversi;
  • Ingram micro. In cui i file successivi sono essenziali in quanto ampliano le info presenti nel file indice principale.

Tipicamente per ciascun fornitore gestiremo:

  1. Credenziali d’accesso e locazione\indirizzo dove reperire il\i files. Che potranno essere anche diverse per ciascun file anche presente su locazioni differenti.
  2. Mappatura delle colonne presenti nel file con i corrispondenti presenti campi nella nostra prima tabella di interfaccia sul database;
  3. Correzioni \ integrazioni da eseguire sulle colonne\campi prima di collocarli sulla tabella del database. A volte ad es x l’EAN occorrerà complementare con degli zero l’UPC fornito per ottenere stringa da 13 caratteri.
  4. Regole di trasformazione da applicare per l’ottenimento del punto 2. Ad esempio una colonna del file dovrà esser copiato su più di un campo, oppure invalidare l’intero prodotto se in un campo x c’è uno di n valori. Ancora, trasformazione di valori in un campo secondo regole di decodifica da tabella di lookup.

La logica di collegamento via FTP\HTTP, scaricamento del file ed infine l’algoritmo di importazione ed elaborazione delle informazioni andrà incapsulato in una parte di codice da centralizzare per essere riutilizzata dal processo che verrà schedulato per allineare la nostra base dati (vedere sotto: “Processi schedulati”).

1. Configurazione dei downloads

Si potranno inserire le credenziali d’accesso FTP o HTTP alla risorsa da scaricare ed elaborare. Si indicherà: l’indirizzo della risorsa, la tipologia se CSV, Excel etc, se i campi testuali sono racchiusi da un carattere e quale, qual’è il carattere separatore, se è necessario effettuare operazioni di compressione (come eliminare le righe vuote se presenti, se ci sono dei valori in una colonna da riportare sulle corrispondenti colonne sottostanti se vuote), se il file da scaricare è compresso (è un ZIP, RAR, TAR etc).

2. Mappatura categorie e brand

A meno di non trattare articoli di una sola categoria ogni articolo avrà una classificazione fatta dal fornitore. Non si può prescindere da questa informazione perché è necessaria ad individuare l’articolo\prodotto nel suo contesto è il minimo per dominare la complessità da trattare, un fornitore che non ci voglia fornire queste informazioni (cosa che capita) è da scartare tempo 10 secondi! In base alla classificazione che ha dato il fornitore dovremmo farla corrispondere alla nostra quindi in questo modulo avremo un’interfaccia che ci consenta agevolmente di tracciare queste corrispondenze anche presentando degli esempi.
Purtroppo non sempre questa classificazione è corretta quindi occorrerà studiare delle soluzioni per dare possibilità alternative che all’estremo potrebbe tradursi nella mapatura puntuale.

Per quel che riguarda il brand anche in questo caso non sempre i fornitori useranno lo stesso nostro nome brand, quindi occorrerà far corrispondere la nomenclatura adottata dal fornitore con quella nostra. Il problema potrebbe esser risolto solo in parte qualora, per le schede prodotto, ci rfornissimo da un apposito fornitore di servizi.

Categorie del nostro Storage
Poiché il nostro e-commerce potrebbe avere più di una vetrina a cui far corrispondere una specifica alberatura di categorie prodotti occorrerà a monte un fronte unico di classificazione. L’origine della classificazione prodotti la si farà derivare dall’alberatura categorie dello “storage” e via via che si formano delle vetrine se ne costruirà l’alberatura a partire dll’organizzazione iniziale impostata sullo storage.
E’ evidente pertanto che una buona classificazione fatta sullo storage ci porterà ci avantaggierà in futuro. Un consiglio potrebbe essere quello di allineare la propria struttura dello storage con quella del nostro fornitore principale, così anche per affidarsi all’esperienza di chi è sul mercato prima di noi e comunque adottare la sua classificazione ci faciliterebbe il lavoro di mappatura.
In assenza di mappatura con lo storage non sapremmo dove collocare il prodotto e renderlo visibile in vetrina quindi tale assenza dovrebbe essere precondizione per la messa on-line.

3. Gestione prodotti da “ottimizzare” e non

Un capitolo a parte è quello della pubblicazione dei prodotti forniti dai fornitori. Sintetizzando posso affermare che un prodotto messo a disposizione da un fornitore dovrà rispondere a determinati prerequisiti da noi scelti quali la completezza di informazioni (es. la presenza di una scheda tecnica soddificente, di almeno una immagine, il mapping con una nostra categoria dello storage, il mapping con un nostro nome brand, etc) quando una di queste condizioni non è soddisfatta potremmo dire che il prodotto necessita di ottimizzazione manuale. Pubblicare un prodotto significa che questo oltre ad esser passato dalla prima tabella di importazione (quella che deriva dal file fornitore), questo è passato nella tabella di info persistenti che traccia fornitore, prezzo, disponibilità etc ed è finito in una o tutte le tabelle delle vetrine on-line. La qualità della mancanza potrà bloccare il processo nella prima o seconda tabella di cui prima.
L’ottimizzazione quindi è un processo indispensabile a far sì che i prodotti vengano pubblicati nonostante uno degli impedimenti previsti e questo lo potrà fare solo un operatore manualmente.

Trucco per ottimizzare automaticamente ma solo quando…
Quando il nostro fornitore ha una vetrina dei prodotti che comunque vende anche a noi sarà possibile introdure una automazione non proprio canonica ma che avvalendosi di alcune precondizioni consente di fare quel che un operatore farebbe manualmente. Le precondizioni sono: uso dello stesso codice produttore \ EAN e codice fornitore ottenibile da ricerca on-line, standard nella produzione delle schede prodotto visualizzate a seguito di ricerca. A volte basta una interrogazione ad una pagina standard a cui è possibile montare adeguata query string.
Se tutto ciò è soddisfatto allora potremmo simulare l’attività del browser mediante adeguato processo questa attività è nota col nome di WEB spoofing oppure Cross-Site Request Forgery.

4. Impostazioni di “forzatura” messa on-line

In alcuni casi può accadere che i prodotti di un determinato fornitore o più in generale che abbiano i requisiti minimi ma non sufficienti per esser messi on-line, si possa accettare tale lacuna e quindi potremmo fare in modo che vengano comunque pubblicati.
Tra i requisiti minimi ovviamente chiederemo, oltre alle chiavi identificative, la classificazione e mapping del brand, la presenza della descrizione tecnica ad opera del fornitore. E’ possibile quindi fornire la nostra piattaforma di tale automatismo \ parametrizzazione pensiamo il caso in cui troviamo come fornitore il produttore di articoli di un settore di nicchia, magari in esclusiva e che non sono trovabili mediante la ricerca delle schede prodotto allora vorremmo che fossero pubblicati a prescidere da tutto ciò.

Processi schedulati

Il download e l’elaborazione del catalogo fornitori è una attività da automatizzare. La sincronizzazione può diventare una attività che richiede risorse è pertanto consigliabile verificare col fornitore il/i momenti della giornata o della settimana in cui scaricare il\i file da importare nel nostro sistema. La frequenza della sincronizzazione ovviamente dipende anche dal business del fornitore\distributore se anche lui è un intermediario senza magazzino l’attendibilità delle disponibilità prodotto vacillerà è pertanto necessario parlare con lui non solo della frequenza da impostare ma sopratutto dalla reale disponibilità che potrà offrirci onde evitare catastrofi con i nostri clienti finali.
Un sincronizzatore facile da adottare, in ambiente windows, è lo schedulatore “task scheduler” disponibile negli administrator tools del pannello di controllo. Strumento facile da usare ma NON ATTENDIBILE, consiglio pertanto di far adottare ciascun processo di un motore logging sul DB o su File in grado di tracciare l’attività in qualsiasi momento.
Un altro suggerimento che mi sento di dare è quello di progettare il processo in modo che non carichi eccessivamente le risorse del server ospitante, in modo incrementale ed evolutivo verificare le criticità; sul server su cui facevo girare i processi da me implementati un fattore critico era la coda disco e pertanto ho spostato molte attività, soprattutto col DB, in memoria.


Licenza con diritto di citazione (art. 70, Legge 22 aprile 1941 n. 633)
Prego chiunque usufruirà di questo articolo di citarmi o inserire un link al sito.
Grazie.

2 thoughts on “e-commerce, Integrazione cataloghi fornitori

  1. Paolo Lombardi

    Ho letto con attenzione soptattutto la parte relativa all’e-commerce e ho trovato tante informazioni interessanti anche se non tutte comprese, per via della mia preparazione tecnica limitata. Mi piace e approfondirò alcune tematiche.

    1. Eniac Post author

      Paolo grazie per la tua visita ed opinione!
      Un altro tra i temi affrontati nel mio lavoro sarebbe quello delle telecomunicazioni, streaming, VoIP cioè se avessi fatto questo lavoro del Blog un pò di tempo fa avrei messo da parte molto materiale da condividere altrettanto interessante perché tratta il canale che stiamo usando noi due in questo istante.
      L’e-commerce per quanto stimolante è una brutta bestia nel senso che ci son talmente tante problematiche, quando lo si tratta ad un medio alto livello, che è disarmante. Infatti nell’ultima azienda per cui ho lavorato hanno abbandonato l’implementazione di una piattaforma proprietaria perché costosissima in favore dell’OpenSource tipo piattaforme come PrestaShop o Magento che fanno cose complesse ormai giunte a stabilità. Avessi avuto la possibilità di leggermi i miei stessi “racconti” qualche hanno fa ne avrei giovato…

      Grazie del tuo commento, però io ti consiglierei l’articolo su MediaWiki in quanto è il primo che non sia proprio settoriale e ci terrei ad un tuo giudizio. Infatti secondo me ha una valenza educativa specie per gli studenti dalle medie in su 🙂

Leave a Reply