# Aimeos

Aimeos ist eine Open-Source-Programmbibliothek, die einen vollständigen Satz von E-Commerce-Komponenten für PHP-Anwendungen bereitstellt. Sie ist auf Geschwindigkeit und Skalierbarkeit optimiert sowie leicht in existierende Webanwendungen zu integrieren.

## Geschichte

Die Entwicklung der Softwarebibliothek begann 2008, als sich zeigte, dass keines der damals existierenden Shopsysteme flexibel und schnell genug war um alle Kundenanforderungenen umsetzen zu können. Die erste offizielle Version des unter LGPL lizenzierten Kerns erfolgte 2012 unter dem Namen Arcavias. Im März 2014 wurde die erste stabile Version des Kerns freigegeben. Seit Oktober 2014 wird die Softwarebibliothek von unabhängigen Entwicklern unter dem Namen Aimeos weiter geführt und in verschiedene PHP-Frameworks integriert.

## Aimeos Core

Der Kern (Aimeos Core), der die E-Commerce-Komponenten bereitstellt, besteht selbst aus mehreren Schichten. Die unterste Abstraktionsebene beinhaltet alle Adapter, die für eine Integration in die umgebende Applikation notwendig sind. Darüber befindet sich die Schicht für die Datenhaltung. Sie stellt sicher, dass die darüber liegenden Komponenten auf eine einheitliche Schnittstelle zur Verwaltung der Daten zugreifen können, egal wie die Daten darunter gespeichert sind. Die Controller darüber tragen die Geschäftslogik in sich. Sie stellen den Komponenten in der obersten Schicht die benötigten Daten zur Verfügung und verarbeiten deren Eingaben.
Auf folgende Komponenten kann die Applikation zugreifen:
* Filterung, facettierte und Volltextsuche
* Kategorieinformationen
* Listenansichten
* Detailansichten
* Produktfavoriten
* Beobachtete Produkte
* Produktdownloads
* Merklisten
* Warenkörbe
* Bestellprozess
* Bestellbestätigung
* Bestellhistorie
* Aktualisierung des Versand- und Zahlungsstatus
* E-Mailversand
Parallel dazu existieren Controller und Frontends für die Verwaltung der Shopdaten. Neben der auf Vue.js-basierenden Administrationsoberfläche gibt es zusätzlich eine JSON-API für den Austausch und Verwaltung der Daten im Shopsystem.
Alle Komponenten und Klassen des Systems können durch eigene Implementierungen erweitert oder ausgetauscht werden. Die Bibliothek ist darüber hinaus mandantenfähig, sodass sich beliebig viele Shops mit eigenständigen Produktkatalogen, Kundenstämmen, Bestellabwicklungen und Administrationsoberflächen innerhalb einer Installation abbilden lassen.

## Integrationen

Aimeos lässt sich als Komponentenbibliothek in jedes PHP-Framework und jede Applikation integrieren. Bisher stehen Integrationen in folgende Open-Source-Projekte zur Verfügung:
* TYPO3 CMS
* Flow
* Laravel
* Symfony
* Slim PHP
Der Aimeos Kern nutzt die Infrastruktur der Applikation oder des Frameworks so weit wie möglich, um z. B. auf die Ein-/Ausgabe- und Sessiondaten des Nutzers zuzugreifen, Links zu generieren oder für die Konfiguration der Komponenten. Die vollständige Liste der genutzten Infrastruktur (soweit vorhanden) umfasst:
* Authentifizierung
* Autorisierung
* Ausgabedaten (Response)
* Cache
* Dateisystemabstraktion
* E-Mail Generierung
* Eingabedaten (Request)
* Konfiguration
* Nutzersessions
* Protokollierung (Logging)
* URL Generierung (Routing)
* Übersetzungen
* Template-Engine
Zusätzlich ist noch die Integration der Template-Engine der verwendeten Applikation bzw. des Frameworks möglich.

## Community

