IsConfigurableProductChildrenSalable is incredibly non-performant for large configurables
@engcom-Hotel is already working on this.
Since Jun 8, 2026.
- Dominant language
- PHP
- Stars
- 357
- Forks
- 262
- PR merge metrics
- No merged PRs in 30d
Description
### Preconditions (*)
1. `magento/inventory-metapackage` : 1.2.8-p3
2. a configurable exists with a large number of children. The configurable and all of it's children should be disabled.
3. MSI is not being used. only 1 inventory source exists, and legacy stock handling is being used.
### Steps to reproduce (*)
1. Save/PUT an existing child product via the magento product api
2.
### Expected result (*)
1. The child product save completes in under 20s assuming it's associated to a parent contianing 2k children.
### Actual result (*)
1. It takes about 30s, and even several minutes if the configurable has 30k children (which was my situation). This performance hit did not happen when saving child products via API in 2.4.2-p2. The performance loss is caused by the looping of all non-salable children introduced by IsConfigurableProductChildrenSalable
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.