configurableAttributeHandler = $configurableAttributeHandler; $this->collection = $configurableAttributeHandler->getApplicableAttributes(); } /** * @return \Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection */ public function getCollection() { return $this->collection; } /** * {@inheritdoc} */ public function getData() { $items = []; $skippedItems = 0; foreach ($this->getCollection()->getItems() as $attribute) { if ($this->configurableAttributeHandler->isAttributeApplicable($attribute)) { $items[] = $attribute->toArray(); } else { $skippedItems++; } } return [ 'totalRecords' => $this->collection->getSize() - $skippedItems, 'items' => $items ]; } }