Skip to content

Commit dba05f1

Browse files
author
Oleksandr Dubovyk
committed
MC-20490: Catalog product list widget doesn't work with custom attribute conditions
- fixed
1 parent 8441cf4 commit dba05f1

File tree

1 file changed

+10
-2
lines changed
  • app/code/Magento/CatalogWidget/Model/Rule/Condition

1 file changed

+10
-2
lines changed

app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
use Magento\Catalog\Api\Data\ProductInterface;
1313
use Magento\Catalog\Model\ProductCategoryList;
14+
use Magento\Store\Model\Store;
1415

1516
/**
1617
* Class Product
@@ -164,6 +165,8 @@ public function addToCollection($collection)
164165
}
165166

166167
/**
168+
* Adds Attributes that belong to Global Scope
169+
*
167170
* @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute
168171
* @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection
169172
* @return $this
@@ -200,6 +203,8 @@ protected function addGlobalAttribute(
200203
}
201204

202205
/**
206+
* Adds Attributes that don't belong to Global Scope
207+
*
203208
* @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute
204209
* @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection
205210
* @return $this
@@ -208,7 +213,7 @@ protected function addNotGlobalAttribute(
208213
\Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute,
209214
\Magento\Catalog\Model\ResourceModel\Product\Collection $collection
210215
) {
211-
$storeId = $this->storeManager->getStore()->getId();
216+
$storeId = $this->storeManager->getStore()->getId();
212217
$values = $collection->getAllAttributeValues($attribute);
213218
$validEntities = [];
214219
if ($values) {
@@ -218,7 +223,10 @@ protected function addNotGlobalAttribute(
218223
$validEntities[] = $entityId;
219224
}
220225
} else {
221-
if ($this->validateAttribute($storeValues[\Magento\Store\Model\Store::DEFAULT_STORE_ID])) {
226+
if (
227+
isset($storeValues[Store::DEFAULT_STORE_ID]) &&
228+
$this->validateAttribute($storeValues[Store::DEFAULT_STORE_ID])
229+
) {
222230
$validEntities[] = $entityId;
223231
}
224232
}

0 commit comments

Comments
 (0)