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¶
- Modulentwicklung Anleitung: Dein Modul bauen
- Veröffentlichung: Im Gambio Store einreichen