Salta al contenuto

Ti risponde Salvatore, di persona: niente centralini, niente ticket.

Shopify CLI e GitHub: lavorare sul tema senza toccare il negozio online

Copertina: Shopify CLI e GitHub per lavorare sul tema senza toccare il negozio online

Modificare il tema pubblicato direttamente dall’editor di codice di Shopify è come cambiare una gomma con l’auto in corsa. Il flusso che uso si basa invece su Shopify CLI, un tema di sviluppo, GitHub e un controllo automatico del codice prima di pubblicare.

Shopify CLI è lo strumento a riga di comando di Shopify per lavorare sui temi in locale. Con shopify theme dev vedi le modifiche in anteprima senza toccare il negozio online, con theme check trovi gli errori, con theme push --unpublished carichi una copia da approvare. GitHub tiene la storia di ogni modifica.

Ti mostro il flusso passo per passo, con i comandi corretti, come funziona l’integrazione con GitHub (comprese le modifiche fatte dall’editor) e come pubblico senza sorprese. Anche se non sei uno sviluppatore, ti serve per capire come lavora chi mette le mani nel tuo tema.

Perché non si lavora sul tema pubblicato

Ogni salvataggio sul tema pubblicato è subito visibile ai clienti. Un errore in una sezione può nascondere il pulsante “Aggiungi al carrello” per minuti o per ore, finché qualcuno se ne accorge.

L’editor di codice di Shopify conserva una cronologia dei file (la vista Timeline), ma il Centro assistenza avverte che è limitata e che le versioni più vecchie possono non essere disponibili. Non è un vero sistema di versioni.

Le regole che seguo sono semplici: si lavora su una copia, ogni modifica ha una storia, e il tema online cambia solo con una pubblicazione voluta. È una forma di sicurezza, come le altre che descrivo in come rendere sicuro un sito web.

Flusso di lavoro su un tema Shopify: pull, anteprima locale, GitHub, Theme Check e pubblicazione
Il flusso completo: dal tema pubblicato alla pubblicazione controllata.

Installare Shopify CLI e collegarsi al negozio

Servono Node.js 22.12 o successivo, un gestore di pacchetti (npm, Yarn o pnpm) e Git 2.28 o successivo: requisiti verificati a ottobre 2026 sulla documentazione di Shopify CLI. Poi si installa la CLI:

terminale

# installa Shopify CLI
npm install -g @shopify/cli@latest

# controlla la versione installata
shopify version

Non serve un account Partner per lavorare sul tema di un negozio: basta un account del negozio (proprietario, staff o collaboratore) con il permesso Temi. Al primo comando la CLI apre il browser per l’accesso. Per i sistemi automatici c’è l’app Theme Access, che genera una password da passare con --password.

Il primo passo vero è scaricare il tema com’è oggi:

terminale

shopify theme pull --store=tuonegozio --live

--store accetta il prefisso del negozio (la parte prima di .myshopify.com) o l’indirizzo completo; --live scarica il tema pubblicato.

theme dev: anteprima locale con ricarica

Con shopify theme dev la CLI carica i file su un tema di sviluppo e apre un’anteprima su http://127.0.0.1:9292. Ogni salvataggio si vede subito: le modifiche a CSS e sezioni senza nemmeno ricaricare la pagina, le altre con un aggiornamento automatico.

terminale

shopify theme dev --store=tuonegozio

Oltre all’anteprima locale, il comando restituisce un link all’editor e un link di anteprima da condividere. Alcune opzioni utili, tutte nella documentazione di theme dev:

  • --theme-editor-sync: riporta nei file locali le modifiche fatte nell’editor del tema di sviluppo;
  • --store-password: serve se il negozio è protetto da password;
  • --live-reload=full-page: ricarica sempre l’intera pagina.

Due cose da sapere: i temi di sviluppo vengono eliminati quando esci con shopify auth logout, e il checkout non si può provare dall’anteprima locale.

GitHub collegato al tema

Shopify ha un’integrazione nativa con GitHub, descritta nella documentazione ufficiale. Si installa l’app Shopify GitHub, poi da Negozio online > Temi > Aggiungi tema > Collega da GitHub si scelgono account, repository e branch.

Branch e temi

Ogni branch collegato diventa un tema nella libreria. L’impostazione che uso:

  • main collegato al tema pubblicato: ciò che c’è su main è ciò che vedono i clienti;
  • un branch per ogni lavoro (una nuova sezione, una campagna), collegato a un tema non pubblicato per l’anteprima;
  • si unisce a main solo dopo controllo e approvazione.

Due vincoli da conoscere. Il branch deve avere la struttura standard di un tema: le cartelle che non la rispettano vengono ignorate, quindi niente src e dist nello stesso branch. E un branch scollegato non si può ricollegare allo stesso tema: viene aggiunto come tema nuovo.

Le modifiche fatte dall’editor

Qui sta il punto che sorprende di più: la sincronizzazione va nei due sensi. Quando qualcuno salva una modifica nell’editor del tema o nell’editor di codice, Shopify fa un commit sul branch collegato, firmato dal bot shopify. Non si può disattivare.

Le personalizzazioni dell’editor finiscono nei file di impostazioni: config/settings_data.json, i template JSON e i section group. Per questo, prima di iniziare un lavoro, aggiorno sempre il mio branch con gli ultimi commit di main: altrimenti rischio di sovrascrivere i testi che il cliente ha appena cambiato.

Quando carico codice dalla CLI su un tema che il cliente sta già usando, escludo i file che lui modifica dall’editor. Lo faccio con --ignore sul singolo comando, oppure con un file .shopifyignore nella radice del tema, che accetta nomi di file, caratteri jolly ed espressioni regolari:

terminale

shopify theme push --theme="Revisione" --ignore "config/settings_data.json" --ignore "templates/*.json"

Theme Check prima di pubblicare

Theme Check è il controllo automatico del codice di Shopify: trova errori di sintassi, template mancanti, variabili e snippet inutilizzati, tag sconosciuti o deprecati e problemi di prestazioni.

terminale

# controlla tutto il tema
shopify theme check

# crea il file di configurazione .theme-check.yml
shopify theme check --init

# corregge in automatico ciò che può
shopify theme check --auto-correct

Lo stesso controllo è integrato nell’estensione Shopify Liquid per Visual Studio Code, quindi vedo gli errori mentre scrivo. E con shopify theme push --strict la CLI si rifiuta di caricare il tema se Theme Check trova errori (gli avvisi sono ammessi).

Theme Check però non sostituisce la prova a mano: non sa se il pulsante è del colore giusto o se il carrello calcola bene la spedizione. Dopo il controllo automatico c’è sempre la mia revisione in anteprima.

Pubblicare senza sorprese

Comandi di Shopify CLI per scaricare, provare, controllare e pubblicare un tema Shopify in sicurezza
I comandi di Shopify CLI nell’ordine in cui li uso.

L’ultimo passo è quello in cui si sbaglia di più, di solito per fretta. Il mio ordine:

  1. carico il lavoro su un tema non pubblicato con shopify theme push --unpublished --theme="Revisione", oppure uso shopify theme share, che crea un tema non pubblicato con un nome casuale e restituisce un link di anteprima;
  2. mando il link di anteprima al cliente e aspetto il suo ok;
  3. controllo pagina prodotto, collezioni, carrello e un ordine di prova;
  4. riporto sulla copia le ultime modifiche fatte dall’editor sul tema pubblicato, così non si perdono;
  5. pubblico con shopify theme publish --theme="Revisione", che chiede conferma, oppure unendo il branch su main se uso GitHub;
  6. tengo il tema precedente nella libreria: se qualcosa va storto, si ripubblica in un attimo.

Questo flusso è anche la base della manutenzione: aggiornamenti, piccole modifiche e correzioni passano tutti da qui. Se vuoi sapere quanto pesa sul budget, ne parlo in quanto costa la manutenzione di un sito web.

Se stai creando un tema nuovo, la struttura dei file è spiegata in creare un tema Shopify da zero; se devi intervenire su un tema esistente, leggi prima dove mettere le mani nel codice del tema Shopify.

Domande frequenti

Serve un account Partner per usare Shopify CLI?

No. Per lavorare sul tema di un negozio basta un account con accesso al negozio e il permesso Temi: proprietario, staff o collaboratore. In alternativa si può usare una password generata dall’app Theme Access. L’account per sviluppatori serve per creare negozi di sviluppo e app, non per modificare il tema di un negozio esistente.

Le modifiche dall’editor finiscono su GitHub?

Sì, se il tema è collegato a un branch. Ogni salvataggio nell’editor del tema o nell’editor di codice diventa un commit sul branch, firmato dal bot di Shopify, e la sincronizzazione non si può disattivare. Per questo, prima di iniziare un lavoro, aggiorno il mio branch con gli ultimi commit e non sovrascrivo le modifiche del cliente.

Posso tornare a una versione precedente del tema?

Sì. Con GitHub ogni modifica è un commit: puoi annullarla o tornare a qualsiasi versione precedente. Senza GitHub hai la cronologia dei file nell’editor di codice, che però è limitata nel tempo, e le copie del tema nella libreria. Per questo, prima di pubblicare, tengo sempre il tema precedente come riserva.

Theme Check trova tutti gli errori?

No. Trova errori di sintassi, riferimenti mancanti, codice inutilizzato e alcune cattive pratiche di prestazioni, ma non vede problemi grafici, di contenuto o di logica del negozio. È un primo filtro automatico, utilissimo: la prova a mano in anteprima, su desktop e su mobile, resta comunque indispensabile.

Conclusione

Shopify CLI, un tema di sviluppo, GitHub e Theme Check: insieme trasformano le modifiche al tema da salto nel buio a lavoro controllato. Il negozio online cambia solo quando lo decidi tu, e ogni passo si può annullare.

Se stai progettando un negozio nuovo o una migrazione, trovi come lavoro in realizzazione e migrazione Shopify.

Hai paura di toccare il tema? Posso impostare io il flusso con GitHub e copia di sicurezza, nella mia assistenza e manutenzione del negozio online. Oppure scrivimi dalla pagina contatti: ti rispondo io.

Scritto da

Salvatore Pitone

Sviluppatore web, realizzo siti WordPress ed e-commerce per professionisti e piccole imprese. Sul blog condivido quello che imparo ogni giorno lavorando sui siti dei miei clienti.

Richiedi un preventivo

Preventivo gratuito

Partiamo dal tuo progetto, con calma e chiarezza.

Scrivimi cosa ti serve. Ti richiamo io, ti faccio qualche domanda e ti mando un preventivo chiaro, senza sorprese e senza tecnicismi.

Salvatore Pitone, sviluppatore web, sorridente con le braccia incrociate
Ti rispondo io, Salvatore. Niente call center: leggo personalmente ogni richiesta e ti rispondo entro 24 ore lavorative.

Raccontami il tuo progetto

Ti rispondo personalmente entro 24 ore lavorative.