Skip to content

Add demoentityimporter module (custom importer for the 9.2 import engine) - #256

Draft
jolelievre wants to merge 2 commits into
PrestaShop:masterfrom
jolelievre:demoentityimporter-module
Draft

Add demoentityimporter module (custom importer for the 9.2 import engine)#256
jolelievre wants to merge 2 commits into
PrestaShop:masterfrom
jolelievre:demoentityimporter-module

Conversation

@jolelievre

Copy link
Copy Markdown
Contributor

Description

New example module showing how a module plugs its own entity importer into the core import engine introduced by the #41907 refactoring:

  • the importer implements PrestaShop\PrestaShop\Core\Import\Engine\EntityImporterInterface
  • the service is registered with autoconfigure: true — the core tags it automatically (core.import.entity_importer) and collects it into the EntityImporterRegistry, no manual tag needed
  • the registry feeds the import page entity dropdown, the mapping screen field list and batch execution

Verification after installing the module:

php bin/console debug:container --tag=core.import.entity_importer

Related

Shows how a module registers its own entity importer into the PrestaShop
9.2 core import engine: an autoconfigured service implementing
EntityImporterInterface is enough, the core tags and collects it into
the EntityImporterRegistry (entity dropdown, mapping screen and batch
execution pick it up automatically).

Companion example for PrestaShop/PrestaShop#42247 (#41907 import
engine).
The module was an empty registration shell; it now demonstrates the full
integration story with the core import engine:

- DemoNote Doctrine entity in src/Entity (auto-mapped by the core for
  active modules), backing table created at module install
- DemoNoteImporter extends the new AbstractEntityImporter base (cursor-
  resumable batch loop, phase-id guard, default unit count) and follows
  the updated engine contract (getLabel(), string phase ids, plain array
  records, skip rows consumed at normalization)
- validation phase (note required, max 255 chars) and database phase
  persisting one DemoNote per row (create, or update by mapped id)
- sample CSV and README walkthrough
@jolelievre
jolelievre force-pushed the demoentityimporter-module branch from 25486fb to f7bd7d2 Compare August 6, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant