diff --git a/Model/Options/DataProvider/Variant.php b/Model/Options/DataProvider/Variant.php index 32b9b2a..280f2bd 100644 --- a/Model/Options/DataProvider/Variant.php +++ b/Model/Options/DataProvider/Variant.php @@ -10,6 +10,8 @@ namespace Magento\ConfigurableProductGraphQl\Model\Options\DataProvider; 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 @@ class Variant $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();