You are here

protected function MigratePrepareRow::getAttributes in Commerce Migrate 3.0.x

Same name and namespace in other branches
  1. 8.2 modules/commerce/src/EventSubscriber/MigratePrepareRow.php \Drupal\commerce_migrate_commerce\EventSubscriber\MigratePrepareRow::getAttributes()
  2. 3.1.x modules/commerce/src/EventSubscriber/MigratePrepareRow.php \Drupal\commerce_migrate_commerce\EventSubscriber\MigratePrepareRow::getAttributes()

Get the fields that are commerce product attributes.

Attributes use taxonomy term reference fields with options.

Return value

array An array of taxonomy vocabularies that are product attributes..

See also

https://drupalcommerce.org/user-guide/product-attributes-variations

File

modules/commerce/src/EventSubscriber/MigratePrepareRow.php, line 96

Class

MigratePrepareRow
Handles migrate_plus prepare row event.

Namespace

Drupal\commerce_migrate_commerce\EventSubscriber

Code

protected function getAttributes() {
  $source_plugin = MigrationDeriverTrait::getSourcePlugin('d7_field_instance');
  $attributes = [];
  foreach ($source_plugin as $row) {
    if ($row
      ->getSourceProperty('entity_type') == 'commerce_product' && $row
      ->getSourceProperty('type') == 'taxonomy_term_reference' && $row
      ->getSourceProperty('widget')['type'] == 'options_select') {
      $name = str_replace('field_', '', $row
        ->getSourceProperty('field_name'));
      $attributes[] = $name;
    }
  }
  return array_unique($attributes);
}