From 9371b4e62ebce25bd54135003dd34a009602bdcb Mon Sep 17 00:00:00 2001 From: Dan Watts Date: Fri, 5 Sep 2025 15:30:23 +0100 Subject: [PATCH 1/5] fix: hook up cataloginventory/options/show_out_of_stock setting to getSalableVariantsByParent --- .../Model/Options/DataProvider/Variant.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php b/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php index 32b9b2a48a3c7..280f2bd4bd61c 100644 --- a/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php +++ b/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php @@ -10,6 +10,8 @@ use Magento\Catalog\Api\Data\ProductInterface; use Magento\CatalogInventory\Model\ResourceModel\Stock\StatusFactory; use Magento\ConfigurableProduct\Model\Product\Type\Configurable; +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Store\Model\ScopeInterface; use Magento\Framework\Exception\LocalizedException; /** @@ -27,16 +29,24 @@ class Variant */ private $stockStatusFactory; + /** + * @var ScopeConfigInterface + */ + private $scopeConfig; + /** * @param Configurable $configurableType * @param StatusFactory $stockStatusFactory + * @param ScopeConfigInterface $scopeConfig */ public function __construct( Configurable $configurableType, - StatusFactory $stockStatusFactory + StatusFactory $stockStatusFactory, + ScopeConfigInterface $scopeConfig ) { $this->configurableType = $configurableType; $this->stockStatusFactory = $stockStatusFactory; + $this->scopeConfig = $scopeConfig; } /** @@ -56,8 +66,12 @@ public function getSalableVariantsByParent(ProductInterface $product): array $stockFlag = 'has_stock_status_filter'; if (!$collection->hasFlag($stockFlag)) { $stockStatusResource = $this->stockStatusFactory->create(); - $stockStatusResource->addStockDataToCollection($collection, true); - $collection->setFlag($stockFlag, true); + $showOutOfStock = $this->scopeConfig->isSetFlag( + 'cataloginventory/options/show_out_of_stock', + ScopeInterface::SCOPE_STORE + ); + $stockStatusResource->addStockDataToCollection($collection, !$showOutOfStock); + $collection->setFlag($stockFlag, !$showOutOfStock); } $collection->addMediaGalleryData(); $collection->addTierPriceData(); From 9d7b3a50075677db0afa53e13b1de7e7e32b716d Mon Sep 17 00:00:00 2001 From: Dan Watts Date: Fri, 5 Sep 2025 20:50:39 +0100 Subject: [PATCH 2/5] fix: add magento/store dep. --- app/code/Magento/ConfigurableProductGraphQl/composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/app/code/Magento/ConfigurableProductGraphQl/composer.json b/app/code/Magento/ConfigurableProductGraphQl/composer.json index 0998466b4def8..d10d85f87d38f 100644 --- a/app/code/Magento/ConfigurableProductGraphQl/composer.json +++ b/app/code/Magento/ConfigurableProductGraphQl/composer.json @@ -11,6 +11,7 @@ "magento/module-quote": "*", "magento/module-quote-graph-ql": "*", "magento/module-catalog-inventory": "*", + "magento/store": "*", "magento/framework": "*" }, "license": [ From 91fbeb8a060c2f78edf932b9074e57ebe311b5ce Mon Sep 17 00:00:00 2001 From: Dan Ruddy Watts Date: Fri, 5 Sep 2025 20:53:32 +0100 Subject: [PATCH 3/5] fix: bad dep --- app/code/Magento/ConfigurableProductGraphQl/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ConfigurableProductGraphQl/composer.json b/app/code/Magento/ConfigurableProductGraphQl/composer.json index d10d85f87d38f..0ee3a795d7571 100644 --- a/app/code/Magento/ConfigurableProductGraphQl/composer.json +++ b/app/code/Magento/ConfigurableProductGraphQl/composer.json @@ -11,7 +11,7 @@ "magento/module-quote": "*", "magento/module-quote-graph-ql": "*", "magento/module-catalog-inventory": "*", - "magento/store": "*", + "magento/module-store": "*", "magento/framework": "*" }, "license": [ From 15f1d489403b47a5d51090d5222a7328ee814740 Mon Sep 17 00:00:00 2001 From: Dan Watts Date: Mon, 8 Sep 2025 13:08:04 +0100 Subject: [PATCH 4/5] chore: amend copyright --- .../Model/Options/DataProvider/Variant.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php b/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php index 280f2bd4bd61c..c643ffca880bf 100644 --- a/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php +++ b/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php @@ -1,6 +1,6 @@ Date: Mon, 8 Sep 2025 13:08:58 +0100 Subject: [PATCH 5/5] chore: amend copyright --- .../Model/Options/DataProvider/Variant.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php b/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php index c643ffca880bf..479905934509e 100644 --- a/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php +++ b/app/code/Magento/ConfigurableProductGraphQl/Model/Options/DataProvider/Variant.php @@ -1,7 +1,7 @@