{"data":{"id":"magento2-38268","source":"github-pr","sourceRef":"magento/magento2#38268","title":"AC-10472 Validate shipping method placing an order in GraphQL","pr":{"number":38268,"url":"https://github.com/magento/magento2/pull/38268","author":"emartinpalomas","mergedAt":"2025-10-29T10:13:01Z","mergeCommit":"69c7fb4a9407cccda509dc6884a94869521e8e45","headCommit":"a0a5d991611e302a941bfab132332c4c195d3a66","baseRef":"2.4-develop","diffSha256":"b517205158674cbd7b500bdc81e9ede0c5a3f2ccd731e7612b81edcc3da0a420"},"issues":[{"number":38273,"url":"https://github.com/magento/magento2/issues/38273","title":"[Issue] AC-10472 Validate shipping method placing an order in GraphQL","labels":["Issue: needs update","Priority: P2","Progress: done","Reported on 2.4.x"],"kind":"pr-derived"}],"fixedIn":"2.4.9","containingTags":["2.4.9"],"reportedOn":null,"codeMatch":{"2.4.6":"clean","2.4.6-p1":"clean","2.4.6-p2":"clean","2.4.6-p3":"clean","2.4.6-p4":"clean","2.4.6-p5":"clean","2.4.6-p6":"clean","2.4.6-p7":"clean","2.4.6-p8":"clean","2.4.6-p9":"clean","2.4.6-p10":"clean","2.4.6-p11":"clean","2.4.6-p12":"clean","2.4.6-p13":"clean","2.4.6-p14":"clean","2.4.6-p15":"clean","2.4.7":"clean","2.4.7-p1":"clean","2.4.7-p2":"clean","2.4.7-p3":"clean","2.4.7-p4":"clean","2.4.7-p5":"clean","2.4.7-p6":"clean","2.4.7-p7":"clean","2.4.7-p8":"clean","2.4.7-p9":"clean","2.4.7-p10":"clean","2.4.8":"clean","2.4.8-p1":"clean","2.4.8-p2":"clean","2.4.8-p3":"clean","2.4.8-p4":"clean","2.4.8-p5":"clean","2.4.9":"clean"},"affectedVersions":["2.4.6","2.4.6-p1","2.4.6-p2","2.4.6-p3","2.4.6-p4","2.4.6-p5","2.4.6-p6","2.4.6-p7","2.4.6-p8","2.4.6-p9","2.4.6-p10","2.4.6-p11","2.4.6-p12","2.4.6-p13","2.4.6-p14","2.4.6-p15","2.4.7","2.4.7-p1","2.4.7-p2","2.4.7-p3","2.4.7-p4","2.4.7-p5","2.4.7-p6","2.4.7-p7","2.4.7-p8","2.4.7-p9","2.4.7-p10","2.4.8","2.4.8-p1","2.4.8-p2","2.4.8-p3","2.4.8-p4","2.4.8-p5"],"components":["magento/module-quote"],"files":[{"path":"app/code/Magento/Quote/Model/ValidationRules/ShippingMethodValidationRule.php","change":"modified","package":"magento/module-quote"}],"stripped":{"tests":["dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/PlaceOrderTest.php"],"docs":[],"outsideCode":[]},"linesChanged":2,"mergeBatched":false,"excluded":null,"sections":{"description":"Validate shipping method before placing an order in GraphQL","stepsToReproduce":"1. Create a cart\n2. Add item to cart\n3. Set cart address\n4. Select an available shipping method\n5. Go into the admin and disable the selected shipping method\n6. Place the order using GraphQL \n\nWithout validation GraphQL succeeds and converts the cart into an order, with this validation GraphQL returns an error pointing out that the selected shipping method is not available","expectedResult":null,"actualResult":null,"source":"pr"},"signatures":[],"labels":{"area":[],"component":[],"priority":"P2","severity":null,"reportedOn":["2.4.x"]},"categories":[],"triage":{"model":"@cf/cloudflare/clef","requestHash":"21cdfa1245cb56d8821c2541ae402503e33f8ff7cb2027495c9976d0cb385e50","isBugfix":0.89,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.8513,"feature":0.0845,"refactor":0.0213,"tests_only":0.0163,"docs_only":0.0043,"dependency":0.0047,"cleanup":0.0176},"confidence":0.6884},"scope":{"score":0.4916,"probabilities":{"0":0.6143,"1":0.2797,"2":0.106},"confidence":0.2003},"risk":{"score":0.8981,"probabilities":{"0":0.4883,"1":0.1253,"2":0.3864},"confidence":0.1051},"area":{"choice":"graphql_api","probabilities":{"catalog":0.0028,"checkout":0.3676,"customer":0.0055,"admin":0.0044,"graphql_api":0.6062,"framework":0.0051,"frontend":0.0034,"other":0.005},"confidence":0.4317},"securityRelevant":0.0327,"reportedVersion":{"choice":"unspecified","probabilities":{"2.4.0":0.0044,"2.4.0-p1":0.0045,"2.4.1":0.0039,"2.4.1-p1":0.0034,"2.4.2":0.0055,"2.4.2-p1":0.005,"2.4.2-p2":0.0058,"2.4.3":0.0093,"2.4.3-p1":0.0082,"2.4.3-p2":0.0095,"2.4.3-p3":0.0074,"2.4.4":0.0125,"2.4.4-p1":0.0063,"2.4.4-p10":0.0061,"2.4.4-p11":0.007,"2.4.4-p12":0.0069,"2.4.4-p13":0.0071,"2.4.4-p14":0.0078,"2.4.4-p15":0.0063,"2.4.4-p16":0.007,"2.4.4-p17":0.0059,"2.4.4-p18":0.005,"2.4.4-p2":0.0027,"2.4.4-p3":0.003,"2.4.4-p4":0.0032,"2.4.4-p5":0.0036,"2.4.4-p6":0.0044,"2.4.4-p7":0.0036,"2.4.4-p8":0.0046,"2.4.4-p9":0.0039,"2.4.5":0.0127,"2.4.5-p1":0.0084,"2.4.5-p10":0.0064,"2.4.5-p11":0.0109,"2.4.5-p12":0.0113,"2.4.5-p13":0.0077,"2.4.5-p14":0.0098,"2.4.5-p15":0.0067,"2.4.5-p16":0.0066,"2.4.5-p17":0.0064,"2.4.5-p2":0.0032,"2.4.5-p3":0.0049,"2.4.5-p4":0.0045,"2.4.5-p5":0.0041,"2.4.5-p6":0.0057,"2.4.5-p7":0.0067,"2.4.5-p8":0.0053,"2.4.5-p9":0.0044,"2.4.6":0.0294,"2.4.6-p1":0.0164,"2.4.6-p10":0.0093,"2.4.6-p11":0.0135,"2.4.6-p12":0.0116,"2.4.6-p13":0.0106,"2.4.6-p14":0.0115,"2.4.6-p15":0.0085,"2.4.6-p2":0.0045,"2.4.6-p3":0.0077,"2.4.6-p4":0.0087,"2.4.6-p5":0.0075,"2.4.6-p6":0.0099,"2.4.6-p7":0.0078,"2.4.6-p8":0.006,"2.4.6-p9":0.0048,"2.4.7":0.0179,"2.4.7-p1":0.012,"2.4.7-p10":0.0098,"2.4.7-p2":0.0064,"2.4.7-p3":0.0106,"2.4.7-p4":0.0152,"2.4.7-p5":0.0121,"2.4.7-p6":0.0139,"2.4.7-p7":0.0128,"2.4.7-p8":0.0088,"2.4.7-p9":0.0059,"2.4.8":0.0206,"2.4.8-p1":0.015,"2.4.8-p2":0.0171,"2.4.8-p3":0.0169,"2.4.8-p4":0.0155,"2.4.8-p5":0.0135,"2.4.9":0.0196,"unspecified":0.2892},"confidence":0.0806},"backportWorthy":{"score":1.5647,"probabilities":{"0":0.0922,"1":0.2509,"2":0.6569},"confidence":0.2545}},"curated":{"title":"Placing a GraphQL order succeeds with a shipping method disabled in the admin","description":"When the selected shipping method is disabled in the admin after it was set on the cart, placing the order using GraphQL succeeds and converts the cart into an order. ShippingMethodValidationRule now adds requestShippingRates() on the shipping address to the validation, so GraphQL returns an error pointing out that the selected shipping method is not available.","categories":[],"author":"claude-code/opus-5.5","date":"2026-10-07","reviewedBy":null},"tests":{"2.4.8-p5":{"before":"not-runnable","after":"error","adapted":false,"runAt":"2026-10-07T15:09:43.384Z","releaseCommit":"870a22c63d9d9b68fa3297962e2d5d5841115814","suites":{"api-functional":{"before":"not-runnable","after":"error","runAt":"2026-10-07T15:09:43.384Z"}}},"2.4.7-p10":{"before":"not-runnable","after":"error","adapted":false,"runAt":"2026-10-07T15:16:55.346Z","releaseCommit":"72561bf80652f57cc642a03e2c9a51d74a285b14","suites":{"api-functional":{"before":"not-runnable","after":"error","runAt":"2026-10-07T15:16:55.346Z"}}}}},"_documentation":"https://magento.watch/api","_description":"Upstream fix magento2-38268 details"}