{"data":{"id":"magento2-39480","source":"github-pr","sourceRef":"magento/magento2#39480","title":"Magento 2.4.7 minAllowed missing product order qty ","pr":{"number":39480,"url":"https://github.com/magento/magento2/pull/39480","author":"Mohamed-Asar","mergedAt":"2025-07-02T13:10:14Z","mergeCommit":"36b219870156b7e4794b4652051a20cb15321004","headCommit":"188fae40b48175854d805b20bb3455922a0bf3b1","baseRef":"2.4-develop","diffSha256":"22605b3611d4b0a512b312a6bd12471f3c2f6045b8a2e721e6dabe0c83d7dc39"},"issues":[{"number":39142,"url":"https://github.com/magento/magento2/issues/39142","title":"Magento 2.4.7 minAllowed missing product order qty ","labels":["Area: Product","Component: Catalog","Issue: Confirmed","Priority: P2","Priority: P3","Progress: PR in progress","Progress: done","Reported on 2.4.7-p2","Reproduced on 2.4.x"],"kind":"human"},{"number":39479,"url":"https://github.com/magento/magento2/issues/39479","title":"Grouped Product Frontend Quantity Validations are Missing","labels":["Area: Cart & Checkout","Component: GroupedProduct","Issue: Confirmed","Priority: P2","Progress: PR in progress","Progress: done","Reported on 2.4.7-p3","Reproduced on 2.4.x"],"kind":"human"}],"fixedIn":"2.4.9","containingTags":["2.4.9"],"reportedOn":"2.4.7-p2","codeMatch":{"2.4.6":"conflict","2.4.6-p1":"conflict","2.4.6-p2":"conflict","2.4.6-p3":"conflict","2.4.6-p4":"conflict","2.4.6-p5":"conflict","2.4.6-p6":"conflict","2.4.6-p7":"conflict","2.4.6-p8":"conflict","2.4.6-p9":"conflict","2.4.6-p10":"conflict","2.4.6-p11":"conflict","2.4.6-p12":"conflict","2.4.6-p13":"conflict","2.4.6-p14":"conflict","2.4.6-p15":"conflict","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":"conflict"},"affectedVersions":["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-catalog-inventory","magento/module-grouped-product","magento/module-wishlist"],"files":[{"path":"app/code/Magento/CatalogInventory/Block/Plugin/ProductView.php","change":"modified","package":"magento/module-catalog-inventory"},{"path":"app/code/Magento/CatalogInventory/Model/Product/QuantityValidator.php","change":"added","package":"magento/module-catalog-inventory"},{"path":"app/code/Magento/GroupedProduct/ViewModel/ValidateQuantity.php","change":"added","package":"magento/module-grouped-product"},{"path":"app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_view_type_grouped.xml","change":"modified","package":"magento/module-grouped-product"},{"path":"app/code/Magento/GroupedProduct/view/frontend/templates/product/view/type/grouped.phtml","change":"modified","package":"magento/module-grouped-product"},{"path":"app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_grouped.xml","change":"modified","package":"magento/module-wishlist"}],"stripped":{"tests":["app/code/Magento/Catalog/Test/Mftf/Test/AdminAddInStockProductToTheCartTest.xml","app/code/Magento/CatalogInventory/Test/Unit/Block/Plugin/ProductViewTest.php","app/code/Magento/CatalogInventory/Test/Unit/Model/Product/QuantityValidatorTest.php"],"docs":[],"outsideCode":["lib/web/mage/validation.js"]},"linesChanged":207,"mergeBatched":false,"excluded":null,"sections":{"description":"input type=\"number\" name=\"qty\" id=\"qty\" min=\"0\" value=\"0.6\" title=\"Aantal\" class=\"input-text qty\" data-validate=\"{&quot;required-number&quot;:true,&quot;validate-item-quantity&quot;:{&quot;maxAllowed&quot;:999}}\" /","stepsToReproduce":"1. View product (on product page)\n2. View Source \n3. Search (CTRL + F) maxAllowed","expectedResult":"input type=\"number\" name=\"qty\" id=\"qty\" maxlength=\"12\" value=\"0.5\" title=\"Aantal\" class=\"input-text qty\" data-validate=\"{&quot;required-number&quot;:true,&quot;validate-item-quantity&quot;:{&quot;**minAllowed**&quot;:0.5,&quot;maxAllowed&quot;:10000}}\" /","actualResult":"input type=\"number\" name=\"qty\" id=\"qty\" min=\"0\" value=\"0.6\" title=\"Aantal\" class=\"input-text qty\" data-validate=\"{&quot;required-number&quot;:true,&quot;validate-item-quantity&quot;:{&quot;maxAllowed&quot;:999}}\" /","source":"issue"},"signatures":[],"labels":{"area":["Product","Cart & Checkout"],"component":["Catalog","GroupedProduct"],"priority":"P2","severity":null,"reportedOn":["2.4.7-p2","2.4.7-p3"]},"categories":["Catalog/Product","Shopping Cart"],"triage":{"model":"@cf/cloudflare/clef","requestHash":"1b5845c9e717f1042537b4888c4e82c03ccf6d84584e792b2742acc3433fccd7","isBugfix":0.9428,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.8498,"feature":0.0633,"refactor":0.0695,"tests_only":0.0079,"docs_only":0.0041,"dependency":0.0054},"confidence":0.6773},"scope":{"score":1.5491,"probabilities":{"0":0.0788,"1":0.2933,"2":0.6279},"confidence":0.2298},"risk":{"score":0.966,"probabilities":{"0":0.1511,"1":0.7318,"2":0.1171},"confidence":0.3581},"area":{"choice":"frontend","probabilities":{"catalog":0.3163,"checkout":0.1064,"customer":0.0071,"admin":0.0135,"graphql_api":0.0047,"framework":0.0134,"frontend":0.5221,"other":0.0165},"confidence":0.2968},"securityRelevant":0.0081,"reportedVersion":{"choice":"2.4.7-p3","probabilities":{"2.4.0":0.0018,"2.4.0-p1":0.002,"2.4.1":0.0019,"2.4.1-p1":0.0021,"2.4.2":0.002,"2.4.2-p1":0.0022,"2.4.2-p2":0.0024,"2.4.3":0.0022,"2.4.3-p1":0.0025,"2.4.3-p2":0.003,"2.4.3-p3":0.0028,"2.4.4":0.0021,"2.4.4-p1":0.0023,"2.4.4-p10":0.0025,"2.4.4-p11":0.0032,"2.4.4-p12":0.0031,"2.4.4-p13":0.0033,"2.4.4-p14":0.0032,"2.4.4-p15":0.0026,"2.4.4-p16":0.0026,"2.4.4-p17":0.0028,"2.4.4-p18":0.0026,"2.4.4-p2":0.0026,"2.4.4-p3":0.0023,"2.4.4-p4":0.0028,"2.4.4-p5":0.0028,"2.4.4-p6":0.0029,"2.4.4-p7":0.0033,"2.4.4-p8":0.0034,"2.4.4-p9":0.0024,"2.4.5":0.0025,"2.4.5-p1":0.0024,"2.4.5-p10":0.0023,"2.4.5-p11":0.0028,"2.4.5-p12":0.0035,"2.4.5-p13":0.0036,"2.4.5-p14":0.003,"2.4.5-p15":0.0031,"2.4.5-p16":0.003,"2.4.5-p17":0.003,"2.4.5-p2":0.0025,"2.4.5-p3":0.0028,"2.4.5-p4":0.0028,"2.4.5-p5":0.003,"2.4.5-p6":0.0032,"2.4.5-p7":0.0031,"2.4.5-p8":0.0037,"2.4.5-p9":0.0025,"2.4.6":0.0059,"2.4.6-p1":0.0042,"2.4.6-p10":0.0047,"2.4.6-p11":0.0052,"2.4.6-p12":0.0065,"2.4.6-p13":0.0063,"2.4.6-p14":0.0055,"2.4.6-p15":0.0052,"2.4.6-p2":0.0039,"2.4.6-p3":0.0044,"2.4.6-p4":0.0067,"2.4.6-p5":0.0051,"2.4.6-p6":0.0049,"2.4.6-p7":0.0064,"2.4.6-p8":0.0042,"2.4.6-p9":0.0027,"2.4.7":0.0889,"2.4.7-p1":0.0093,"2.4.7-p10":0.0042,"2.4.7-p2":0.0772,"2.4.7-p3":0.4872,"2.4.7-p4":0.0203,"2.4.7-p5":0.0148,"2.4.7-p6":0.0143,"2.4.7-p7":0.009,"2.4.7-p8":0.0082,"2.4.7-p9":0.0065,"2.4.8":0.0059,"2.4.8-p1":0.0058,"2.4.8-p2":0.0069,"2.4.8-p3":0.0076,"2.4.8-p4":0.0062,"2.4.8-p5":0.006,"2.4.9":0.0051,"unspecified":0.0043},"confidence":0.2444},"backportWorthy":{"score":1.5576,"probabilities":{"0":0.0917,"1":0.259,"2":0.6493},"confidence":0.2456}},"curated":{"title":"Grouped product quantity validation runs only after a page reload","description":"On a grouped product page, invalid quantities for a child product with Minimum Qty, Maximum Qty or Qty Increments set are not restricted on the frontend; the page reloads and the error is shown from the server side. A new CatalogInventory QuantityValidator, also used by the ProductView plugin, adds minAllowed, maxAllowed and qtyIncrements validation to the grouped.phtml qty inputs.","categories":["Catalog/Product","Shopping Cart"],"author":"claude-code/opus-5.5","date":"2026-10-06","reviewedBy":null},"tests":{"2.4.8-p5":{"before":"not-runnable","after":"error","adapted":false,"runAt":"2026-10-06T09:20:07.044Z","releaseCommit":"870a22c63d9d9b68fa3297962e2d5d5841115814","suites":{"unit":{"before":"not-runnable","after":"error","runAt":"2026-10-06T09:20:07.044Z"}}},"2.4.7-p10":{"before":"not-runnable","after":"error","adapted":false,"runAt":"2026-10-06T09:29:17.285Z","releaseCommit":"72561bf80652f57cc642a03e2c9a51d74a285b14","suites":{"unit":{"before":"not-runnable","after":"error","runAt":"2026-10-06T09:29:17.285Z"}}}}},"_documentation":"https://magento.watch/api","_description":"Upstream fix magento2-39480 details"}