I’m working on a Magento 2.4.6 project where the ERP sends product data to Magento through a custom REST API endpoint.
Our current workflow is slow because Magento’s product creation API (/rest/V1/products) takes a lot of time when creating:
- simple product
- configurable parent
- link simple to parent
- create size options
- update prices for multiple store views
This results in 4 separate API calls and heavy processing (save() triggers events, validators, indexers, MSI logic, URL rewrites, etc.).
Problem
Per configurable product, the whole process is taking too long. CPU usage increases during import and indexers pile up.
Idea
Instead of calling Magento’s standard APIs, we are considering:
- Using a MAGMI-style importer approach inside our custom module
- Writing directly into Magento DB tables for product creation and
configurable relations - Running indexers only once after a batch
- Maintaining our custom business logic but skipping heavy Magento
models
Basically not installing Magmi, but implementing the same fast direct DB insertion logic inside our own module.
The Question
Is this a recommended or safe approach for Magento 2.4.6?
Specifically:
Is it safe to insert directly into tables like:
- catalog_product_entity
- catalog_product_entity_* (EAV tables)
- catalog_product_super_link
- catalog_product_relation
- catalog_product_link
- catalog_category_product
- eav_attribute_option
- eav_attribute_option_value
Has anyone implemented a fully custom “fast product importer” for Magento 2 (similar to MAGMI)?
If yes, what pitfalls should I watch out for (indexing, MSI stock, URL rewrites, attribute sets)?
Is there any official documentation or recommended alternative for high-performance product imports in Magento 2.4.x?
Goal
- Reduce number of API calls
- Avoid slow model-based product saves
- Create configurable products (parent + child + size attribute) in
one pass - Maintain Magento data integrity
- Avoid corrupting EAV or MSI tables
Any suggestions, best practices, or warnings from people who already built such a solution would be very helpful.