Skip to content

Backport the two applicable upstream fixes to the 2.4.8 line - #43

Merged
jeanmarcos-dev merged 2 commits into
dist-2.4.8from
integrate/2.4.8-upstream-robustness-fixes
Aug 4, 2026
Merged

Backport the two applicable upstream fixes to the 2.4.8 line#43
jeanmarcos-dev merged 2 commits into
dist-2.4.8from
integrate/2.4.8-upstream-robustness-fixes

Conversation

@jeanmarcos-dev

Copy link
Copy Markdown
Owner

Backports the two upstream fixes from the 2.4.9 sync (#41) that also apply to this line.

The other three tickets from that sync do not apply here: ACP2E-4349 reverts a regression this
line never had (its publishers already carry no pinned queue attribute), and ACP2E-4741 /
ACP2E-4973 touch files that do not exist on 2.4.8.

ACP2E-5003 — invalid store code no longer 500s

GetStockIdForCurrentWebsite::execute() read ?store= straight into
StoreManagerInterface::getStore() and let NoSuchEntityException propagate. A stale link, a
removed store view or a bot passing an unknown code therefore surfaced as a 500 on every consumer
of that service: the category-listing stock plugins
(AdaptAddStockDataToCollection, AdaptAddInStockFilterToCollection,
AdaptAddStockStatusToProducts, AdaptAddIsInStockFilterToCollection), the GraphQL
StockStatusProvider and OnlyXLeftInStockResolver, and MergeCarts\CartQuantityValidator.

The call is now guarded and falls back to the current store. The resulting file is byte-identical
to the 2.4.9 one.

ACP2E-4765 — pickup location region resolved by id

ExtractPickupLocationAddressData resolved the region with loadByName(), which stops matching
once a Directory data patch renames a subdivision, breaking in-store pickup order placement. It now
loads by region_id when the pickup location has one and keeps loadByName() as the fallback. The
new RegionResource dependency follows the optional-with-ObjectManager-fallback pattern already
used for RegionFactory in that constructor, so the signature stays backward compatible.

Baseline adjustment

The upstream unit test builds its region mock with createPartialMockWithReflection(), which comes
from Magento\Framework\TestFramework\Unit\Helper\MockCreationTrait — that trait ships in the
2.4.9 framework and does not exist in 103.0.8. Taking upstream's version verbatim would fail
with an undefined method here, so the existing getMockBuilder() construction on this line was
kept; it already stubs load, getName and loadByName, which is what the new cases need. The
three new test cases came across unchanged.

Verification

  • Unit tests: 7 tests, 24 assertions, all passing against the real 103.0.8 framework on PHP 8.3
    (both test classes, including the three new pickup-region cases and the new invalid-store case).
  • QA gate (php-lint, phpcs Magento2, phpmd): pass on all 4 changed files.

The stress suite was not run: neither change touches reservations, salability or the inventory
indexer — GetStockIdForCurrentWebsite only resolves which stock id the current request reads
from, and the pickup change is confined to address extraction.

@jeanmarcos-dev
jeanmarcos-dev merged commit 20c2010 into dist-2.4.8 Aug 4, 2026
1 check passed
@jeanmarcos-dev
jeanmarcos-dev deleted the integrate/2.4.8-upstream-robustness-fixes branch August 14, 2026 02:50
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.

3 participants