Integrazione ERP Shopify B2B: API, webhook e architettura custom

Modulo di prismi tecnologici astratti che allineano linee di codice rosa magenta ad alto contrasto, a simboleggiare la stabilità delle API custom di Shopify.

Risposta diretta: collegare Shopify a un ERP non significa semplicemente “sincronizzare tutto in tempo reale”. Prima definisco quale sistema è source of truth per prodotti, prezzi, stock, clienti e ordini; poi progetto eventi, sincronizzazioni massive, retry e riconciliazione. Un connettore custom è corretto quando il gestionale espone interfacce adatte e il requisito non è coperto meglio da un'app affidabile già esistente.

Prima del codice: mappare i sistemi

Il punto più importante è decidere dove nasce ogni dato. L'ERP può essere autorevole per SKU, giacenze e listini; Shopify può essere autorevole per il checkout e per gli ordini online; un PIM può gestire contenuti e attributi. Senza questa mappa, una sincronizzazione bidirezionale rischia di creare loop e sovrascritture.

Per ogni entità definisco direzione del flusso, identificatore stabile, frequenza, comportamento in caso di conflitto e strategia di recupero quando uno dei sistemi non risponde.

Admin GraphQL API per leggere e scrivere dati Shopify

Shopify mette a disposizione la Admin GraphQL API per prodotti, varianti, inventario, ordini, clienti, cataloghi, aziende e molte altre risorse. GraphQL permette di richiedere i campi necessari e Shopify applica limiti di costo alle query.

Non inserisco nel progetto numeri di rate limit copiati da vecchie versioni della REST API. Il client deve leggere e rispettare il throttling effettivo dell'API utilizzata, gestire gli errori e riprovare in modo controllato.

Webhooks per gli eventi, code per l'affidabilità

I webhooks sono utili per ricevere eventi come creazione o aggiornamento di risorse senza interrogare continuamente Shopify. Non prometto una consegna “in meno di 10 millisecondi”: un webhook è un meccanismo asincrono e l'integrazione deve tollerare ritardi, duplicati e tentativi ripetuti.

Per questo l'endpoint valida la richiesta, registra l'evento rapidamente e sposta l'elaborazione su una coda quando il lavoro è più lungo. Uso idempotenza e identificatori stabili per evitare che lo stesso evento produca due operazioni sull'ERP.

Bulk operations per cataloghi grandi

Quando devo estrarre o aggiornare grandi quantità di dati non trasformo migliaia di record in una sequenza fragile di chiamate una per una. Valuto le bulk operations e i meccanismi asincroni messi a disposizione da Shopify, insieme a checkpoint e riconciliazione finale.

La sincronizzazione “istantanea” non è sempre necessaria. Per stock e ordini può servire una latenza bassa; per descrizioni o dati editoriali un processo programmato può essere più semplice e robusto.

B2B sui piani Basic, Grow e Advanced

Dal 2026 Shopify ha esteso diverse funzioni B2B native anche ai piani standard, ma con limiti specifici. Nei miei progetti verifico aziende, sedi, termini di pagamento, quantità e cataloghi realmente disponibili sul piano utilizzato prima di progettare il flusso.

Non uso Liquid e metafield per mostrare un prezzo “finto” nel frontend se la logica transazionale non viene applicata correttamente a carrello e checkout. Per pricing e condizioni commerciali il dato deve essere coerente fino all'ordine finale.

Ho approfondito il tema nella guida Shopify B2B su Basic, Grow e Advanced.

Zucchetti, TeamSystem, Danea e altri gestionali: verificare la versione reale

Non esiste una singola “API Zucchetti” o “API TeamSystem” valida per ogni prodotto e versione. Prima di quotare il connettore verifico il gestionale esatto, la licenza, le interfacce disponibili, la documentazione fornita dal vendor e le eventuali limitazioni contrattuali.

Lo stesso vale per Danea Easyfatt: se il flusso disponibile usa file, XML, esportazioni o un connettore specifico, progetto attorno all'interfaccia realmente supportata invece di promettere una REST API che il prodotto non espone.

Dati fiscali e fatturazione elettronica

Un'integrazione può trasferire Partita IVA, codice fiscale, indirizzi e altri dati necessari al gestionale, ma la generazione e l'invio della fattura elettronica dipendono dal software fiscale e dal processo amministrativo adottato. Non considero Shopify da solo il sistema che “invia allo SdI”.

Campi, validazioni e responsabilità vanno definiti con chi segue la parte fiscale e con il fornitore del gestionale. Il mio lavoro è garantire che il dato tecnico venga raccolto e trasferito nel formato concordato, entro ciò che Shopify e l'ERP supportano.

App esistente o connettore custom?

Non scelgo custom per principio. Un'app o un connettore già mantenuto dal vendor può essere più economico e affidabile. Sviluppo custom quando esistono regole specifiche, sistemi interni o vincoli di processo che una soluzione standard non copre.

Il custom comporta anche responsabilità: hosting, monitoraggio, log, aggiornamenti API, gestione errori e manutenzione. Non prometto quindi costi ricorrenti pari a zero né un vantaggio SEO automatico solo perché il connettore è server-side.

Definition of Done dell'integrazione

  1. Mappa source-of-truth approvata per ogni entità.
  2. ID e mapping stabili tra ERP e Shopify.
  3. Retry, idempotenza e gestione dei fallimenti testati.
  4. Riconciliazione di ordini, stock e prezzi su casi reali.
  5. Log e alert sufficienti per capire dove si è interrotto un flusso.
  6. Test di carico coerenti con i volumi del cliente.
  7. Procedura di recovery documentata.

Per la parte Shopify faccio riferimento alla Admin GraphQL API, ai webhooks e alle bulk operations.

Sono Francesco Guiducci, freelance Shopify e sviluppatore di app Shopify. Seguo integrazioni sui piani Basic, Grow e Advanced quando l'architettura richiesta è compatibile con le funzioni effettivamente disponibili.

Aggiornato il 3 settembre 2026.

Fonti citate nell’articolo

Documentazione ufficiale e riferimenti esterni collegati nel testo. Le funzioni di Shopify cambiano: confronta sempre con la versione corrente.

Questo sito non usa cookie, analytics o pubblicità, quindi non c’è nulla da accettare. Nel browser può essere salvata solo la pausa delle animazioni, se la scegli.