Die Entwicklung der Software findet auf der offenen Plattform GitHub statt. Entwickler können direkt Änderungen am Code einbringen und den jeweils aktuellen Code herunterladen. Das Melden von Fehlern oder Featurewünschen ist ebenfalls über GitHub möglich. Um Aimeos in andere Sprachen zu übersetzen, wird die Plattform Transifex genutzt, durch die jeder nach einer Registrierung Übersetzungen anpassen oder für neue Sprachen erstellen kann.
Außerdem besteht die Möglichkeit, sich im Online-Forum auszutauschen und Fragen zu stellen. Die Dokumentation für Nutzer und Entwickler wird in einem Wiki gepflegt, in dem jeder Interessierte nach einer Registrierung Verbesserungen und neue Artikel einbringen kann.

## Versionen

| Version | Erscheinungsdatum | PHP Version | Bemerkungen |
| Aktuelle Version: 2020.07 | 7. Juli 2020 | >= 7.1.0 | Lieferantenimport |
| Ältere Version; nicht mehr unterstützt: 2020.04 | 7. April 2020 | >= 7.1.0 | Neues Theme |
| Ältere Version; nicht mehr unterstützt: 2020.01 | 7. Januar 2020 | >= 7.1.0 | Betaversion 2020 |
| Ältere Version; noch unterstützt: 2019.10 | 3. Oktober 2019 | >= 5.5.0 | Verbesserte Adminoberfläche |
| Ältere Version; nicht mehr unterstützt: 2019.07 | 2. July 2019 | >= 5.5.0 | Responsive e-mails/images |
| Ältere Version; nicht mehr unterstützt: 2019.04 | 4. April 2019 | >= 5.5.0 | API-Überarbeitung |
| Ältere Version; nicht mehr unterstützt: 2019.01 | 3. Januar 2019 | >= 5.5.0 | Beta-Version 2019 |
| Ältere Version; noch unterstützt: 2018.10 | 4. Oktober 2018 | >= 5.4.0 | LTS-Version 2018 |
| Ältere Version; nicht mehr unterstützt: 2018.07 | 4. Juli 2018 | >= 5.4.0 | Wertgutscheine |
| Ältere Version; nicht mehr unterstützt: 2018.04 | 2. April 2018 | >= 5.4.0 | Abonnements |
| Ältere Version; nicht mehr unterstützt: 2018.01 | 1. Januar 2018 | >= 5.4.0 | Beta-Version 2018 |
| Ältere Version; noch unterstützt: 2017.10 | 4. Oktober 2017 | >= 5.4.0 | LTS-Version 2017 |
| Ältere Version; nicht mehr unterstützt: 2017.07 | 3. Juli 2017 | >= 5.4.0 | Neues Admininterface |
| Ältere Version; nicht mehr unterstützt: 2017.04 | 7. April 2017 | >= 5.4.0 | JSON REST API |
| Ältere Version; nicht mehr unterstützt: 2017.01 | 4. Januar 2017 | >= 5.4.0 | Beta-Version 2017 |
| Ältere Version; noch unterstützt: 2016.10 | 4. Oktober 2016 | >= 5.3.3 | LTS-Version 2016 |
| Ältere Version; nicht mehr unterstützt: 2016.07 | 7. Juli 2016 | >= 5.3.3 | |
| Ältere Version; nicht mehr unterstützt: 2016.04 | 31. März 2016 | >= 5.3.3 | Stabile Version 2016 |
| Ältere Version; nicht mehr unterstützt: 2016.03 | 10. März 2016 | >= 5.3.3 | |
| Ältere Version; nicht mehr unterstützt: 2016.01 | 14. Januar 2016 | >= 5.3.3 | Unterstützt PSR-1, PSR-4 und PSR-7 |
| Ältere Version; noch unterstützt: 2015.10 | 1. Oktober 2015 | >= 5.2 | Version mit Langzeitsupport |
| Ältere Version; nicht mehr unterstützt: 2015.07 | 16. Juli 2015 | >= 5.2 | |
| Ältere Version; nicht mehr unterstützt: 2015.03 | 11. März 2015 | >= 5.2 | Erste Version unter dem Namen Aimeos |
| Legende:Ältere Version; nicht mehr unterstütztÄltere Version; noch unterstütztAktuelle VersionAktuelle VorabversionZukünftige Version ||||

## Technik

Die Mindestanforderungen sind:
* ein Unix-ähnliches System, z. B. Linux, macOS oder Solaris
* ein Webserver wie Apache oder Nginx
* eine relationale Datenbank, z. B. MySQL 5.7.8 oder neuer
* PHP 7.1 oder neuer