Магенто 2. Миграция. Атрибут клиента карты
Может ли атрибут customer_attribute быть сопоставлен во время миграции данных M1->M2, если да, может ли кто-нибудь дать какие-либо подсказки о том, как это сделать?
Например, атрибут M1 tel=>атрибут M2 телефон
1 answers
Нет прямого способа сопоставить атрибут с заданным attribute_code
из Magento 1 другому с другим attribute_code
из Magento 2.
Если оба атрибута имеют одинаковый attribute_code
, выполняется обновление.
То, что я пробовал:
Инструмент переноса данных предлагает обработчик преобразования \Migration\Handler\Convert
, который преобразует значение одного столбца для всех строк или строк, удовлетворяющих условию для пары значение: значение
Например,
<transform>
<field>catalog_category_entity_varchar.value</field>
<handler class="\Migration\Handler\ConvertEavValue">
<param name="map" value="[one_column:1column]"/>
<param name="attributeCode" value="page_layout"/>
</handler>
</transform>
Это преобразует все строки, которые имеют значение от one_column
до 1column
, где attribute_code
равно page_layout
для catalog_category_entity_varchar.value column
В приведенном примере используется \Migration\Handler\ConvertEavValue
, но логика та же для \Migration\Handler\Convert
Это НЕ подходит для столбца attribute_code
из-за того, что процесс миграции в значительной степени зависит от значений attribute_code. Изменение значения attribute_code
во время миграции приведет к нежелательным результатам. Я вывел это из нескольких проверок, которые они делают по пути, чтобы увидеть, остаются ли значения attribute_code
одинаковыми то же самое.
Что я в итоге сделал:
Запустил сценарий после миграции, который обновляет список attribute_codes
, который я хотел изменить.