magento / magento/inventory

IsConfigurableProductChildrenSalable is incredibly non-performant for large configurables

Open
#3,456 7 comments 0 reactions 1 assignee View on GitHub

@engcom-Hotel is already working on this.

Since Jun 8, 2026.

Issue: needs update Progress: ready for grooming
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.