---
title: "Theme blocks e impostazioni: un tema Shopify che il cliente modifica da solo"
seo_title: "Theme blocks Shopify: un tema che modifichi da solo"
description: "Come rendere un tema Shopify modificabile dall'editor: impostazioni, blocchi di sezione, theme blocks, preset e blocchi statici, con esempi di codice."
url: "https://salvatorepitone.it/theme-blocks-shopify/"
type: "BlogPosting"
language: "it-IT"
published: "2026-10-26T16:53:56+01:00"
updated: "2026-10-26T19:03:56+01:00"
author: "Salvatore Pitone"
categories:
  - "Shopify"
tags:
  - "Shopify"
  - "theme blocks shopify"
image: "https://salvatorepitone.it/wp-content/uploads/2026/10/theme-blocks-shopify-copertina.webp"
---

# Theme blocks e impostazioni: un tema Shopify che il cliente modifica da solo

Il segreto di un buon tema su misura è che, dopo la consegna, lo modifichi tu, senza chiamarmi per spostare un pulsante. I **theme blocks** di Shopify sono lo strumento che lo rende possibile, insieme a impostazioni scelte con criterio.

I theme blocks sono componenti riutilizzabili salvati nella cartella `blocks` del tema: un testo, un pulsante, una scheda. Le sezioni li accettano nello schema e li mostrano con il tag `content_for`; dall’editor il cliente li aggiunge, li riordina e li annida uno dentro l’altro, fino a otto livelli. Così il tema resta modificabile senza toccare il codice.

Ti spiego la differenza tra impostazioni, blocchi di sezione e theme blocks, quali impostazioni dare (e quali no), come scrivo un theme block, come uso blocchi statici e preset, e i limiti da tenere a mente.

## Impostazioni, blocchi di sezione e theme blocks

