From cd5877e8d2d7996aa5c59a73619aa76679aeb15b Mon Sep 17 00:00:00 2001 From: Victor Svizev Date: Thu, 2 Apr 2026 13:26:18 +0200 Subject: [PATCH 1/3] PAC-973 Add Magento 2.4.9 compatibility. Use the project-specific XML loader class instead of the one removed in `symfony/dependency-injection` v8 --- CHANGELOG.md | 12 ++- bootstrap.php | 2 +- composer.json | 2 +- composer.lock | 90 +++++++++---------- tests/acceptance/bootstrap/AppKernel.php | 6 +- .../DependencyInjection/ImportExtension.php | 6 +- 6 files changed, 64 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57ddefd0..d36e848d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ -# Version 5.1.0 (comming soon) +# Version 5.2.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 5.1.0 ## Features diff --git a/bootstrap.php b/bootstrap.php index 23c356c2..e8eaec44 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -21,7 +21,7 @@ // import the used classes use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use TechDivision\Import\DependencyInjection\Loader\XmlFileLoader; use TechDivision\Import\Cli\Utils\DependencyInjectionKeys; // initialize the DI container and set the vendor directory diff --git a/composer.json b/composer.json index 4ee2949c..2f9f99ff 100755 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "CLI providing single-threaded Magento 2 importing functionality based on Pacemaker", "license": "MIT", "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.1", "techdivision/import-cli": "^13.1", "techdivision/import-app-simple": "^19.0", diff --git a/composer.lock b/composer.lock index 8cb46194..22b3b6d4 100644 --- a/composer.lock +++ b/composer.lock @@ -21,7 +21,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", @@ -158,7 +158,7 @@ }, "require": { "doctrine/deprecations": "^1", - "php": "^8.1", + "php": "^8.3", "symfony/polyfill-php84": "^1.30" }, "require-dev": { @@ -291,7 +291,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "doctrine/coding-standard": "^11", @@ -1386,7 +1386,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "captainhook/plugin-composer": "^5.3", @@ -3137,7 +3137,7 @@ "laminas/laminas-filter": "^2.31.0", "league/event": "^2.2.0", "monolog/monolog": "^2.9|^3.7", - "php": "^8.1", + "php": "^8.3", "psr/cache": "^2.0.0|^3.0.0", "psr/container": "^1.1.2", "psr/log": "^1.0.0|^2.0.0|^3.0.0", @@ -3204,7 +3204,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -3259,7 +3259,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -3315,7 +3315,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-attribute": "^23.0.0" }, "require-dev": { @@ -3370,7 +3370,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "consolidation/robo": "^4.0.2", @@ -3424,7 +3424,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "ramsey/uuid": "^4.2|^4.7", "techdivision/import-cache": "^2.0.0" }, @@ -3480,7 +3480,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -3535,7 +3535,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-category": "^22.0.0", "techdivision/import-ee": "^17.0.0" }, @@ -3591,7 +3591,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "ramsey/uuid": "^4.2|^4.7", "symfony/config": "~4.0|~5.0|~6.0", "symfony/console": "~4.0|~5.0|~6.0|~7.0", @@ -3652,7 +3652,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "consolidation/robo": "^4.0.2", @@ -3709,7 +3709,7 @@ "doctrine/collections": "^2.2.2", "jean85/pretty-package-versions": "^2.0.6", "jms/serializer": "^3.30.0", - "php": "^8.1", + "php": "^8.3", "symfony/expression-language": "~6.4.8", "techdivision/import": "^18.0.0", "techdivision/import-dbal": "^2.0.0" @@ -3765,7 +3765,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -3820,7 +3820,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-attribute": "^23.0.0", "techdivision/import-converter": "^12.0.0", "techdivision/import-customer": "^18.0.0" @@ -3877,7 +3877,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-converter": "^12.0.0", "techdivision/import-ee": "^17.0.0" }, @@ -3933,7 +3933,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-attribute": "^23.0.0", "techdivision/import-converter": "^12.0.0", "techdivision/import-product": "^26.0.0" @@ -3990,7 +3990,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-category": "^22.0.0", "techdivision/import-converter": "^12.0.0", "techdivision/import-product": "^26.0.0" @@ -4047,7 +4047,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -4102,7 +4102,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-customer": "^18.0.0" }, "require-dev": { @@ -4157,7 +4157,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-cache": "^2.0.0" }, "require-dev": { @@ -4214,7 +4214,7 @@ }, "require": { "league/event": "~2.0", - "php": "^8.1", + "php": "^8.3", "techdivision/import-cache": "^2.0.0", "techdivision/import-dbal": "^2.0.0" }, @@ -4271,7 +4271,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -4326,7 +4326,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import": "^18.0.0" }, "require-dev": { @@ -4381,7 +4381,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -4436,7 +4436,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product-bundle": "^26.0.0", "techdivision/import-product-ee": "^27.0.0" }, @@ -4492,7 +4492,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-ee": "^17.0.0", "techdivision/import-product": "^26.0.0" }, @@ -4548,7 +4548,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product-link": "^26.0.0" }, "require-dev": { @@ -4603,7 +4603,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product-ee": "^27.0.0", "techdivision/import-product-grouped": "^20.0.0" }, @@ -4659,7 +4659,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -4714,7 +4714,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product-ee": "^27.0.0", "techdivision/import-product-link": "^26.0.0" }, @@ -4770,7 +4770,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -4825,7 +4825,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product-ee": "^27.0.0", "techdivision/import-product-media": "^28.0.0" }, @@ -4881,7 +4881,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -4936,7 +4936,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -4996,7 +4996,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -5051,7 +5051,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product": "^26.0.0" }, "require-dev": { @@ -5106,7 +5106,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-product-ee": "^27.0.0", "techdivision/import-product-variant": "^26.0.0" }, @@ -5162,7 +5162,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "consolidation/robo": "^4.0.2", @@ -5216,7 +5216,7 @@ "shasum": "" }, "require": { - "php": "^8.1", + "php": "^8.3", "techdivision/import-serializer": "^2.0.0" }, "require-dev": { @@ -6325,7 +6325,7 @@ }, "require": { "doctrine/deprecations": "^0.5.3|^1", - "php": "^8.1", + "php": "^8.3", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, @@ -8005,7 +8005,7 @@ "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "php-coveralls/php-coveralls": "^2.0", @@ -10819,7 +10819,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.1" + "php": "^8.3" }, "platform-dev": {}, "plugin-api-version": "2.6.0" diff --git a/tests/acceptance/bootstrap/AppKernel.php b/tests/acceptance/bootstrap/AppKernel.php index 9f797a56..6060de69 100644 --- a/tests/acceptance/bootstrap/AppKernel.php +++ b/tests/acceptance/bootstrap/AppKernel.php @@ -43,7 +43,7 @@ class AppKernel extends Kernel * @return iterable|\Symfony\Component\HttpKernel\Bundle\BundleInterface[] An iterable of bundle instances * @see \Symfony\Component\HttpKernel\KernelInterface::registerBundles() */ - public function registerBundles() + public function registerBundles(): iterable { // load the environment variables @@ -63,8 +63,8 @@ public function registerBundles() * @return void * @see \Symfony\Component\HttpKernel\KernelInterface::registerContainerConfiguration() */ - public function registerContainerConfiguration(LoaderInterface $loader) + public function registerContainerConfiguration(LoaderInterface $loader): void { $loader->load(__DIR__.'/Resources/config/config_'.$this->getEnvironment().'.yml'); } -} \ No newline at end of file +} diff --git a/tests/acceptance/bootstrap/DependencyInjection/ImportExtension.php b/tests/acceptance/bootstrap/DependencyInjection/ImportExtension.php index 6ca19f68..58bbc8b9 100644 --- a/tests/acceptance/bootstrap/DependencyInjection/ImportExtension.php +++ b/tests/acceptance/bootstrap/DependencyInjection/ImportExtension.php @@ -22,7 +22,7 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use TechDivision\Import\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\HttpKernel\DependencyInjection\Extension; /** @@ -36,14 +36,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'); From 7e509917419b56b2d5480dbd798584fd95be7c74 Mon Sep 17 00:00:00 2001 From: Victor Svizev Date: Mon, 13 Apr 2026 14:08:39 +0200 Subject: [PATCH 2/3] PAC-973 Add AGENTS.md --- AGENTS.md | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..da431aba --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,160 @@ +# AGENTS.md - import-cli-simple + +## Zweck & Verantwortung + +Das `import-cli-simple` Modul ist die **Master CLI-Anwendung** für das Pacemaker Import-System. Es ist ein **Tier 7 Modul** und integriert **ALLE 38 anderen Module**. + +**Hauptverantwortung:** +- Vollständige CLI für Single-Threaded Imports +- Integration aller Importer (Attribute, Category, Customer, Product, etc.) +- Integration aller Converter Module +- Integration aller EE Features +- Integration aller MSI Features +- Zentrale Entry Point für die meisten Use-Cases + +## Architektur & Design Patterns + +### Kern-Klassen +- **SimpleCliApplication**: Haupt-CLI-Anwendung +- **ImportCommand**: Haupt-Import-Command +- **ConfigurationLoader**: Konfiguration-Loader + +### Verwendete Patterns +- **Command Pattern**: Für CLI Commands +- **Facade Pattern**: Vereinfachte Schnittstelle für alle Module +- **Dependency Injection**: Für Dependency Management + +## Abhängigkeiten + +### Externe Pakete +- **egulias/email-validator** ^1.0|^2.0|^3.0|^4.0 - Email-Validierung + +### TechDivision Dependencies (35 Module!) +**Tier 3-4 (Core):** +- **import** ^18.1 - Core Framework +- **import-cli** ^13.1 - CLI Framework +- **import-app-simple** ^19.0 - Simple Application +- **import-configuration-jms** ^18.1 - JMS Configuration + +**Tier 4 (Entity Importers):** +- **import-attribute** ^23.1 - Attribute Importer +- **import-category** ^22.1 - Category Importer +- **import-customer** ^18.1 - Customer Importer +- **import-product** ^26.2 - Product Importer +- **import-converter** ^12.0 - Converter Framework +- **import-ee** ^17.0 - EE Functionality + +**Tier 5 (Specialized Importers):** +- **import-attribute-set** ^18.1 - Attribute Set Importer +- **import-customer-address** ^18.1 - Customer Address Importer +- **import-product-bundle** ^26.1 - Bundle Product Importer +- **import-product-grouped** ^20.1 - Grouped Product Importer +- **import-product-link** ^26.1 - Product Link Importer +- **import-product-media** ^28.1 - Product Media Importer +- **import-product-msi** ^21.1 - MSI Stock Importer +- **import-product-tier-price** ^19.1 - Tier Price Importer +- **import-product-url-rewrite** ^26.1 - URL Rewrite Importer +- **import-product-variant** ^26.1 - Configurable Product Importer + +**Tier 5 (Converters):** +- **import-converter-customer-attribute** ^4.1 - Customer Attribute Converter +- **import-converter-product-attribute** ^11.1 - Product Attribute Converter +- **import-converter-product-category** ^11.0 - Product Category Converter +- **import-converter-ee** ^12.0 - EE Converter + +**Tier 6 (EE Extensions):** +- **import-category-ee** ^23.0 - EE Category Extensions +- **import-product-ee** ^27.2 - EE Product Extensions +- **import-product-bundle-ee** ^28.0 - EE Bundle Extensions +- **import-product-grouped-ee** ^22.0 - EE Grouped Extensions +- **import-product-link-ee** ^28.0 - EE Link Extensions +- **import-product-media-ee** ^29.0 - EE Media Extensions +- **import-product-variant-ee** ^28.0 - EE Variant Extensions + +**Infrastructure (Tier 0-2):** +- **import-cache** ^2.0 - Cache Interfaces +- **import-dbal** ^2.0 - DBAL Interfaces +- **import-serializer** ^2.1 - Serializer Interfaces +- **import-dbal-collection** ^2.1 - DBAL Implementation +- **import-cache-collection** ^2.0 - Cache Implementation +- **import-serializer-csv** ^2.1 - CSV Serializer +- **import-configuration** ^6.1 - Configuration Interfaces + +### Abhängig von diesem Modul +- **Keine** - Master CLI, kein Dependent + +## Wichtige Entry Points + +### CLI Application +```php +// Simple CLI Application +SimpleCliApplication::run(): void +SimpleCliApplication::execute($operation): void + +// Import Command +ImportCommand::execute(InputInterface $input, OutputInterface $output): int +``` + +### Verwendungsbeispiel +```bash +# Attribute Import +bin/magento import:attribute config.xml + +# Category Import +bin/magento import:category config.xml + +# Product Import (mit allen Variants) +bin/magento import:product config.xml + +# Vollständiger Import (alle Entities) +bin/magento import:all config.xml +``` + +## Events & Extension Points + +**Keine Events** - Tier 7 CLI-Modul + +## Hints für KI-Agenten + +### Wichtig zu verstehen +1. **Tier 7 Modul**: Master CLI mit allen 38 anderen Modulen +2. **35 TechDivision Dependencies**: Integriert alle Importer +3. **Facade Pattern**: Vereinfachte Schnittstelle für alle Features +4. **Single-Threaded**: Für Single-Threaded Imports +5. **Entry Point**: Zentrale Entry Point für die meisten Use-Cases + +### Architektur-Übersicht +``` +import-cli-simple (Master CLI) + ├─ Tier 3-4: Core Framework (import, import-cli, import-app-simple) + ├─ Tier 4: Entity Importers (attribute, category, customer, product, converter, ee) + ├─ Tier 5: Specialized Importers (bundle, grouped, link, media, msi, tier-price, url-rewrite, variant) + ├─ Tier 5: Converters (customer-attr, product-attr, product-category, ee) + ├─ Tier 6: EE Extensions (category-ee, product-ee, bundle-ee, grouped-ee, link-ee, media-ee, variant-ee) + └─ Tier 0-2: Infrastructure (cache, dbal, serializer, configuration) +``` + +### Bei Änderungen +- **Breaking Changes**: Beachte alle 35 Dependencies +- **Backward Compatibility**: Alte Imports sollten noch funktionieren +- **CLI-Kompatibilität**: Beachte CLI-Interface + +### Implementierungs-Hinweise +- Nutze Facade Pattern für einfache Schnittstelle +- Beachte Dependency-Reihenfolge +- Erwäge Performance bei großen Imports + +## Bekannte Einschränkungen + +- **Single-Threaded**: Nicht für Multi-Threaded Imports +- **Memory-Intensive**: Große Datenmengen können Memory-Probleme verursachen +- **Keine Transaktionen**: Transaktions-Handling erfolgt in Importern +- **Keine Rollback**: Fehler können zu Daten-Inkonsistenzen führen + +## Zusammenfassung + +`import-cli-simple` ist das **Master CLI-Modul** des Pacemaker-Systems. Es integriert **ALLE 38 anderen Module** und bietet eine vollständige CLI für Single-Threaded Imports. Es ist die zentrale Entry Point für die meisten Use-Cases. + +**Für Agenten:** Verstehe dieses Modul als **Master CLI** mit 35 TechDivision Dependencies, Facade Pattern, und vollständiger Integration aller Import-Features. + +**Kritisch:** Dieses Modul ist das Herzstück des Pacemaker-Systems. Änderungen hier können alle 35 Dependents beeinflussen! From a28eb73acc63a920d3d1ecd84bf6ff2a113224cd Mon Sep 17 00:00:00 2001 From: Victor Svizev Date: Tue, 14 Apr 2026 17:06:03 +0200 Subject: [PATCH 3/3] PAC-973 Update dependencies --- composer.json | 76 +++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/composer.json b/composer.json index 2f9f99ff..ed02df45 100755 --- a/composer.json +++ b/composer.json @@ -4,44 +4,44 @@ "license": "MIT", "require": { "php": "^8.3", - "techdivision/import": "^18.1", - "techdivision/import-cli": "^13.1", - "techdivision/import-app-simple": "^19.0", - "techdivision/import-configuration-jms": "^18.1", - "techdivision/import-ee": "^17.0", - "techdivision/import-attribute": "^23.1", - "techdivision/import-attribute-set": "^18.1", - "techdivision/import-customer": "^18.1", - "techdivision/import-customer-address": "^18.1", - "techdivision/import-category": "^22.1", - "techdivision/import-category-ee": "^23.0", - "techdivision/import-product": "^26.2", - "techdivision/import-product-msi": "^21.1", - "techdivision/import-product-tier-price": "^19.1", - "techdivision/import-product-url-rewrite": "^26.1", - "techdivision/import-product-link": "^26.1", - "techdivision/import-product-media": "^28.1", - "techdivision/import-product-bundle": "^26.1", - "techdivision/import-product-variant": "^26.1", - "techdivision/import-product-grouped": "^20.1", - "techdivision/import-product-ee": "^27.2", - "techdivision/import-product-link-ee": "^28.0", - "techdivision/import-product-media-ee": "^29.0", - "techdivision/import-product-bundle-ee": "^28.0", - "techdivision/import-product-variant-ee": "^28.0", - "techdivision/import-product-grouped-ee": "^22.0", - "techdivision/import-cache": "^2.0", - "techdivision/import-dbal": "^2.0", - "techdivision/import-serializer": "^2.1", - "techdivision/import-converter": "^12.0", - "techdivision/import-converter-ee": "^12.0", - "techdivision/import-converter-product-category": "^11.0", - "techdivision/import-converter-product-attribute": "^11.1", - "techdivision/import-converter-customer-attribute": "^4.1", - "techdivision/import-serializer-csv": "^2.1", - "techdivision/import-dbal-collection": "^2.1", - "techdivision/import-cache-collection": "^2.0", - "techdivision/import-configuration": "^6.1", + "techdivision/import": "^18.2", + "techdivision/import-cli": "^13.2", + "techdivision/import-app-simple": "^19.1", + "techdivision/import-configuration-jms": "^18.2", + "techdivision/import-ee": "^17.1", + "techdivision/import-attribute": "^23.2", + "techdivision/import-attribute-set": "^18.2", + "techdivision/import-customer": "^18.2", + "techdivision/import-customer-address": "^18.2", + "techdivision/import-category": "^22.2", + "techdivision/import-category-ee": "^23.1", + "techdivision/import-product": "^26.3", + "techdivision/import-product-msi": "^21.2", + "techdivision/import-product-tier-price": "^19.2", + "techdivision/import-product-url-rewrite": "^26.2", + "techdivision/import-product-link": "^26.2", + "techdivision/import-product-media": "^28.2", + "techdivision/import-product-bundle": "^26.2", + "techdivision/import-product-variant": "^26.2", + "techdivision/import-product-grouped": "^20.2", + "techdivision/import-product-ee": "^27.3", + "techdivision/import-product-link-ee": "^28.1", + "techdivision/import-product-media-ee": "^29.1", + "techdivision/import-product-bundle-ee": "^28.2", + "techdivision/import-product-variant-ee": "^28.1", + "techdivision/import-product-grouped-ee": "^22.1", + "techdivision/import-cache": "^2.1", + "techdivision/import-dbal": "^2.1", + "techdivision/import-serializer": "^2.2", + "techdivision/import-converter": "^12.1", + "techdivision/import-converter-ee": "^12.1", + "techdivision/import-converter-product-category": "^11.1", + "techdivision/import-converter-product-attribute": "^11.2", + "techdivision/import-converter-customer-attribute": "^4.2", + "techdivision/import-serializer-csv": "^2.2", + "techdivision/import-dbal-collection": "^2.2", + "techdivision/import-cache-collection": "^2.1", + "techdivision/import-configuration": "^6.2", "egulias/email-validator": "^3.2|^4.0" }, "require-dev": {