Un nivel de integrare personalizat, format din două pluginuri, care conectează nopCommerce la Powerall, platforma de business all-in-one din Țările de Jos ce reunește atelierul, depozitul, planificarea, administrarea și vânzările într-un singur sistem, pentru mai mult de 6.000 de utilizatori. Construit pentru On-Site BV, partener de soluții nopCommerce din Rotterdam specializat în comerț B2B complex, integrarea le permite clienților acestora să ruleze un magazin nopCommerce peste Powerall ca unică sursă de adevăr - fără ca cineva să întrețină catalogul de două ori.
Provocarea
Powerall deține datele despre produse și le deține în formă de ERP: fișiere de proprietăți de grup, proprietăți tehnice, variante și înregistrări de țări care nu au fost niciodată modelate pentru un magazin online. Un import generic fie ar aplatiza toate acestea în câmpuri de text inutilizabile, fie ar obliga un dezvoltator să scrie de mână o mapare pentru fiecare grupă nouă de produse. On-Site avea nevoie de ceva pe care consultanții lor să îl poată configura pentru fiecare client, nu de un script de unică folosință.
O arhitectură cu două pluginuri
Am împărțit munca pe o linie clară, astfel încât fiecare parte să poată evolua și să fie implementată separat:
- Nop.Plugin.Misc.Powerall.Import - nivelul de mapare și de modelare a datelor, care transformă exporturile Powerall într-un catalog nopCommerce ca la carte
- Nop.Plugin.Misc.Powerall.Integration - conexiunea live care menține cele două sisteme sincronizate și trimite comenzile înapoi
Ambele respectă arhitectura standard de plugin nopCommerce - entități de domeniu cu propriul nivel de date și propriile migrări, servicii, fabrici de modele, componente de vizualizare și pagini de administrare - astfel încât nimic nu se scurge în nucleu, iar actualizările rămân o rutină.
Powerall.Import: mapare condusă de comportamente
În locul unei mapări fixe de câmpuri, pluginul de import este construit în jurul unor Import Behaviours configurabile: reguli reutilizabile care descriu cum trebuie să ajungă o bucată de date Powerall în nopCommerce.
- Product Property Behaviours decid, pentru fiecare proprietate, dacă o valoare din Powerall devine un atribut de specificație, un atribut de produs care generează variante sau simplu conținut de produs
- Metadatele de categorie sunt derivate din fișierul de proprietăți de grup, astfel încât structura categoriilor și metadatele SEO provin din datele ERP, în loc să fie retastate manual
- Specificațiile și variantele sunt mapate împreună, păstrând datele tehnice filtrabile în pagina de catalog și combinațiile care se pot cumpăra corecte în pagina de produs
- Un meniu Behaviours dedicat în administrare prezintă regulile sub formă de carduri, astfel încât maparea este configurată de un consultant - nu de un dezvoltator
- Datele sunt validate înainte de rularea importului, iar fiecare setare vine cu resurse de text localizate și cu descrieri în pagină
Powerall.Integration: menținerea celor două sisteme sincronizate
- Sincronizare inițială, pentru a alinia complet un magazin nou cu Powerall dintr-o singură trecere
- Sarcină de sincronizare programată, cu logică de filtrare, astfel încât rulările recurente ating doar produsele care chiar se califică, în loc să parcurgă întregul catalog
- Sincronizare pe bază de evenimente, conectată la evenimentele nopCommerce, pentru modificările care nu pot aștepta următoarea rulare programată
- Sincronizarea comenzilor înapoi în Powerall, inclusiv un buton de sincronizare manuală în administrare, pentru comenzile individuale care au nevoie de un impuls
- Maparea țărilor între înregistrările de țări din Powerall și țările din nopCommerce, cu tratare defensivă a datelor ERP incomplete
- O cale completă de dezinstalare, care elimină curat setările, schema și sarcinile - important pentru o integrare desfășurată în mai multe magazine ale clienților
Experiența de administrare și observabilitatea
Ambele pluginuri își adaugă propriile intrări de meniu și propriile ecrane de configurare în administrarea nopCommerce. Integrarea scrie un jurnal detaliat de sincronizare, cu vizualizări dedicate, astfel încât atunci când o comandă sau un produs nu apare acolo unde ar trebui, răspunsul este la un clic distanță, în loc de un tichet de suport și o sesiune pe server.
Fundația tehnică
Construit pentru nopCommerce 4.80 pe ASP.NET Core, împachetat ca două pluginuri independente, cu propriile setări, valori implicite, migrări și localizare. Rezultatul este reutilizabil: On-Site poate implementa aceeași integrare pentru orice client care folosește Powerall și o poate configura pentru fiecare magazin din administrare, în loc să facă un fork al codului.
Rezultatul
O integrare în producție care îi oferă companiei On-Site BV un răspuns repetabil la întrebarea „puteți conecta magazinul nostru online la Powerall?” - date despre produse deținute de ERP care ajung ca un catalog nopCommerce structurat corect și filtrabil, comenzi care se întorc automat și întreaga mapare configurabilă de un consultant, nu reconstruită în cod la fiecare implementare.