![Gerarchia di template JSON, sezioni, theme blocks e blocchi annidati in un tema Shopify](https://salvatorepitone.it/wp-content/uploads/2026/10/theme-blocks-shopify-gerarchia.webp)

_Template, sezione, theme block e blocco annidato: come si incastrano._

In un tema Online Store 2.0 ci sono tre livelli di personalizzazione, ognuno con il suo scopo. Se il concetto di sezione ti è nuovo, parti dall’esempio su come [creare una sezione personalizzata in Shopify](https://salvatorepitone.it/creare-sezione-personalizzata-shopify/).

- **Impostazioni**: i campi che il cliente compila nell’editor (un testo, un colore, un’immagine). Esistono a livello di tema, di sezione e di blocco.
- **Blocchi di sezione**: definiti dentro lo schema di una sezione e usabili solo lì. È il modello classico, quello di Dawn.
- **Theme blocks**: file a sé nella cartella `blocks`, riutilizzabili in più sezioni e annidabili. È l’architettura dei temi della famiglia Horizon.

Una regola importante, dalla [documentazione sui theme blocks](https://shopify.dev/docs/storefronts/themes/architecture/blocks/theme-blocks): una sezione può definire blocchi propri **oppure** accettare theme blocks, non tutte e due le cose insieme. Gli app block (`@app`) invece si possono affiancare a entrambi.

## Le impostazioni giuste (e quelle da non dare)

Shopify offre molti tipi di impostazione: quelli di base (`text`, `textarea`, `checkbox`, `select`, `radio`, `range`, `number`) e quelli specializzati, come `image_picker`, `product`, `collection`, `color_scheme`, `richtext`, `url`, `metaobject`. L’elenco completo è nella pagina sulle [impostazioni di input](https://shopify.dev/docs/storefronts/themes/architecture/settings/input-settings).

Il rischio non è averne poche, ma troppe. Quaranta opzioni per sezione non rendono il tema flessibile: lo rendono difficile da usare e facile da rovinare graficamente. Le regole che seguo:

- **do il contenuto, tengo lo stile**: testi, immagini, link e prodotti si scelgono dall’editor; margini al pixel e dimensioni dei caratteri no, li decide il sistema grafico del tema;
- **scelte chiuse invece di valori liberi**: un `select` con “piccolo, medio, grande” invece di un `number` in pixel. Con due-cinque opzioni l’editor le mostra come pulsanti affiancati;
- **schemi di colore, non colori sparsi**: con `color_scheme` il cliente sceglie tra combinazioni già accostate bene;
- **i dati del prodotto nei metafield**: se un’informazione appartiene al prodotto (materiali, allergeni, misure) non la scrivo in una sezione, la metto in un metafield e la sezione la legge. Ne ho parlato nella guida a [metafield e metaobject](https://salvatorepitone.it/metafield-metaobject-shopify/);
- **etichette chiare in italiano**: `label` brevi e un `info` dove serve una spiegazione.

Un editor ordinato non è un dettaglio. Un’interfaccia chiara fa lavorare meglio chi gestisce il negozio, così come una pagina chiara fa comprare di più, come racconto in [UX e UI: perché il design influisce sulle conversioni](https://salvatorepitone.it/ux-e-ui-perche-il-design-del-sito-web-influisce-sulle-conversioni/).

## Creare un theme block

### Il file nella cartella blocks

Un theme block è un file Liquid nella cartella `blocks`: il nome del file diventa il tipo del blocco. Contiene il markup, facoltativamente lo stile in un tag `{% stylesheet %}`, e lo schema. Come esempio, un blocco per una testimonianza:

![Codice di un theme block Shopify per una testimonianza, con lo schema, le impostazioni e il preset](https://salvatorepitone.it/wp-content/uploads/2026/10/theme-blocks-shopify-blocco.webp)

_Un theme block completo: markup, impostazioni e preset._

`blocks/testimonianza.liquid`

```
<figure class="testimonianza">
<blockquote>{{ block.settings.testo }}</blockquote>
<figcaption>{{ block.settings.autore }}</figcaption>
</figure>

{% schema %}
{
"name": "Testimonianza",
"settings": [
{ "type": "richtext", "id": "testo", "label": "Testo" },
{ "type": "text", "id": "autore", "label": "Autore" }
],
"presets": [{ "name": "Testimonianza" }]
}
{% endschema %}
```

### Lo schema del blocco

Lo schema di un theme block accetta `name`, `settings`, `blocks`, `presets`, `tag` e `class`. I dettagli che fanno la differenza:

- il `name` ha un massimo di 25 caratteri;
- se il blocco ha un’impostazione con id `heading`, `title` o `text`, l’editor usa il suo valore come titolo del blocco nella barra laterale: comodo per riconoscerli;
- senza `presets` il blocco non compare nel menu “Aggiungi blocco”;
- Shopify avvolge il blocco in un `<div>` con gli attributi per l’editor; con `"tag": null` lo togli, ma allora l’elemento principale deve avere `{{ block.shopify_attributes }}`;
- con `"blocks": [{ "type": "@theme" }]` il blocco accetta altri blocchi al suo interno, e li stampa con `{% content_for 'blocks' %}`.

I blocchi il cui file inizia con un trattino basso, come `_slide.liquid`, sono “privati”: non compaiono tra i blocchi generici e si usano solo nelle sezioni che li nominano. Li uso per i pezzi che hanno senso in un solo contesto, come le slide di uno slideshow.

### Usarlo in una sezione con content\_for

La sezione dichiara nello schema quali blocchi accetta e li stampa nel punto giusto con `{% content_for 'blocks' %}`. Ecco una sezione “testimonianze”:

`sections/testimonianze.liquid`

```
<div class="testimonianze">
<h2>{{ section.settings.titolo | escape }}</h2>
<div class="testimonianze__elenco">
{% content_for 'blocks' %}
</div>
</div>

{% schema %}
{
"name": "Testimonianze",
"settings": [
{ "type": "text", "id": "titolo", "label": "Titolo", "default": "Dicono di noi" }
],
"blocks": [{ "type": "testimonianza" }, { "type": "@app" }],
"presets": [
{
"name": "Testimonianze",
"blocks": [
{ "type": "testimonianza", "settings": { "autore": "Nome cliente" } }
]
}
]
}
{% endschema %}
```

Qui la sezione accetta solo il blocco `testimonianza`, più gli app block: si chiama **targeting**. Con `{ "type": "@theme" }` accetterebbe tutti i theme blocks pubblici del tema. Io preferisco essere preciso: meno scelte, meno errori.

Un dettaglio che spiazza chi arriva dagli snippet: i blocchi non ricevono variabili dalla sezione. Leggono le proprie impostazioni (`block.settings`), la sezione che li contiene (`section`) e gli oggetti globali.

## Blocchi statici e preset

A volte un pezzo deve esserci sempre: il titolo di una riga a fisarmonica, l’icona di una scheda. Per questo esistono i **blocchi statici**, che la sezione stampa con `content_for 'block'` indicando tipo e id:

`sections/riga-fisarmonica.liquid`

```
<details class="riga">
<summary>
{% content_for 'block', type: 'titolo-riga', id: 'titolo' %}
</summary>
{% content_for 'blocks' %}
</details>
```

Un blocco statico si può configurare e nascondere dall’editor, ma non si può spostare, duplicare o eliminare. A differenza dei blocchi dinamici può stare dentro un `if` o un ciclo, e non conta nel limite `max_blocks`. L’`id` lo scegli tu e deve essere unico tra i blocchi dello stesso contenitore. I dettagli sono nella [documentazione del tag content\_for](https://shopify.dev/docs/api/liquid/tags/content_for).

I **preset** sono configurazioni pronte che il cliente sceglie dal menu “Aggiungi”: una sezione “Testimonianze” con tre blocchi già inseriti, una “Colonna” con titolo e testo. Ogni preset ha un `name` e può avere `category` per raggrupparlo, `settings` e `blocks`. Un blocco statico entra nel preset con lo stesso `id` usato nel Liquid e `"static": true`, per dargli valori iniziali diversi da quelli predefiniti.

I preset sono il modo migliore per insegnare il tema al cliente: invece di spiegargli come costruire una sezione da zero, gli do tre o quattro punti di partenza già belli.

## Limiti e buone abitudini

I limiti principali, dalla pagina dei [limiti dei temi](https://shopify.dev/docs/storefronts/themes/architecture/limits) (verificati a ottobre 2026):

- fino a **50 blocchi** per sezione (puoi abbassare il numero con `max_blocks`) e 1.250 per template;
- annidamento dei theme blocks fino a **8 livelli** sotto la sezione;
- al massimo **300 file** nella cartella `blocks`;
- `name` nello schema fino a 25 caratteri.

I blocchi aggiunti dal cliente, compresi gli app block, contano in questi limiti; i blocchi statici no. Le abitudini che mi evitano problemi:

- un blocco fa una cosa sola; per le combinazioni uso un blocco “gruppo” che ne contiene altri;
- annido al massimo due o tre livelli: oltre, l’editor diventa un labirinto per chi lo usa;
- ogni blocco ha il suo CSS nel tag `{% stylesheet %}`, così lo stile viaggia con il blocco;
- prima di consegnare uso l’editor come lo userebbe il cliente: aggiungo, sposto, cancello, e guardo cosa si rompe.

> **Un consiglio pratico:** scrivi le etichette dell’editor pensando a chi non ha mai visto il codice. “Allineamento del testo” si capisce, “text\_align\_desktop” no.

## Domande frequenti

### Che differenza c’è tra blocco di sezione e theme block?

Il blocco di sezione è definito nello schema di una sezione e vive solo lì. Il theme block è un file nella cartella blocks: lo puoi usare in più sezioni, annidare dentro altri blocchi e modificare in un punto solo. Una sezione può usare un tipo o l’altro, non tutti e due insieme; gli app block si affiancano a entrambi.

### I theme blocks funzionano con tutti i temi?

No. Servono un tema con la cartella blocks e sezioni che li accettino, con il tipo @theme o nominandoli uno per uno. I temi della famiglia Horizon sono costruiti così; molti temi Online Store 2.0 meno recenti usano solo i blocchi di sezione. I temi vintage non li supportano.

### Quanti blocchi posso mettere in una sezione?

Fino a 50 per sezione e 1.250 per template, contando anche gli app block aggiunti dal cliente (limiti verificati a ottobre 2026). Lo sviluppatore può fissare un numero più basso con max\_blocks. I blocchi statici, scritti direttamente nel codice della sezione, non contano in questi limiti.

### Il cliente può rompere il tema dall’editor?

Il codice no: dall’editor si cambiano impostazioni e contenuti, non i file. Può però peggiorare la grafica se il tema offre troppe opzioni libere. Per questo do scelte chiuse, schemi di colore e preset, e tengo fuori dall’editor ciò che deve restare coerente. Le modifiche, inoltre, si vedono in anteprima prima di salvarle.

## Conclusione

Un tema modificabile non nasce per caso: nasce da impostazioni scelte con criterio, blocchi piccoli e riutilizzabili, preset che guidano il cliente. È lo stesso principio della struttura delle cartelle che ho descritto in [creare un tema Shopify da zero](https://salvatorepitone.it/creare-tema-shopify-da-zero/): ordine all’inizio, libertà dopo.

Se vuoi un tema costruito così, trovi come lavoro nella pagina [realizzazione e migrazione Shopify](https://salvatorepitone.it/realizzazione-e-migrazione-shopify/).

Vuoi un tema che modifichi da solo senza paura di romperlo? [**Parliamone**](https://salvatorepitone.it/contatti/): ti rispondo io.
