/**
* Add categories data to the index data.
*
* {@inheritdoc}
*/
public function addData($storeId, array $indexData)
{
$categoryData = $this->resourceModel->loadCategoryData($storeId, array_keys($indexData));
foreach ($categoryData as $categoryDataRow) {
$productId = (int) $categoryDataRow['product_id'];
unset($categoryDataRow['product_id']);
$categoryDataRow = array_merge($categoryDataRow, ['category_id' => (int) $categoryDataRow['category_id'], 'is_parent' => (bool) $categoryDataRow['is_parent'], 'name' => (string) $categoryDataRow['name']]);
if (isset($categoryDataRow['position']) && $categoryDataRow['position'] !== null) {
$categoryDataRow['position'] = (int) $categoryDataRow['position'];
}
$indexData[$productId]['category'][] = array_filter($categoryDataRow);
}
return $indexData;
}