Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 139 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# AGENTS.md - import-ee

## Zweck & Verantwortung

Das `import-ee` Modul bietet **EE-spezifische Import-Funktionalität** für das Pacemaker Import-System. Es ist ein **Tier 4 Modul** und dient als Basis für alle EE-Extensions.

**Hauptverantwortung:**
- EE-spezifische Utilities und Funktionen
- Staging Table Management
- Sequence Management für EE
- Repository Pattern für EE-Daten
- Observer Pattern für EE-Hooks
- 4 Dependents (category-ee, product-ee, converter-ee)

## Architektur & Design Patterns

### Kern-Klassen
- **EeRepository**: Persistierung von EE-Daten
- **StagingRepository**: Verwaltung von Staging-Tabellen
- **SequenceRepository**: Verwaltung von Sequences
- **EeObserver**: Observer für EE-Hooks

### Verwendete Patterns
- **Observer Pattern**: Für EE-Hooks
- **Repository Pattern**: Für Daten-Persistierung
- **Factory Pattern**: Für Object-Erstellung

## Abhängigkeiten

### Externe Pakete
- **Keine** - Nur EE-Implementierungen

### TechDivision Dependencies
- **import** ^18.0.0 - Core Framework

### Abhängig von diesem Modul (4 Reverse Dependencies)
1. **import-category-ee** - EE Category Extensions
2. **import-product-ee** - EE Product Extensions
3. **import-converter-ee** - EE Converter
4. **import-cli-simple** - Master CLI

## Wichtige Entry Points

### Repository Klassen
```php
// EE Repository
EeRepository::create($row): void
EeRepository::update($row): void

// Staging Repository
StagingRepository::create($row): void
StagingRepository::findByEntityId($entityId): array

// Sequence Repository
SequenceRepository::create($row): void
SequenceRepository::findByEntityId($entityId): array
```

### Observer Klassen
```php
// EE Observer
EeObserver::handle($row): void
```

## Events & Extension Points

**Keine Events** - Tier 4 EE-Modul

## Hints für KI-Agenten

### Wichtig zu verstehen
1. **Tier 4 Modul**: Basis für EE-Extensions
2. **EE-fokussiert**: Spezialisiert auf Magento EE Features
3. **Staging & Sequence**: Zentral für EE-Funktionalität
4. **Observer Pattern**: Für EE-Hooks
5. **Repository Pattern**: Für Daten-Persistierung
6. **4 Dependents**: Basis für spezialisierte EE-Module

### Bei Änderungen
- **EE-Kompatibilität**: Beachte EE-Struktur
- **Observer-Kompatibilität**: Neue Observers sollten optional sein
- **Backward Compatibility**: Alte Imports sollten noch funktionieren

### Implementierungs-Hinweise
- Nutze Observer Pattern für Custom EE-Processing
- Beachte Staging-Tabellen bei EE-Imports
- Erwäge Sequence-Management

## Häufige Use Cases

### CSV-Beispiel: EE Product Import mit Staging
```csv
sku,name,staging_date,sequence_value
PRODUCT-EE-1,EE Product 1,2026-01-01,100
PRODUCT-EE-2,EE Product 2,2026-02-01,101
PRODUCT-EE-3,EE Product 3,2026-03-01,102
```

### Szenarien
1. **Staging Import**: Products in Staging-Tabellen importieren für spätere Veröffentlichung
2. **Sequence Management**: Automatische Sequence-Verwaltung für EE-Entities
3. **Bulk EE Updates**: Mehrere Staging-Importe parallel

## Performance-Überlegungen

- **Staging-Overhead**: Staging-Tabellen verursachen ~10-15% zusätzliche Schreiboperationen
- **Sequence-Lookups**: Sequence-Abfragen können mit vielen Entities langsam werden
- **Memory-Usage**: Staging-Data im Memory kann bei 100k+ Produkten zu >500MB führen
- **Empfehlung**: Nutze Batch-Size von 1000-5000 für optimale Performance

## Verwandte Module

- **import-product-ee**: Nutzt `import-ee` für Product-Staging
- **import-category-ee**: Nutzt `import-ee` für Category-Staging
- **import-converter-ee**: Nutzt `import-ee` für Converter-Staging
- **import-ee** ← **diese Datei**

## Troubleshooting & FAQ

**Q: Staging-Tabellen werden nicht erstellt**
- A: Prüfe ob EE Staging-Module korrekt installiert sind: `bin/magento module:status | grep Staging`

**Q: Sequence-Werte sind falsch**
- A: Leere Sequence-Tabellen und re-starte Import: `TRUNCATE table sequence_product`

**Q: "EE-Only" Fehler beim CE-Import**
- A: Dieses Modul ist nur für Magento EE. Für CE nutze normale Product-Import Module.

## Bekannte Einschränkungen

- **EE-Only**: Nur für Magento EE Deployments
- **Keine CE-Features**: CE-Features sind in anderen Modulen
- **Staging-Abhängig**: Erfordert EE Staging-Funktionalität

## Zusammenfassung

`import-ee` ist ein **Tier 4 Modul**, das EE-spezifische Import-Funktionalität für das Pacemaker-System bietet. Es ist die Basis für alle EE-Extensions und unterstützt Staging und Sequence Management.

**Für Agenten:** Verstehe dieses Modul als **EE Import-Basis** mit Staging und Sequence Support.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# Version 17.1.0

## Features

### PHP 8.5 Compatibility

* Update dependencies
* Remove PHP 8.2 support
* Use the project-specific XML loader class instead of the one removed in `symfony/dependency-injection` v8

# Version 17.0.0

### PHP 8.1 Compatibility
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"description": "Pacemaker library providing basic Magento 2 EE import functionality",
"license": "MIT",
"require": {
"php": "^8.1",
"techdivision/import": "^18.0.0"
"php": "^8.3",
"techdivision/import": "^18.2"
},
"require-dev": {
"doctrine/dbal": "^4.0.4",
Expand Down
6 changes: 3 additions & 3 deletions symfony/DependencyInjection/ImportExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use TechDivision\Import\DependencyInjection\Loader\XmlFileLoader;

/**
* The symfony extension implementation for the M2IF import EE library.
Expand All @@ -30,14 +30,14 @@
*/
class ImportExtension extends Extension
{

/**
* Load's the bundles DI configuration.
*
* @param array $configs The array with the configuration
* @param \Symfony\Component\DependencyInjection\ContainerBuilder $container The container instance
* @return void
*/
public function load(array $configs, ContainerBuilder $container)
public function load(array $configs, ContainerBuilder $container): void
{
$loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__) . '/Resources/config'));
$loader->load('services.xml');
Expand Down
Loading