Interfacce di sviluppo

In qualità di subappaltatore di una società di software di successo, abbiamo realizzato un importante progetto della durata di diversi mesi. Si trattava della creazione personalizzata di un'interfaccia per un sistema proprietario di gestione della merce per Joomla/Virtuemart. Gli ostacoli tecnici da superare erano numerosi: Come verranno recuperati i dati? Come devono essere visualizzati i dati? Qui di seguito forniamo una breve panoramica del progetto e del nostro approccio.
Il problema era il seguente: Il cliente fornisce un sistema proprietario di gestione della merce che ha un database di enormi dimensioni in background. Il sistema viene continuamente mantenuto e modificato. I record di dati memorizzati vengono utilizzati, ad esempio, per generare cataloghi o fornire informazioni ai clienti. Il sistema dispone di diverse interfacce, tra cui query standardizzate tramite MySQL. Questo è stato il nostro punto di partenza: il cliente voleva che il catalogo fosse caricato dinamicamente in un catalogo basato sul web senza ulteriori interventi esterni, che fosse ricercabile e che generasse un URL e un codice QR sempre validi per ogni articolo e che fosse possibile restringere il campo di ricerca utilizzando numerose proprietà di filtri e barre di ricerca. La soluzione doveva essere progettata in modo modulare per l'uso in Joomla e successivamente per Typo3 e anche come integrazione completa in un sistema di negozi.
In primo luogo, abbiamo chiesto al cliente di illustrare il problema in dettaglio e abbiamo definito insieme a lui le tappe fondamentali. Queste tappe sono state utilizzate per creare una stima dei costi, che è stata poi incorporata in tutti i sistemi coinvolti. Sulla base di questa familiarizzazione è stato poi creato un prototipo che aveva lo scopo di dimostrare e garantire la funzionalità di base del sistema. Il prototipo è stato pronto per l'uso dopo un solo giorno lavorativo.
Dopo l'ideazione e l'elaborazione dell'interfaccia, è seguita la ricerca di soluzioni funzionali per il sistema di gestione dei contenuti. „Joomla“, su cui abbiamo potuto basare la nostra soluzione. Abbiamo trovato rapidamente „VirtueMart“ una piattaforma popolare e promettente, la cui tecnologia abbiamo potuto utilizzare ed espandere gradualmente.
Abbiamo dovuto creare due connessioni dirette e scrivere un traduttore: Da un lato, la struttura proprietaria del sistema di gestione merci del cliente viene letta, tradotta e standardizzata dal nostro sistema e riproposta dall'altro lato o letta in VirtueMart. Questo modulo, con le sue migliaia di righe di codice distribuite in un'architettura ben strutturata in PHP, è assolutamente unico.
Oltre a questo traduttore, sono state necessarie diverse modifiche alla visualizzazione. In questo caso, abbiamo approssimato il più possibile le funzionalità desiderate con moduli già disponibili, al fine di ridurre al minimo i costi per il cliente. Questi moduli sono stati ulteriormente personalizzati da noi, ad esempio gli URL del front-end sono stati resi „parlanti“ - ed è ora possibile rivolgersi sia ai prodotti che a qualsiasi livello di struttura dei prodotti, cosa che non era possibile senza ulteriori interventi. In particolare, grazie alla nostra personalizzazione è ora possibile assegnare un numero qualsiasi di categorie e livelli di struttura, poiché il database viene suddiviso dinamicamente nei suoi componenti. L'implementazione è stata completamente svincolata da Virtuemart e dal design, cioè in parole povere: si può prendere qualsiasi Joomla con Virtuemart e „lasciare andare“ la nostra estensione e Virtuemart viene quindi alimentato e modificato con i dati del WWS. Questo rende la soluzione altamente portatile! È già stata pianificata e preparata anche un'implementazione in Typo3.
Quando le immagini dei prodotti sono disponibili nel database, il cliente voleva che le immagini fossero importate automaticamente e assegnate nel front-end. Vengono generate dimensioni diverse per le miniature e per la visualizzazione finale.
Per ogni prodotto è disponibile una funzione che consente di generare un PDF, di „porre una domanda“, di inviare un messaggio di posta elettronica o di condividerlo, ecc. Inoltre, il cliente e l'utente possono ora filtrare i prodotti in modo dinamico e regolare con precisione le proprietà visualizzate per il filtraggio. Il cliente può anche impostare separatamente nel backend per ogni articolo quali proprietà desidera visualizzare, quali informazioni contiene un articolo e quali funzioni sono disponibili per l'utente nella panoramica dell'articolo. Tutto ciò può essere determinato in modo flessibile già a livello di database nel sistema di gestione della merce! Anche i titoli e gli identificativi possono essere modificati dinamicamente sul lato database senza influire sulla generazione del codice QR: Una volta impostati, i link rimangono validi.
È inoltre possibile specificare se si desidera ordinare/filtrare con caselle di controllo, pulsanti di opzione, dropdown, ecc. Il filtraggio funziona in tempo reale, senza ricaricare la pagina. Il filtro si adatta dinamicamente. A tale scopo, è stata completamente adattata e riscritta un'estensione che funziona sia con Ajax che senza Ajax.
L'intera soluzione è predisposta come negozio e, se lo si desidera, è possibile assegnare anche dei prezzi. Inoltre, la connessione al database è stata progettata in modo così dinamico che il cliente può ricaricare il database in qualsiasi momento o anche solo in parte tramite una funzione nel backend, oppure può farlo anche tramite un comando esterno („Cronjob“) possono essere attivati. A questo scopo è stata creata un'ulteriore interfaccia con il mondo esterno ed è stata ampliata l'area backend di Virtuemart.
