Skip to content

Commit 3cfc907

Browse files
committed
apply some fixes related with failed tests
1 parent 0d904ab commit 3cfc907

File tree

1 file changed

+18
-7
lines changed
  • app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query

1 file changed

+18
-7
lines changed

app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResultFactory;
1515
use Magento\Framework\Api\Search\SearchCriteriaInterface;
1616
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
17+
use Magento\Framework\Phrase;
1718
use Magento\Search\Api\SearchInterface;
1819
use Magento\Search\Model\Search\PageSizeProvider;
1920

@@ -112,7 +113,11 @@ public function getResult(
112113
$productArray[$product->getId()] = $product->getData();
113114
$productArray[$product->getId()]['model'] = $product;
114115
foreach ($queryFields as $field) {
115-
$productArray[$product->getId()][$field] = $this->getAttributeLabel($product, $field);
116+
$productArray[$product->getId()][$field] = $this->getAttributeValue(
117+
$product,
118+
$productArray,
119+
$field
120+
);
116121
}
117122
}
118123

@@ -144,19 +149,25 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit
144149
return $searchCriteria;
145150
}
146151

152+
147153
/**
148-
* Get frontend label of product attribute
154+
* Get product attribute value
149155
*
150156
* @param Product $product
157+
* @param $productArray
151158
* @param $field
152159
*
153-
* @return mixed
160+
* @return string|null
154161
*/
155-
private function getAttributeLabel(Product $product, $field)
162+
private function getAttributeValue(Product $product, $productArray, $field)
156163
{
157-
$attribute = $product->getResource()->getAttribute($field);
158-
if ($attribute) {
159-
return $attribute->getFrontend()->getValue($product);
164+
if ($attribute = $product->getResource()->getAttribute($field)) {
165+
$attributeValue = $attribute->getFrontend()->getValue($product);
166+
if ($attributeValue && !($attributeValue instanceof Phrase) ) {
167+
return $attributeValue;
168+
} else {
169+
return isset($productArray[$product->getId()][$field])? $productArray[$product->getId()][$field] : null;
170+
}
160171
}
161172
}
162173
}

0 commit comments

Comments
 (0)