Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2)
  • PHP 93.4%
  • CSS 6.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jürgen BRUCKNER 6eb1d5be38 Fix: Admin-Sprachobjekt wird jetzt selbst geladen (v1.0.4)
- Neue Methoden loadAdminLanguage() und adminText()
- Behebt Fatal error 'getLanguageValue() on null' im Adminbereich
- SPDX-Identifier EUPL-1.2 in allen Dateien
2026-10-16 19:31:47 +02:00
bestellungen Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
sprachen Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
.editorconfig Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
.gitignore Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
CHANGELOG.md Fix: Admin-Sprachobjekt wird jetzt selbst geladen (v1.0.4) 2026-10-16 19:31:47 +02:00
func_shop.php Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
index.php Fix: Admin-Sprachobjekt wird jetzt selbst geladen (v1.0.4) 2026-10-16 19:31:47 +02:00
LICENSE.txt Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
liesmich.txt Fix: Admin-Sprachobjekt wird jetzt selbst geladen (v1.0.4) 2026-10-16 19:31:47 +02:00
plugin.css Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00
README.md Shop v1.0.3: Onlineshop-Plugin für moziloCMS 3.0 (EUPL-1.2) 2026-10-16 14:41:49 +02:00

moziloShop – Shop-Plugin für moziloCMS 3.0

Einfacher Onlineshop als Plugin für moziloCMS 3.0: Produkte aus Plugin-Einstellungen und/oder aus mozilo-Inhaltsseiten, Warenkorb per Session, Kasse mit Adressformular, Bestellung per E-Mail und als Datei, USt-Anzeige, Zahlung über Mollie (inkl. Webhook und Status-Check) sowie eine schlüsselgeschützte Bestellübersicht.

Features

  • 🛍️ Produkte – zentral in den Plugin-Einstellungen oder automatisch aus mozilo-Inhaltsseiten (Zeile shop: Name|Preis|... im Seiteninhalt)
  • 🛒 Warenkorb – session-basiert, mit Mengenänderung und Mini-Warenkorb
  • 🧾 Checkout – Adressformular mit Pflichtfeld-Prüfung, optionale Datenschutz-Checkbox mit Link auf die Datenschutzerklärung
  • 📧 Bestellungen – E-Mail an den Betreiber und Textdatei unter plugins/Shop/bestellungen/ (inkl. .htaccess-Schutz)
  • 💳 Mollie-Zahlung – optional per API-Key (test_.../live_...), inkl. Webhook (shop_notify) und Live-Status-Check auf der Erfolgsseite; ohne Key: Rechnung/Vorkasse
  • 📊 USt-Anzeige – „inkl. X % MwSt.“ bei Preisen, enthaltene MwSt. im Warenkorb und in der Bestellung (Standard: 20 % / Österreich)
  • 📋 Bestellübersicht – Tag {Shop|bestellungen}, geschützt per Zugriffsschlüssel, mit Statusanzeige (OFFEN/BEZAHLT/…)

Installation

  1. Dieses Repository klonen oder als ZIP herunterladen:
    git clone https://github.com/EXAMPLE/moziloShop.git
    
  2. Den Plugin-Ordner unter dem Namen Shop in das Verzeichnis plugins/ der moziloCMS-Installation kopieren:
    plugins/Shop/index.php
    plugins/Shop/func_shop.php
    plugins/Shop/plugin.css
    ...
    
    Das Repository direkt als plugins/Shop klonen geht auch:
    git clone https://github.com/EXAMPLE/moziloShop.git Shop
    
  3. Im moziloCMS-Adminbereich unter Plugins → Shop die Einstellungen vornehmen (mindestens E-Mail-Adresse; empfohlen: USt-Satz, Bestellungen-Schlüssel, ggf. Mollie-API-Key).
  4. Auf einer Inhaltsseite einen der Plugin-Tags einfügen (siehe unten).

Verwendung (Plugin-Tags)

Tag Funktion
{Shop|} Produktliste (Einstellungen + konfigurierte Kategorie)
{Shop|kategorie:MeineKat} Produktliste aus der mozilo-Kategorie MeineKat
{Shop|cart} Warenkorb anzeigen
{Shop|checkout} Kasse/Adressformular anzeigen
{Shop|bestellungen} Bestellübersicht (erfordert ?shop_key=SCHLUESSEL)

Produkte pflegen

Variante 1 – Plugin-Einstellungen, eine Zeile pro Produkt:

Name|Preis|Beschreibung|Bild|Detailseite|Lager
Kaffeebecher|12.90|Keramik, spülmaschinenfest|becher.jpg|Produkte:Becher|25

Detailseite (Format Kategorie:Seite) und Lager sind optional.

Variante 2 – Inhaltsseiten: In den Einstellungen eine Kategorie eintragen (oder {Shop|kategorie:...} verwenden). Jede Inhaltsseite dieser Kategorie wird zum Produkt, wenn sie im Inhalt diese Zeile enthält:

shop: Kaffeebecher|12.90|Keramik, spülmaschinenfest|becher.jpg|25

Bestellübersicht

  1. In den Plugin-Einstellungen einen Bestellungen-Schlüssel setzen.
  2. Eine (ungelistete) Inhaltsseite mit {Shop|bestellungen} anlegen.
  3. Aufruf: index.php?cat=...&page=...&shop_key=SCHLUESSEL

Mollie-Zahlung einrichten

  1. Konto bei mollie.com anlegen.
  2. API-Key (zuerst test_..., für Produktion live_...) in den Plugin-Einstellungen eintragen.
  3. Bei Zahlung wird automatisch eine Payment über die Mollie Payments API erzeugt; webhookUrl und redirectUrl zeigen auf die CMS-Seite mit dem Plugin-Tag.
  4. Der Webhook (&shop_notify=1) schreibt Statusänderungen (BEZAHLT, STORNIERT, …) in die Bestelldatei; die Erfolgsseite prüft den Status zusätzlich live.

Voraussetzung: öffentlich erreichbare HTTPS-URLs für redirect und Webhook (z. B. über Let's Encrypt).

Sicherheitshinweise

  • plugins/Shop/bestellungen/ wird durch die mitgelieferte .htaccess (Require all denied) vor direktem Zugriff geschützt.
  • Bestellungen-Schlüssel lang und zufällig wählen; Übersichtsseite per robots/noindex vom Suchindex ausschließen.
  • Im Produktivbetrieb HTTPS erzwingen.

Anforderungen

  • moziloCMS 3.0
  • PHP 7.0+ (empfohlen 8.x), curl-Extension für Mollie-Zahlungen

Lizenz

EUPL-1.2 – European Union Public Licence v. 1.2. Der vollständige Text liegt als LICENSE.txt bei: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12

Die EUPL-1.2 ist einseitig mit der GPLv3 kompatibel; moziloCMS selbst steht unter GPL, die Nutzung des Plugins ist dadurch nicht eingeschränkt.

Autor

Juergen Bruckner