From 2164d5c8cda24406d60d14daa632e10e160d01a9 Mon Sep 17 00:00:00 2001 From: Pascal Brouwers Date: Thu, 24 Sep 2020 14:24:53 +0200 Subject: [PATCH] Add support for non-default attribute set groups --- src/Migration/Step/Eav/Data.php | 38 ++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/Migration/Step/Eav/Data.php b/src/Migration/Step/Eav/Data.php index 1bcad498b..91a3275b0 100644 --- a/src/Migration/Step/Eav/Data.php +++ b/src/Migration/Step/Eav/Data.php @@ -496,7 +496,43 @@ private function migrateCustomEntityAttributes() ); foreach ($customEntityAttributes as $record) { if (!isset($this->mapAttributeGroupIdsSourceDest[$record['attribute_group_id']])) { - continue; + // create the group id + $this->migrateAttributeGroups([$record['attribute_group_id']]); + + /*$productAttributeSetIds = array_keys($this->modelData->getAttributeSets( + $record['entity_type_id'], + ModelData::ATTRIBUTE_SETS_NONE_DEFAULT + ));*/ + + $attributeGroupsDestination = $this->helper->getDestinationRecords( + 'eav_attribute_group', + ['attribute_group_id'] + ); + $attributeGroupsSource = $this->helper->getSourceRecords( + 'eav_attribute_group', + ['attribute_group_id'] + ); + + foreach ($attributeGroupsSource as $idSource => $recordSource) { + $sourceAttributeGroupName = $recordSource['attribute_group_name']; + /*if (in_array($recordSource['attribute_set_id'], $productAttributeSetIds)) { + $sourceAttributeGroupName = str_replace( + array_keys($this->mapProductAttributeGroupNamesSourceDest), + $this->mapProductAttributeGroupNamesSourceDest, + $recordSource['attribute_group_name'] + ); + }*/ + $sourceKey = $recordSource['attribute_set_id'] . ' ' . $sourceAttributeGroupName; + foreach ($attributeGroupsDestination as $idDestination => $recordDestination) { + $destinationKey = $recordDestination['attribute_set_id'] + . ' ' + . $recordDestination['attribute_group_name']; + if ($sourceKey == $destinationKey) { + $this->mapAttributeGroupIdsSourceDest[$recordSource['attribute_group_id']] = + $recordDestination['attribute_group_id']; + } + } + } } $record['sort_order'] = $this->getCustomAttributeSortOrder($record); $record['attribute_group_id'] = $this->mapAttributeGroupIdsSourceDest[$record['attribute_group_id']];