attributeResource = $attributeResource; $this->scopeResolver = $scopeResolver; $this->optionSelectBuilder = $optionSelectBuilder; } /** * {@inheritdoc} */ public function getAttributeOptions(AbstractAttribute $superAttribute, $productId) { $scope = $this->scopeResolver->getScope(); $select = $this->optionSelectBuilder->getSelect($superAttribute, $productId, $scope); $data = $this->attributeResource->getConnection()->fetchAll($select); if ($superAttribute->getSourceModel()) { $options = $superAttribute->getSource()->getAllOptions(false); $optionLabels = []; foreach ($options as $option) { $optionLabels[$option['value']] = $option['label']; } foreach ($data as $key => $value) { $optionText = isset($optionLabels[$value['value_index']]) ? $optionLabels[$value['value_index']] : false; $data[$key]['default_title'] = $optionText; $data[$key]['option_title'] = $optionText; } } return $data; } }