fix(order): select shipping method fields when listing orders with totals - #16241
fix(order): select shipping method fields when listing orders with totals#16241lazerg wants to merge 2 commits into
Conversation
🦋 Changeset detectedLatest commit: 84575e7 The changes in this PR will be included in the next version bump. This PR includes changesets to release 79 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Thanks for the contribution! Initial automated review looks good. Fixes a regression where listing orders with totals fields threw a 500 error. The root cause: under SELECT_IN strategy, shipping method fields (including version) were not guaranteed to be selected, so loadShippingAdjustments threw. The fix adds a field-selection helper for shipping methods mirroring the existing ensureOrderItemFieldsSelection pattern. Template complete, issue #16240 linked, changeset and integration test included per checklist. No security, performance, or bug concerns. Triggered by: new PR opened |
Summary
What — Listing orders while requesting a totals field such as
["id", "total"]no longer throwsShipping method version is required to load adjustments.Why — This regressed in 2.18.0. Requesting totals makes the repository load shipping method adjustments, and that needs each shipping method's
version. Under the SELECT_IN load strategy that paginated list queries use, the shipping methods came back withoutversion, so adjustment loading threw and the request returned a 500.How — Order items already have a helper that guarantees their fields are selected on the SELECT_IN path, which is why item totals kept working. Shipping methods had no such helper, so this adds the same guarantee for them. Retrieving a single order uses the JOINED strategy and was never affected.
Testing — Added an order module integration test that lists orders with
["id", "total"]and checks the totals load instead of throwing. The full order module integration suite passes locally.Examples
Checklist
Additional Context
Fixes #16240.