diff --git a/vendor/magento/module-catalog-url-rewrite/Model/Products/AdaptUrlRewritesToVisibilityAttribute.php b/vendor/magento/module-catalog-url-rewrite/Model/Products/AdaptUrlRewritesToVisibilityAttribute.php index f5851cf1e11b..d329bdf0200a 100644 --- a/vendor/magento/module-catalog-url-rewrite/Model/Products/AdaptUrlRewritesToVisibilityAttribute.php +++ b/vendor/magento/module-catalog-url-rewrite/Model/Products/AdaptUrlRewritesToVisibilityAttribute.php @@ -65,11 +65,12 @@ public function __construct( * * @param array $productIds * @param int $visibility + * @param int $storeId * @throws UrlAlreadyExistsException */ - public function execute(array $productIds, int $visibility): void + public function execute(array $productIds, int $visibility, int $storeId): void { - $products = $this->getProductsByIds($productIds); + $products = $this->getProductsByIds($productIds, $storeId); /** @var Product $product */ foreach ($products as $product) { @@ -110,11 +111,13 @@ public function execute(array $productIds, int $visibility): void * Get Product Models by Id's * * @param array $productIds + * @param int $storeId * @return array */ - private function getProductsByIds(array $productIds): array + private function getProductsByIds(array $productIds, int $storeId): array { $productCollection = $this->productCollectionFactory->create(); + $productCollection->setStoreId($storeId); $productCollection->addAttributeToSelect(ProductInterface::VISIBILITY); $productCollection->addAttributeToSelect('url_key'); $productCollection->addFieldToFilter( diff --git a/vendor/magento/module-catalog-url-rewrite/Observer/ProcessUrlRewriteOnChangeProductVisibilityObserver.php b/vendor/magento/module-catalog-url-rewrite/Observer/ProcessUrlRewriteOnChangeProductVisibilityObserver.php index 2337bb3646bd..cd6350bfce12 100644 --- a/vendor/magento/module-catalog-url-rewrite/Observer/ProcessUrlRewriteOnChangeProductVisibilityObserver.php +++ b/vendor/magento/module-catalog-url-rewrite/Observer/ProcessUrlRewriteOnChangeProductVisibilityObserver.php @@ -43,12 +43,13 @@ public function execute(Observer $observer) $event = $observer->getEvent(); $attrData = $event->getAttributesData(); $productIds = $event->getProductIds(); + $storeIdFromScope = $event->getStoreId(); $visibility = $attrData[ProductInterface::VISIBILITY] ?? 0; if (!$visibility || !$productIds) { return; } - $this->adaptUrlRewritesToVisibility->execute($productIds, (int)$visibility); + $this->adaptUrlRewritesToVisibility->execute($productIds, (int)$visibility, (int)$storeIdFromScope); } }