TL;DR
settings_data.jsonspeichert Theme-Settings und App-Blocks in Shopify Online Store 2.0- Bei App-Deinstallation bleiben App-Block-Einträge oft stehen — toter Code
- Manuelle Bearbeitung ist riskant: ein Syntaxfehler bricht den kompletten Theme-Editor
- Sichere Bereinigung: via Tool mit JSON-Parse + String-Fallback (z. B. GhostCode)
Was ist settings_data.json?
Seit Online Store 2.0 (Release Juni 2021) speichert Shopify Theme-Einstellungen strukturiert in JSON. Die Datei liegt unter /config/settings_data.json im Theme-Code.
Inhalt: Theme-weite Einstellungen (Farben, Schriftarten), Section-Settings, App-Block-Einträge pro Template. Jeder App-Block hat eine eindeutige ID mit dem Schema shopify://apps/{app-handle}/blocks/{block-type}/{hash}.
Was passiert bei App-Deinstallation?
Beim Uninstall:
- Shopify entzieht der App den API-Zugriff
- App-Blocks im Theme-Editor werden als "disabled" markiert
- Die JSON-Einträge in
settings_data.jsonbleiben aber unverändert
Ergebnis: Dein Theme enthält dutzende tote App-Block-Referenzen für Apps, die es längst nicht mehr gibt.
Die konkreten Risiken
Broken Theme-Editor. Manchmal sind tote App-Blocks so verwaist, dass der Shopify-Theme-Editor sie nicht mehr rendern kann und abstürzt. Der Kunde sieht eine Fehlerseite im Admin — frustrierend und hilflos.
Performance. Auch tote App-Blocks werden beim JSON-Parsing geladen. Bei Shops mit 30+ App-Blocks sprechen wir schnell über 50+ KB JSON, das bei jedem Theme-Render mitläuft.
Migration-Probleme. Bei Theme-Wechsel (z. B. Dawn → Sense) werden die toten App-Blocks oft mitkopiert und machen das neue Theme direkt "dreckig".
Warum manuelle Bearbeitung gefährlich ist
Die JSON-Struktur ist komplex und verschachtelt. Beispiel:
{
"current": {
"sections": {
"product-form": {
"blocks": {
"shopify://apps/judge-me/blocks/reviews/abc123": {
"type": "@app",
"settings": {}
}
},
"block_order": ["shopify://apps/judge-me/blocks/reviews/abc123"]
}
}
}
}
Um einen App-Block zu entfernen, musst du:
- Den Eintrag in
blockslöschen - Die ID auch aus
block_orderentfernen - Kommas korrekt anpassen (trailing comma = Syntaxfehler)
- Strukturen wie "settings" nicht versehentlich mit entfernen
Ein falsches Komma = JSON invalid = Theme-Editor bricht.
Der sichere Weg — mit Safe-Parse
Professionelle Tools wie GhostCode nutzen einen zweistufigen Ansatz:
Stufe 1: JSON.parse
Normales Parsen, gezieltes Entfernen der App-Block-Einträge, dann JSON.stringify zurück. Funktioniert bei sauberem JSON.
Stufe 2: String-Fallback Wenn JSON.parse fehlschlägt (z. B. wegen einer versehentlich beigeführten manuelle Änderung), greift ein Brace-Counting-Algorithmus. Er findet die Grenzen des Ziel-Blocks und entfernt ihn stringbasiert, ohne auf die JSON-Struktur angewiesen zu sein.
Das Ergebnis ist Atomic: Entweder ist der Block weg und das JSON noch gültig, oder die Operation wird abgebrochen und das Backup bleibt.
Praxis-Tipps, wenn du es manuell probierst
- Vorher Backup: Shopify-Admin → Themes → Actions → Duplicate
- Benutz JSON-Linter:
jsonlint.comnach jeder Änderung laufen lassen - Identifiziere App-Handle:
shopify://apps/{handle}/— nur{handle}-spezifische Blocks entfernen - Teste im Dev-Theme: Änderungen erst im duplizierten Theme, nicht live
- Rollback-Plan: Bei Fehler sofort auf Backup-Theme zurückstellen
Was GhostCode anders macht
- Asset-API-Exemption von Shopify erlaubt direktes Schreiben ins Theme (die meisten Scanner dürfen nur lesen)
- Automatisches Backup vor jedem Cleanup (90 Tage)
- 1-Klick-Restore wenn etwas schiefgeht
- 200+ App-Patterns erkannt automatisch
- Safe-Parse + String-Fallback kombiniert — sicherer als manuell
Aufwand: 30 Sekunden Scan, 1 Klick Cleanup, fertig.
Weiterführend: Shopify Theme aufräumen: 12 Schritte · Ghost Code entfernen · App deinstalliert — Code entfernen