Sync the 2.4.9 line with upstream develop (bc7899a) - #41
Merged
jeanmarcos-dev merged 178 commits intoAug 3, 2026
Conversation
… into ACP2E-4349
… into ACP2E-4349
… into ACP2E-4349
… into ACP2E-4349
… into ACP2E-4349
… into ACP2E-4349
… into ACP2E-4349
…division name is updated via data patch
…tals-information, estimate-shipping-modules)
…tals-information, estimate-shipping-modules)
…tals-information, estimate-shipping-modules)
…tals-information, estimate-shipping-modules)
…tals-information, estimate-shipping-modules)
… into ACP2E-4349
…tals-information, estimate-shipping-modules)
…20_flowers [Support Tier-4 flowers] 04-20-2026 Regular delivery of bugfixes and improvements
… into ACP2E-4349
… which skipped for same reason - Refactorfed the test
… which skipped for same reason - Refactorfed the test
… which skipped for same reason - Refactored the test
… which skipped for same reason - Removed skipped tests
…ment-v61 Ninjas Functional Mainline deployment PR
…ment-version44 Ninjas Functional Mainline deployment PR
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…en changing shipping carrier
…16_moyseyenko [Support Tier-4 moyseyenko] 07-16-2026 Regular delivery of bugfixes and improvements
…30_zota [Support Tier-4 zota] 07-30-2026 Regular delivery of bugfixes and improvements
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges
magento/inventory@develop(bc7899a, 2026-07-30) into the 2.4.9 line, bringing thedistribution back in sync with upstream and turning the next sync into a plain
git merge upstream/developinstead of another manual audit.The merge-base was
b3fba80(PR magento#703, 2026-04-28), 176 commits behind. Most of that range isMFTF coverage (
ACQE-*) and Adobe's own PR Quality Gates tooling; the functional delta is fivetickets.
Upstream fixes this brings in
queue="…"attribute from the<publisher>entries inInventoryCatalog,InventoryIndexerandInventorySales. This revertsAC-14558(RabbitMQ → ActiveMQ migration). The attribute is read only by
module-stomp(
Model/Publisher.php,Model/MassPublisher.php, both$publisher->getQueue() ?: $topicName),so it is inert for AMQP and the MySQL queue. For the seven MSI topics the destination does not
change either, since every consumer declares a queue named after its topic; the only effective
change is on the three
async.V1.inventory.bulk-product-source-*.POSTtopics under ActiveMQ.GetStockIdForCurrentWebsite::execute()no longer propagatesNoSuchEntityExceptionwhen?store=carries an unknown code, falling back to the currentstore. That path is hit by the category listing stock plugins, the GraphQL stock-status and
only-x-left resolvers, and cart merging.
InventoryGroupedProductIndexer/Indexer/SiblingProductsProvidernow filterscatalog_product_linkbylink_type_id = LINK_TYPE_GROUPED, so related, up-sell andcross-sell links stop being treated as grouped children. The grouped
SelectBuilderalreadyapplied that filter; only the sibling provider was missing it.
region_idwhen one isset, instead of
loadByName, which broke after a Directory subdivision rename.scoped to the GraphQL area.
ACP2E-4805andACP2E-4866were already cherry-picked here and their files are byte-identicalto upstream, so the merge is a no-op for them.
Conflict resolution
Seven files conflicted:
InventoryBundleProductIndexer/Indexer/SelectBuilder.php->order('sku ASC')untouchedInventoryConfigurableProductIndexer/Indexer/SelectBuilder.php$enabledChildIsSalableover upstream'sMAX(stock.is_salable), kept$eavConfig, and removed a$manageStockblock the auto-merge had duplicatedCompositeProductReindexOnNonDefaultStockTest.php,IsConfigurableProductSalableOnNonDefaultStockTest.phpadd/add. Our copies were byte-identical to the upstream blobs of the commits they were picked from, so upstream's newer versions (real secondary website viaScopeFixture/WebsiteFixture) winInventoryConfigurableProductIndexer/composer.json,InventoryGroupedProductIndexer/composer.jsoninventory-configuration-api, already present and pinned here; kept our pinned blockInventoryInStorePickupQuoteGraphQl/composer.jsonmodule-checkout: 100.4.*andmodule-inventory-in-store-pickup-shipping-api: 1.1.*with this distribution's pinned constraintsThe
CartManagementPluginhalf ofACP2E-4741was deliberately not applied: it patchesaroundPlaceOrderto fall back fromcartRepository->getActive()toget(), and this forkrewrote that plugin to
aroundSubmit(QuoteManagement, callable, Quote, $orderData), whichreceives the quote directly and never queries the repository.
CI change
The merge brings
.github/scripts/check_copyright_pr.php, a CLI script that legitimately usesecho/exitand therefore fails the Magento2 standard. The QA gate now excludes.github/fromits file scan, in both
dist-qa.ymlanddist-qa-local.sh— the gate covers distributed modulecode, not CI tooling inherited from upstream.
Upstream's
pr-quality-gates.ymlis kept as-is. It is guarded byif: vars.PR_QA_ENABLED_JOBS != '', which is unset here, so it stays skipped; deleting it wouldcreate permanent divergence and reintroduce a conflict on every future sync.
Verification
Nothing owned by this fork changed. A per-file check over the 314 paths touched only by the fork
reports 0 altered, 0 lost and 0 resurrected; module packaging is unchanged at 74 modules and 148
replaceentries.Run against a real Magento 2.4.9 install with this branch deployed:
setup:di:compile— cleancancellation, credit memo, partial shipment, flag-off regression, mid-flight toggle)
0 oversells, 0 deadlocks
(order, source)group balancedGetChildrenSkusOfParentSkusTest::testExecute)reproduces identically on
dist-2.4.9without this merge and is caused by array keys preservedby
array_uniqueThree in-store-pickup and source-deduction unit tests abort under PHPUnit 12.5.31 when
createPartialMockis applied to interfaces carrying extension attributes. The same abortreproduces on the pre-merge tree, and the test files are byte-identical to upstream.
The perf-toolkit leg of the stress suite (concurrent checkouts over 300 multi-source SKUs) was not
run: that dataset does not exist in the 2.4.9 database. Real concurrent checkout behaviour is
covered by the cross-stock harness above; what is missing is scale.