diff --git a/InventoryAdminUi/Test/Mftf/Test/CatalogPriceRuleConfigurableProductAdditionalStockTest.xml b/InventoryAdminUi/Test/Mftf/Test/CatalogPriceRuleConfigurableProductAdditionalStockTest.xml
index 5579a169c3a9..850cc7bea066 100644
--- a/InventoryAdminUi/Test/Mftf/Test/CatalogPriceRuleConfigurableProductAdditionalStockTest.xml
+++ b/InventoryAdminUi/Test/Mftf/Test/CatalogPriceRuleConfigurableProductAdditionalStockTest.xml
@@ -21,63 +21,70 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
+
-
+
-
+
-
+
diff --git a/InventoryAdminUi/Test/Mftf/Test/StorefrontGroupedProductCustomStockWithOneOptionSoldOutTest.xml b/InventoryAdminUi/Test/Mftf/Test/StorefrontGroupedProductCustomStockWithOneOptionSoldOutTest.xml
new file mode 100644
index 000000000000..1f8e9fe62690
--- /dev/null
+++ b/InventoryAdminUi/Test/Mftf/Test/StorefrontGroupedProductCustomStockWithOneOptionSoldOutTest.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/InventoryGroupedProduct/Plugin/GroupedProduct/Model/Product/Type/Grouped/AdaptIsSalableOptionPlugin.php b/InventoryGroupedProduct/Plugin/GroupedProduct/Model/Product/Type/Grouped/AdaptIsSalableOptionPlugin.php
new file mode 100644
index 000000000000..23f9c6ecb6ad
--- /dev/null
+++ b/InventoryGroupedProduct/Plugin/GroupedProduct/Model/Product/Type/Grouped/AdaptIsSalableOptionPlugin.php
@@ -0,0 +1,90 @@
+areProductsSalable = $areProductsSalable;
+ $this->storeManager = $storeManager;
+ $this->stockResolver = $stockResolver;
+ $this->stockConfiguration = $stockConfiguration;
+ }
+
+ /**
+ * Filter salable grouped options.
+ *
+ * @param Grouped $subject
+ * @param Collection $result
+ * @return Collection
+ * @throws NoSuchEntityException in case there is no stock connected to given website.
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ public function afterGetAssociatedProductCollection(Grouped $subject, Collection $result): Collection
+ {
+ if ($this->stockConfiguration->isShowOutOfStock()) {
+ return $result;
+ }
+ $website = $this->storeManager->getStore($result->getStoreId())->getWebsite();
+ $stock = $this->stockResolver->execute(SalesChannelInterface::TYPE_WEBSITE, $website->getCode());
+ $skus = array_column($result->getData(), 'sku');
+ $areProductsSalable = $this->areProductsSalable->execute($skus, $stock->getStockId());
+ $sksToInclude = [];
+ foreach ($areProductsSalable as $salableResult) {
+ if ($salableResult->isSalable()) {
+ $sksToInclude[] = $salableResult->getSku();
+ }
+ }
+ $result->addAttributeToFilter('sku', ['in' => $sksToInclude]);
+
+ return $result;
+ }
+}
diff --git a/InventoryGroupedProduct/composer.json b/InventoryGroupedProduct/composer.json
index fc112d52f6eb..c76426e03304 100644
--- a/InventoryGroupedProduct/composer.json
+++ b/InventoryGroupedProduct/composer.json
@@ -4,7 +4,11 @@
"require": {
"php": "~7.3.0||~7.4.0",
"magento/framework": "*",
- "magento/module-grouped-product": "*"
+ "magento/module-catalog": "*",
+ "magento/module-catalog-inventory": "*",
+ "magento/module-grouped-product": "*",
+ "magento/module-inventory-sales-api": "*",
+ "magento/module-store": "*"
},
"suggest": {
"magento/module-inventory-configuration-api": "*"
diff --git a/InventoryGroupedProduct/etc/frontend/di.xml b/InventoryGroupedProduct/etc/frontend/di.xml
new file mode 100644
index 000000000000..2ca4c5b05e17
--- /dev/null
+++ b/InventoryGroupedProduct/etc/frontend/di.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/InventoryGroupedProductAdminUi/Test/Mftf/ActionGroup/StorefrontAssertLinkIsNotVisibleOnGroupedProductPageActionGroup.xml b/InventoryGroupedProductAdminUi/Test/Mftf/ActionGroup/StorefrontAssertLinkIsNotVisibleOnGroupedProductPageActionGroup.xml
new file mode 100644
index 000000000000..8c39a149eb9d
--- /dev/null
+++ b/InventoryGroupedProductAdminUi/Test/Mftf/ActionGroup/StorefrontAssertLinkIsNotVisibleOnGroupedProductPageActionGroup.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ Validates that the provided Product Name is not presented on a Storefront Grouped Product page.
+
+
+
+
+
+
+
+