Shopify Functions: la guida completa alla logica di backend custom
Shopify Functions è oggi l'unico modo per personalizzare sconti, checkout e logistica su Shopify Plus, dopo la fine di Shopify Scripts nel 2026.


Il 30 giugno 2026 Shopify Scripts ha smesso di funzionare per sempre. Chi per anni aveva costruito sconti automatici, regole di spedizione o logiche di checkout su quel linguaggio Ruby ormai datato si è trovato, da un giorno all'altro, senza più nulla che girasse in produzione. Non è un incidente di percorso: è la chiusura definitiva di un capitolo e l'apertura, tassativa, di quello successivo. Quel capitolo si chiama Shopify Functions, ed è oggi l'unico modo serio per mettere le mani nella logica di backend di un negozio Shopify o Shopify Plus.
Per chi gestisce un ecommerce enterprise, la notizia non è solo tecnica. È strategica. Le regole di sconto complesse, la validazione del carrello, l'instradamento degli ordini tra magazzini, la personalizzazione di spedizione e pagamento in checkout: tutto quello che fino a ieri veniva risolto con script improvvisati, app di terze parti pesanti o workaround fragili, oggi passa da un'infrastruttura nativa, sicura e pensata per reggere il traffico del Black Friday senza far cadere il checkout. Capire come funziona, cosa può fare oggi e cosa no, è diventato un prerequisito per chiunque debba scegliere un partner tecnico per un progetto Shopify Plus.
Oltre le funzioni out-of-the-box
Chi si iscrive a Shopify riceve, fin dal primo giorno, un'esperienza già completa: catalogo, checkout, pagamenti, spedizioni, tutto pronto all'uso. Ma la necessità di personalizzazione cresce insieme al business, e per i progetti enterprise è spesso una questione complessa fin dall'inizio: un listino diverso per ogni mercato, uno sconto che si attiva solo sopra una certa soglia e solo per certi clienti B2B, un ordine che deve essere instradato verso il magazzino giusto in base alla disponibilità.
Shopify risponde a questa esigenza con più livelli di estensibilità, che si sommano l'uno all'altro a seconda di quanto in profondità si vuole intervenire.
Storefront API
Per chi vuole il controllo completo sull'esperienza d'acquisto, la Storefront API permette di costruire applicazioni esterne che si collegano al negozio, portando funzioni personalizzate e integrando i dati con altri software. È la base di ogni progetto headless.
Hydrogen
Con Hydrogen, il framework React di Shopify basato su Remix, gli sviluppatori disaccoppiano completamente il front end dal back end, costruendo un progetto headless su misura. La personalizzazione dell'esperienza utente qui trova il suo punto più alto, ma riguarda solo la parte visibile al cliente: il funzionamento interno del negozio resta quello nativo di Shopify, a meno di intervenire anche sul livello successivo.
Metafield
I metafield hanno un ruolo sempre più centrale nell'ecosistema Shopify: permettono di archiviare dati personalizzati su prodotti, varianti, ordini, clienti. È la personalizzazione del database, quella che arricchisce le informazioni disponibili per segmentazioni spinte o per richiamare dati specifici in frontend. Da sola, però, non cambia la logica con cui il negozio si comporta.
Shopify Functions
Shopify Functions è il pezzo che mancava: la possibilità di personalizzare il back end, cioè il comportamento stesso della piattaforma durante i flussi d'acquisto chiave, sconti, checkout, spedizione, evasione degli ordini. Le Functions offrono agli sviluppatori un meccanismo per iniettare codice personalizzato ed eseguirlo direttamente sui server di Shopify, con l'obiettivo dichiarato di rendere ogni parte del processo di vendita sostituibile con logica su misura, senza compromettere sicurezza o scalabilità della piattaforma.
Come funziona davvero Shopify Functions
La tecnologia alla base è WebAssembly, un formato di istruzioni binarie pensato per essere eseguito a velocità quasi native, in un ambiente isolato e sicuro: la sandbox di Wasm consente a Shopify di eseguire codice scritto da terzi con la garanzia che non possa interferire con il resto del sistema, mentre le sue prestazioni prevedibili permettono a Shopify di imporre limiti di risorse rigorosi, indispensabili per reggere i picchi di traffico senza che una singola funzione mal scritta rallenti l'intero checkout.
Dal punto di vista architetturale, da quando Shopify ha introdotto gli identificatori di target (a partire dalla API version 2023-10), ogni funzione si configura come un punto di estensione dedicato a un compito preciso, in modo analogo a come si configura qualsiasi altra estensione di un'app Shopify. Il flusso è sempre lo stesso, in tre passaggi:
- Input: un oggetto JSON, generato da una query GraphQL definita dallo sviluppatore, che seleziona esattamente i dati necessari (righe del carrello, metafield, dati del cliente).
- Logica: il codice della funzione, scrivibile in qualunque linguaggio in grado di compilare un modulo WebAssembly conforme ai requisiti. Shopify mette a disposizione template e librerie client per Rust e JavaScript, ma raccomanda apertamente Rust come scelta più performante per evitare che una funzione fallisca sui carrelli più grandi.
- Output: un documento JSON che descrive le operazioni che la funzione chiede a Shopify di eseguire.
Ogni funzione gira all'interno di vincoli precisi, pensati proprio per garantire che Shopify possa scalare in modo prevedibile anche durante i carichi di lavoro più pesanti dell'anno: dimensione massima del modulo, tempo di esecuzione limitato, formato JSON obbligatorio in ingresso e in uscita. Dal 2025 le Functions supportano anche una API di query WebAssembly che permette di deserializzare i dati solo quando servono, pagando in termini di performance solo per i campi che la funzione utilizza davvero: un dettaglio tecnico che si traduce, per chi gestisce un progetto enterprise, in funzioni più leggere e più veloci in fase di checkout.
Le API di Shopify Functions, una per una
Non tutte le Functions lavorano sullo stesso punto del funnel. Ogni API espone un target diverso, con dati di input e output specifici.
Discount API
È l'API che Shopify ha unificato e ampliato più di ogni altra negli ultimi due anni, proprio nell'ottica di sostituire in modo definitivo Shopify Scripts: una singola estensione può oggi gestire sconti su prodotto, ordine e spedizione insieme, invece di richiedere funzioni separate per ciascun tipo. Nel corso del 2025 e del 2026 Shopify ha aggiunto il supporto ai metafield del carrello nelle query di input, la possibilità di rifiutare un codice sconto restituendo un messaggio personalizzato quando le condizioni non sono soddisfatte, e sta progressivamente estendendo le condizioni complesse per le promozioni "Buy X Get Y" e la possibilità di far convivere più sconti sulla stessa riga d'ordine. Per un ecommerce B2B con listini differenziati per cliente o per un brand fashion con logiche promozionali stagionali articolate, questa è oggi l'area con il ritorno più immediato.
Cart Transform API
Consente di costruire offerte a pacchetto vere e proprie: il commerciante configura quali prodotti specifici possono essere uniti in un bundle, che viene mostrato in checkout con un prezzo unico per l'acquisto combinato. La stessa funzione può anche fare il percorso inverso, scomponendo un prodotto bundle nei suoi componenti singoli per semplificare calcolo delle tasse, pesi di spedizione, decremento dell'inventario e evasione corretta di ogni articolo dopo l'acquisto.
Cart and Checkout Validation API
Garantisce che un cliente possa completare l'acquisto solo se il suo ordine rispetta regole specifiche definite dal commerciante: quantità minime o massime per prodotto, indirizzi di spedizione che escludano caselle postali, combinazioni di articoli che non possono stare nello stesso carrello per motivi normativi o logistici (un accendino e delle batterie al litio, per fare un esempio concreto). Combinata con la Discount API, questa validazione permette di costruire esperienze d'acquisto sofisticate, come sconti riservati o collezioni che si sbloccano solo al verificarsi di certe condizioni.
Delivery Customization e Payment Customization API
Permettono di nascondere, riordinare o rinominare le opzioni di spedizione e di pagamento direttamente in checkout, in base a chi sta acquistando. I casi d'uso più diffusi: opzioni di spedizione dedicate visibili solo a clienti in determinati CAP, oppure metodi di pagamento nascosti sopra o sotto una certa soglia d'importo, una necessità frequente nei progetti B2B dove non tutti i metodi di pagamento sono adatti a ogni tipo di cliente.
Order Routing API
La logistica ha molte teste, e ogni azienda sviluppa la propria logica ottimale per evadere e spedire gli ordini. Un produttore, per esempio, può avere un magazzino che gestisce certi articoli e un altro più vicino al cliente per il resto della gamma: con questa API gli sviluppatori costruiscono la logica di instradamento più adatta a quella specifica organizzazione, definendo regole base (evitare i frazionamenti di spedizione) e regole secondarie (spedire dalla sede più vicina all'indirizzo del cliente). In alternativa si può dare priorità al magazzino con più scorte disponibili, mantenere gli ordini all'interno di un singolo Paese per motivi doganali, o spedire direttamente dai punti vendita fisici in logica omnicanale.
Fulfillment Constraints
Un'estensione più recente che permette di associare un vincolo di evasione a uno o più metodi di consegna (spedizione, ritiro in negozio), così che la funzione si attivi solo nel contesto del metodo specificato: utile per chi gestisce reti di fulfillment complesse, con regole diverse a seconda che l'ordine venga spedito o ritirato.
Perché ora è tassativo, non più opzionale
Fino a poco tempo fa esisteva un'alternativa più semplice, anche se meno robusta, a Shopify Functions: Shopify Scripts, scritto in Ruby, editabile direttamente dall'admin senza bisogno di un deploy vero e proprio. Dal 15 aprile 2026 non è più stato possibile modificare o pubblicare nuovi Scripts, e dal 30 giugno 2026 ogni Script esistente ha smesso di essere eseguito. Chi non aveva ancora migrato si è trovato, di colpo, privo delle logiche di sconto e checkout su cui contava.
Per chi gestisce un ecommerce enterprise su Shopify Plus, questo passaggio non è un dettaglio da changelog: è la fine di una scorciatoia. Le Functions non sono un'alternativa più moderna a Scripts, sono l'unica strada, e a differenza del predecessore richiedono un vero progetto di sviluppo, con un deploy versionato, test, e una manutenzione nel tempo. È esattamente il tipo di lavoro che separa un negozio configurato da un negozio costruito con metodo.
Quando ha senso investire in Shopify Functions
Non ogni ecommerce ha bisogno di scrivere funzioni custom: per un catalogo semplice, con sconti lineari e un solo mercato, gli strumenti nativi di Shopify bastano quasi sempre. Le Functions diventano rilevanti quando la complessità del business supera quello che una configurazione da admin può gestire, che è esattamente la soglia a cui si trovano molti brand fashion e i player B2B che stiamo aiutando a migrare su Shopify Plus.
Alcuni segnali concreti: listini e sconti che cambiano in base al segmento di cliente o al volume d'acquisto; regole di spedizione diverse per mercato, non gestibili con le sole zone di spedizione native; carrelli che devono essere validati contro regole aziendali specifiche prima di poter procedere al pagamento; una rete di fulfillment su più magazzini o più Paesi, dove l'instradamento manuale non è più sostenibile. In tutti questi casi, la Function giusta elimina un'app di terze parti, riduce la latenza in checkout, e mette la logica di business dove deve stare: dentro l'infrastruttura di Shopify, non sopra di essa.
Come nasce un progetto di Shopify Functions
Un progetto di questo tipo parte dalla Shopify CLI, che genera l'impalcatura essenziale: la configurazione TOML che definisce a quale target la funzione si aggancia, lo schema GraphQL, la query di input e il codice della funzione vero e proprio. Da lì il lavoro dello sviluppatore consiste nello scrivere la logica in Rust o JavaScript, testarla contro scenari realistici (comprese le condizioni limite: carrelli enormi, metafield mancanti, combinazioni di sconti sovrapposte), e distribuirla come estensione dell'app collegata al negozio.
È un lavoro che assomiglia più allo sviluppo di un microservizio che alla configurazione di un ecommerce, e proprio per questo richiede competenze specifiche: conoscenza dell'architettura a target, familiarità con GraphQL, disciplina nel rispettare i vincoli di performance imposti da Shopify. Un errore di progettazione qui non produce un bug visibile su una pagina prodotto: produce un rallentamento del checkout durante il momento di traffico più alto dell'anno.
Non è un caso che questo genere di lavoro sia diventato, negli ultimi due anni, uno dei terreni su cui si misura davvero la differenza tra un'agenzia che sa configurare Shopify e un partner in grado di costruirci sopra logica di business su misura, con l'affidabilità che un progetto enterprise richiede. È il tipo di complessità che Shopify Plus porta con sé quando un business cresce, e che va governata con metodo, non subita.
Un caso concreto: il checkout B2B con listini multipli
Prendiamo un caso ricorrente nei progetti enterprise: un brand che vende sia a clienti finali sia a rivenditori, con listini diversi per fascia di cliente, sconti quantità che scattano solo su alcune categorie di prodotto, e metodi di pagamento che per i rivenditori devono includere anche il bonifico a 30 giorni, invisibile invece al cliente retail. Prima delle Functions, una configurazione così avrebbe richiesto due negozi separati, oppure un'app di terze parti che appesantisce il checkout e introduce un punto di fallimento in più proprio nel momento più delicato del percorso d'acquisto.
Con una Discount Function che legge i metafield del cliente e applica la scontistica corretta, una Payment Customization Function che nasconde o mostra i metodi di pagamento in base al segmento, e una Cart and Checkout Validation Function che impedisce combinazioni d'ordine non consentite per certi clienti, lo stesso risultato si ottiene dentro un unico negozio, con logica versionata, testata e sotto il controllo diretto dello sviluppatore. È il tipo di architettura che rende il checkout Shopify davvero all'altezza di un progetto B2B, invece di limitarsi a inseguirlo con soluzioni tampone.
Domande frequenti
Shopify Functions funziona anche su Shopify base, o serve per forza Shopify Plus?
Molte API di Shopify Functions sono disponibili anche sui piani Shopify standard, ma le funzionalità più avanzate, i limiti di utilizzo più ampi e l'integrazione con logiche B2B native restano prerogativa di Shopify Plus, che è anche il piano su cui ha senso investire in sviluppo custom di questa portata, vista la scala del business che normalmente lo richiede.
Le Functions sostituiscono le app di terze parti?
In parte sì. Per logiche di sconto, validazione o instradamento ordini che oggi vengono gestite da app esterne, una Function scritta su misura elimina una dipendenza, riduce la latenza in checkout e mette il codice sotto il controllo diretto dell'azienda o del suo partner tecnico. Restano invece necessarie le app per tutto ciò che non riguarda la logica di backend in senso stretto: marketing, assistenza clienti, gestione dei resi.
Che competenze servono per sviluppare una Shopify Function?
Sviluppo in Rust o JavaScript, familiarità con GraphQL per costruire le query di input, e una comprensione solida dei vincoli di performance imposti da Shopify, perché una funzione mal progettata può rallentare l'intero checkout durante i momenti di traffico più alto. È un lavoro di ingegneria software a tutti gli effetti, non una personalizzazione da pannello di amministrazione.
Cosa succede a chi non ha ancora migrato da Shopify Scripts?
Dal 30 giugno 2026 ogni Script ha smesso di essere eseguito: chi non aveva ancora completato la migrazione si trova con le logiche di sconto o checkout che si affidavano a Scripts semplicemente non più attive, con un impatto diretto sulle vendite. La priorità, in questi casi, è mappare rapidamente cosa faceva ogni Script e ricostruirlo come Function, partendo dalle aree a maggiore impatto sul fatturato: sconti e checkout prima di tutto, perché sono i punti in cui un malfunzionamento si traduce immediatamente in un carrello abbandonato o in un ordine perso.
Le Functions rallentano il checkout?
È vero il contrario, se progettate bene. I vincoli di dimensione e tempo di esecuzione imposti da Shopify esistono proprio per garantire che una funzione non possa mai diventare un collo di bottiglia, e l'introduzione della query API basata su WebAssembly ha ulteriormente ridotto il peso di ogni chiamata, deserializzando solo i campi effettivamente usati dalla logica.
Post correlati

Sviluppare temi Shopify nel 2026: gli strumenti per developer e web designer
Lo stack attuale per sviluppare temi Shopify: Shopify CLI al posto di Theme Kit, architettura Online Store 2.0, Dawn, Liquid e quando passare all'headless.

Shopify developer: cosa fa lo sviluppatore Shopify e come sceglierne uno
Cosa fa davvero uno sviluppatore Shopify, quali competenze servono tra Liquid, app e API, e come scegliere tra freelance e agenzia per il tuo progetto ecommerce.

Liquid: il linguaggio dei template di Shopify (guida 2026)
Cos'è Liquid, come funziona tra oggetti, tag e filtri, e che ruolo ha oggi nei temi Online Store 2.0 di Shopify, tra sezioni, blocchi e headless.

Differenze tra Shopify e Shopify Plus: il confronto completo delle versioni (2026)
Shopify e Shopify Plus sono lo stesso motore a scale diverse. Tutte le differenze reali tra le versioni nel 2026: checkout, prezzo, B2B, multi-store e quando conviene il salto.

Quando passare a Shopify Plus: i segnali che è arrivato il momento dell'upgrade
I segnali concreti che è il momento di passare a Shopify Plus: checkout, B2B, nuovi mercati, limiti API e picchi di traffico. E quando invece conviene aspettare.

Come migrare da Magento a Shopify Plus: dati, moduli e trappole
Cosa cambia davvero quando l'origine è Magento o Adobe Commerce: le entità che non si traducono, i moduli senza corrispettivo e le trappole tipiche di quella piattaforma.
