Support für die Shop-Version 5.5.2, Anleitung für neue Installationsmethode, Standard-PHP 8.4

This commit is contained in:
Dennis Heinrich 2025-07-23 19:09:44 +02:00
parent 924f5937b5
commit d656e26492
6 changed files with 52 additions and 109 deletions

View file

@ -1,7 +1,7 @@
name: jtl-shop
type: php
docroot: ./shop
php_version: "8.2"
php_version: "8.4"
webserver_type: apache-fpm
xdebug_enabled: false
additional_hostnames: []

View file

@ -1,9 +1,3 @@
ARG BASE_IMAGE
FROM $BASE_IMAGE
USER root
# Install just from GitHub releases
RUN curl -L "https://github.com/casey/just/releases/download/1.36.0/just-1.36.0-x86_64-unknown-linux-musl.tar.gz" \
| tar -xz -C /usr/local/bin
# Make just executable
RUN chmod +x /usr/local/bin/just

View file

@ -1,23 +1,26 @@
# Entwicklungsumgebung für den JTL-Shop
## Beschreibung
Dieses Repository enthält alle benötigten Scripts, um einen JTL-Shop schnell und automatisiert zu Entwicklungszwecken zu installieren. Die Nutzung für produktive Systeme ist mit diesem Projekt nicht vorgesehen und wird auch nicht empfohlen.
### Vorschau der Installation mit nur einem Befehl
![Installation im Terminal](https://github.com/cloudmaker97/JTL-Shop-Entwicklungsumgebung/assets/4189795/98325070-fb9a-4f19-94b0-89bc162a07db)
### Voraussetzungen
## Voraussetzungen
Es gelten die Lizenzbedingungen der JTL-Software-GmbH. Die Lizenzbedingungen sind in diesem Projekt als Lizenzdatei hinterlegt. Zur Nutzung dieses Repositories sind zudem folgende Voraussetzungen notwendig:
- [Docker: Virtualisierung](https://www.docker.com/)
- [Just: Command Runner](https://just.systems/)
- [DDEV: Docker Development](https://ddev.com/)
## Installation und Befehle
Zur Installation des Shops wird nur ein Befehl benötigt. Der Befehl `just install` installiert den Shop mit der neusten Version und den standardmäßigen Einstellungen.
```bash
# 1. Klonen des Repository via SSH
git clone git@github.com:cloudmaker97/JTL-Shop-Entwicklungsumgebung.git
# 2. Anschließend in der Verzeichnis wechseln
cd JTL-Shop-Entwicklungsumgebung
# 3. Installation unter Standardeinstellungen
ddev just install
```
Zur Installation des Shops wird nur ein Befehl benötigt. Der Befehl `ddev just install` installiert den Shop mit der neusten Version und den standardmäßigen Einstellungen.
Nach der erfolgreichen Installation kann der Shop über die angezeigte URL aufgerufen werden. Die Anmeldedaten wurden automatisch festgelegt und sind:
@ -26,46 +29,43 @@ Nach der erfolgreichen Installation kann der Shop über die angezeigte URL aufge
| Shop-Administration | `admin` | `admin` |
| Shop-Abgleich | `sync` | `sync` |
### Benutzerdefinierte Installations-Routinen
## Benutzerdefinierte Installations-Routinen
### Nutzung einer zweiten DDEV-Instanz
1. Repository klonen
2. Änderung der Domain in `.ddev/config.yaml`
3. Den Container zwingend mit `ddev restart` neu starten
4. Anschließend die Installation mit Argument starten
```bash
# Führt die Installation mit spezifischen Werten aus.
# Darüber kann die Installation der Shop-Version gesteuert werden,
# die PHP-Version und ob Demo-Daten installiert werden sollen.
# Weitere Parameter sind in der Tabelle unten aufgeführt.
just shop_version="5.3.1" install_demo="false" php_version="8.1"
# Installiert den Shop unter einer anderen Domain
ddev just shop_url="jtl-shop.ddev.site" shop_version="5.5.2"
```
### Nutzung einer anderen Shop-Version
> Da die JTL-Shop Core den Installer nicht mehr zur Verfügung stellt, ist es notwendig, die Installer-Dateien in diesem Repository im Ordner `tools/installer` zu hinterlegen. Die Dateien sind in den entsprechenden Versionen im Dateinamen `install_X.X.X.zip` hinterlegt. Die Installations-Dateien können von der [Webseite von JTL](https://www.jtl-software.de/) mit einem Kundenkonto bezogen werden. Es ist außerdem notwendig, dass in dem Repository des JTL-Shops / Core die Versionen als Tags hinterlegt sind. Diese Tags müssen mit den Versionen im Dateinamen der Installer-Dateien übereinstimmen.
1. Repository klonen
2. Notwendige PHP-Version unter `.ddev/config.yaml` eintragen
3. Den Container zwingend mit `ddev restart` neu starten
4. Anschließend die Installation mit Argument starten
```bash
# Erstellt ein Backup der Datenbank, Deinstalliert den Shop,
# und löscht anschließend alle Dateien und Datenbanken. Die Datenbanken
# werden als Snapshot im `.ddev/db_snapshots` Ordner gespeichert.
just uninstall
# Installiert den Shop unter einer anderen Domain
ddev just shop_version="5.5.2"
```
### Sonstige Installationsparameter
Hier sind alle Installationsparameter die mit der Installation mitgegeben werden um die Installation zu beeinflussen, Testprodukte zu erstellen etc.
| Parameter | Standardwert | Beschreibung |
| --- | --- | --- |
| `shop_version` | `5.3.1` | Die Shop-Version, die installiert werden soll. Aktuell stehen zur Auswahl `5.3.1`, `5.2.5`, `5.1.6` oder `5.0.6`. Um weitere Versionen anzubieten, siehe weiter unten im Abschnitt 'Unterstützte Shop-Versionen' |
| `php_version` | `8.2` | Die PHP-Version, die genutzt werden soll. `5.6`, `7.0`, `7.1`, `7.2`, `7.3`, `7.4`, `8.0`, `8.1`, `8.2`, oder `8.3` |
| `shop_version` | `5.5.2` | Die Shop-Version, die installiert werden soll. Aktuell stehen zur Auswahl `5.5.2`, `5.3.1`, `5.2.5`, `5.1.6` oder `5.0.6`. Um weitere Versionen anzubieten, siehe weiter unten im Abschnitt 'Unterstützte Shop-Versionen' |
| `install_demo` | `true` | Ob der neue Shop Demo-Daten enthalten soll, ansonsten muss `false` angegeben werden. |
| `install_demo_products` | `10` | Falls die Demo-Daten installiert werden: Anzahl der zu generierenden Produkte |
| `install_demo_categories` | `3` | Falls die Demo-Daten installiert werden: Anzahl zu generierenden der Kategorien |
| `install_demo_manufacturers` | `3` | Falls die Demo-Daten installiert werden: Anzahl der zu generierenden Hersteller |
| `install_url` | `https://jtl-shop-**X.X.X**.ddev.site` | Die URL über die |
### Befehle für den DDEV-Entwicklungsserver
```bash
# Startet den Entwicklungs-Container
just start
# Stoppt den Entwicklungs-Container
just stop
# Zeigt die Beschreibung und URLs des Containers an
just describe
```
## Unterstützte Shop-Versionen
Da die JTL-Shop Core den Installer nicht mehr zur Verfügung stellt, ist es notwendig, die Installer-Dateien in diesem Repository im Ordner `tools/installer` zu hinterlegen. Die Dateien sind in den entsprechenden Versionen im Dateinamen `install_**X.X.X**.zip` hinterlegt. Die Installations-Dateien können von der [Webseite von JTL](https://www.jtl-software.de/) mit einem Kundenkonto bezogen werden.
Es ist außerdem notwendig, dass in dem Repository des JTL-Shops / Core die Versionen als Tags hinterlegt sind. Diese Tags müssen mit den Versionen im Dateinamen der Installer-Dateien übereinstimmen.
| `install_url` | `jtl-shop.ddev.site` | Die URL über die der Shop erreicht werden soll. Achtung: DDEV Config vorher anpassen! |

View file

@ -1,15 +1,13 @@
shop_version := "5.3.1"
php_version := "8.2"
shop_version := "5.5.2"
shop_url := "jtl-shop.ddev.site"
install_demo := "true"
install_demo_products := "10"
install_demo_categories := "3"
install_demo_manufacturers := "3"
# Installiert den Shop mit den angegebenen Werten (Standard)
[linux]
install:
@echo "Installiere Abhängigkeiten (ddev, rsync, unzip, mkcert)"
just install-dependencies
@echo "Installiere den Shop"
just uninstall
mkdir -p ./shop
@echo "Lade JTL-Shop v{{shop_version}} herunter"
@ -21,79 +19,30 @@ install:
cd ./shop && rsync -av core-*/* . && rm -rf core-*
@echo "Kopiere Installer in das Shop-Verzeichnis"
just copy-installer
@echo "Konfiguriere die Entwicklungsumgebung"
just ddev-configuration
@echo "Installiere den Shop automatisch und lösche das Installationsverzeichnis"
just run-installer
[private]
[linux]
install-dependencies:
sudo apt-get update
sudo apt-get install -y curl rsync unzip
curl -fsSL https://ddev.com/install.sh | bash
mkcert -install
# Deinstalliert den Shop. Löscht alle Dateien und Datenbanken
[linux]
uninstall:
@echo "Deinstalliere den Shop"
@rm -rf ./shop/*
@if [ -d ".ddev" ]; then \
echo "Entferne vorherige Installation" \
ddev delete -y; \
else \
echo "Keine vorhandene Installation gefunden."; \
fi
# Startet die Entwicklungsumgebung
[linux]
start:
@if [ -d ".ddev" ]; then \
ddev start; \
else \
echo "Keine Konfiguration gefunden, bitte zuerst 'just install' ausführen."; \
fi
# Fährt die Entwicklungsumgebung herunter
[linux]
stop:
@if [ -d ".ddev" ]; then \
ddev stop; \
else \
echo "Keine Konfiguration gefunden, bitte zuerst 'just install' ausführen."; \
fi
# Zeigt Informationen zur Entwicklungsumgebung an
[linux]
describe:
@if [ -d ".ddev" ]; then \
ddev describe; \
else \
echo "Keine Konfiguration gefunden, bitte zuerst 'just install' ausführen."; \
fi
[linux]
[private]
run-installer:
# Composer install
@echo "\r\nInstalliere Composer Abhängigkeiten..."
@cd ./shop && composer install --working-dir=./includes
# Installer
@echo "\r\nInstalliere die Datenbank..."
@curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://jtl-shop-{{shop_version}}.ddev.site/install/install.php?task=doinstall
@curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://{{shop_url}}/install/install.php?task=doinstall
@if [ {{install_demo}} = "true" ]; then \
curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://jtl-shop-{{shop_version}}.ddev.site/install/install.php?task=installdemodata; \
curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://{{shop_url}}/install/install.php?task=installdemodata; \
fi
clear
@echo "Installation erfolgreich abgeschlossen."
@echo "Erreichbar unter: https://jtl-shop-{{shop_version}}.ddev.site"
@echo "Erreichbar unter: https://{{shop_url}}"
[linux]
[private]
copy-installer:
cp ./tools/installer/install_{{shop_version}}.zip ./shop/install/installer.zip
unzip -o ./shop/install/installer.zip -d ./shop/install
rm ./shop/install/installer.zip
[linux]
[private]
ddev-configuration:
ddev config --php-version {{php_version}} --project-type php --docroot ./shop --project-name jtl-shop-{{shop_version}}
ddev start
ddev exec composer install --working-dir=./shop/includes

Binary file not shown.