You are here

public function ProductVariations::prepareRow in Commerce Migrate 3.1.x

Same name and namespace in other branches
  1. 8.2 modules/commerce/src/Plugin/migrate/source/commerce1/ProductVariations.php \Drupal\commerce_migrate_commerce\Plugin\migrate\source\commerce1\ProductVariations::prepareRow()
  2. 3.0.x modules/commerce/src/Plugin/migrate/source/commerce1/ProductVariations.php \Drupal\commerce_migrate_commerce\Plugin\migrate\source\commerce1\ProductVariations::prepareRow()

Adds additional data to the row.

Parameters

\Drupal\migrate\Row $row: The row object.

Return value

bool FALSE if this row needs to be skipped.

Overrides SourcePluginBase::prepareRow

File

modules/commerce/src/Plugin/migrate/source/commerce1/ProductVariations.php, line 60

Class

ProductVariations
Gets Commerce 1 commerce_product data from database.

Namespace

Drupal\commerce_migrate_commerce\Plugin\migrate\source\commerce1

Code

public function prepareRow(Row $row) {
  $product_id = $row
    ->getSourceProperty('product_id');
  $revision_id = $row
    ->getSourceProperty('revision_id');
  foreach (array_keys($this
    ->getFields('commerce_product', $row
    ->getSourceProperty('type'))) as $field) {
    $row
      ->setSourceProperty($field, $this
      ->getFieldValues('commerce_product', $field, $product_id, $revision_id));
  }

  // Include the number of currency fraction digits in the price.
  $currencyRepository = new CurrencyRepository();
  $value = $row
    ->getSourceProperty('commerce_price');
  $currency_code = $value[0]['currency_code'];
  $value[0]['fraction_digits'] = $currencyRepository
    ->get($currency_code)
    ->getFractionDigits();
  $row
    ->setSourceProperty('commerce_price', $value);
  return parent::prepareRow($row);
}