Магенто 2. Миграция. Атрибут клиента карты


Может ли атрибут customer_attribute быть сопоставлен во время миграции данных M1->M2, если да, может ли кто-нибудь дать какие-либо подсказки о том, как это сделать?

Например, атрибут M1 tel=>атрибут M2 телефон

Author: vitoriodachef, 2018-01-15

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, который я хотел изменить.

 3
Author: vitoriodachef, 2018-02-14 10:26:31