Zum Inhalt

store.json Referenz

Die store.json Datei definiert die Metadaten für dein Modul im Gambio App Store. Sie muss im Projekt-Root liegen (nicht in src/).

Minimales Beispiel

{
    "name": "Mein Modul",
    "code": "mein_modul",
    "type": "module",
    "title": {
        "en": "My Module",
        "de": "Mein Modul"
    },
    "vendor": {
        "name": "AcmeCorp",
        "url": "https://example.com/"
    },
    "requirements": {
        "needed": {
            "shop": { "shopVersions": [">=5.0.0.0"] },
            "server": { "phpVersions": [">=8.0"], "mysqlVersions": [">=5.5"] }
        }
    }
}

Feldreferenz

Top-Level Felder

Feld Typ Pflicht Beschreibung
name string Ja Interner Paketname
code string Ja Eindeutiger Modulcode (intern verwendet)
type string Ja Pakettyp, immer "module"
title object Ja Anzeigetitel mit en und de Schlüsseln
description object Nein HTML-Beschreibung mit en und de Schlüsseln
vendor object Ja Anbieterinformationen
displayImage object Nein Vorschaubild-Pfade mit en und de Schlüsseln
highlights array Nein Feature-Stichpunkte für die Store-Seite
migrations object Nein Datenbank-Migrationsscripte (noch nicht unterstützt, siehe Hinweis unten)
requirements object Ja Versionsanforderungen

vendor

{
    "vendor": {
        "name": "AcmeCorp",
        "url": "https://example.com/",
        "avatar": ""
    }
}

highlights

Bis zu 3 kurze Feature-Beschreibungen auf der Store-Seite:

{
    "highlights": [
        { "title": { "en": "Easy to configure", "de": "Einfach zu konfigurieren" } },
        { "title": { "en": "Multi-language support", "de": "Mehrsprachig" } }
    ]
}

migrations

Warning

Das migrations Feld mit up/down wird vom Gambio Store System noch nicht unterstützt. Es ist für zukünftige Nutzung reserviert.

Um Datenbanktabellen zu erstellen oder SQL bei der Installation auszuführen, verwende stattdessen Lifecycle Hooks in deiner GXModule.json. Deine Install/Uninstall PHP-Methoden erhalten eine Datenbankinstanz und können beliebige SQL-Abfragen direkt ausführen. Siehe die Modulentwicklung Anleitung für ein vollständiges Beispiel.

Geplantes Format (noch nicht funktional):

{
    "migrations": {
        "up": [
            "CREATE TABLE IF NOT EXISTS my_table (id INT PRIMARY KEY AUTO_INCREMENT)"
        ],
        "down": [
            "DROP TABLE IF EXISTS my_table"
        ]
    }
}

requirements

{
    "requirements": {
        "needed": {
            "shop": { "shopVersions": [">=5.0.0.0"] },
            "server": { "phpVersions": [">=8.0"], "mysqlVersions": [">=5.5"] },
            "themes": [],
            "receiptFiles": []
        },
        "hidden": {
            "shop": { "shopVersions": [] },
            "server": { "phpVersions": [], "mysqlVersions": [] },
            "themes": []
        }
    }
}
  • needed: Anforderungen, die erfüllt sein müssen, damit das Modul installierbar ist
  • hidden: Versionen, bei denen das Modul im Store nicht angezeigt wird
  • shopVersions: Gambio Shop Versionsbeschränkungen (z.B. >=5.0.0.0, <=5.5.0.0)
  • phpVersions: PHP Versionsbeschränkungen
  • mysqlVersions: MySQL Versionsbeschränkungen
  • themes: Erforderliche Themes (leer lassen für themeunabhängige Module)
  • receiptFiles: Setzt voraus, dass andere Gambio Module installiert sind (geprüft gegen Dateien in version_info/)

Beispiel: Abhängigkeit von einem anderen Gambio Modul

Wenn dein Modul ein anderes Gambio Modul voraussetzt, verwende receiptFiles. Das Store-System prüft das version_info/ Verzeichnis des Shops auf die angegebenen Dateinamen:

{
    "requirements": {
        "needed": {
            "shop": { "shopVersions": [">=5.0.0.0"] },
            "server": { "phpVersions": [">=8.0"], "mysqlVersions": [">=5.5"] },
            "themes": [],
            "receiptFiles": ["some_required_module.php"]
        }
    }
}

Wenn das benötigte Modul im Ziel-Shop nicht installiert ist, kann dein Modul nicht installiert werden und der Kunde sieht einen Hinweis auf die fehlende Abhängigkeit.

version_info-Dateien werden vom Gambio Team hinzugefügt

Die Dateien in version_info/ werden automatisch während des Modul-Onboardings vom Gambio Team generiert. Du musst sie nicht selbst erstellen. Siehe Veröffentlichung > Version-Info-Datei für Details.

Beschreibungsbilder

Du kannst Bilder in die Store-Beschreibungs-HTML einbetten. Platziere Bilddateien in .assets/ und referenziere sie mit eckigen Klammern:

<img src="[screenshot.png]" class="img-fluid w-100">

Der [screenshot.png] Platzhalter wird vom Store-System durch die tatsächliche gehostete URL ersetzt.

Beschreibungen mit HTML-Dateien überschreiben

Statt HTML in store.json zu schreiben, kannst du separate Dateien erstellen:

.assets/de/description.html
.assets/en/description.html

Wenn diese Dateien existieren, überschreiben sie das description Feld in store.json.

Nächste Schritte