# Integrazione ERP Shopify B2B: API, webhook e architettura custom

> Integrazione ERP Shopify B2B: come usare Admin GraphQL API, webhook, code e bulk operations e quando scegliere un connettore custom invece di un'app.

- Autore: [Francesco Guiducci](https://ifgdigital.com/francesco-guiducci/)
- Pubblicato: 2026-06-15 · Aggiornato: 2026-09-14
- Argomento: [B2B, ERP e integrazioni](https://ifgdigital.com/ifgwebdesign/ecommerce/blog/categoria/b2b-integrazioni/)
- Lingua: Italiano · English version: https://ifgdigital.com/en/ifgwebdesign/ecommerce/blog/shopify-b2b-erp-integration-api-webhooks/
- Lettura: 4 min
- URL: https://ifgdigital.com/ifgwebdesign/ecommerce/blog/integrazione-custom-api-shopify-gestionale/

**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](https://ifgdigital.com/ifgwebdesign/ecommerce/blog/b2b-nativo-shopify-basic-grow-limiti/).

## 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](https://shopify.dev/docs/api/admin-graphql), ai [webhooks](https://shopify.dev/docs/apps/build/webhooks) e alle [bulk operations](https://shopify.dev/docs/api/usage/bulk-operations/queries).

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.*
