You are here

class CommercePrice in Commerce Migrate 3.1.x

Same name in this branch
  1. 3.1.x modules/magento/src/Plugin/migrate/process/CommercePrice.php \Drupal\commerce_migrate_magento\Plugin\migrate\process\CommercePrice
  2. 3.1.x modules/csv_example/src/Plugin/migrate/process/CommercePrice.php \Drupal\commerce_migrate_csv_example\Plugin\migrate\process\CommercePrice
  3. 3.1.x modules/shopify/src/Plugin/migrate/process/CommercePrice.php \Drupal\commerce_migrate_shopify\Plugin\migrate\process\CommercePrice
  4. 3.1.x modules/commerce/src/Plugin/migrate/process/commerce1/CommercePrice.php \Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1\CommercePrice
  5. 3.1.x modules/commerce/src/Plugin/migrate/field/commerce1/CommercePrice.php \Drupal\commerce_migrate_commerce\Plugin\migrate\field\commerce1\CommercePrice
Same name and namespace in other branches
  1. 8.2 modules/commerce/src/Plugin/migrate/process/commerce1/CommercePrice.php \Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1\CommercePrice
  2. 3.0.x modules/commerce/src/Plugin/migrate/process/commerce1/CommercePrice.php \Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1\CommercePrice

Scales the price from Commerce 1 to Commerce 2.

This plugin is put in the pipeline by field migration for fields of type 'commerce_price'. It is also used in the product variation migration and the order item migration.

The commerce_price process plugin is put in the pipeline by field migrations for fields of type 'commerce_price'. It is also used in the product variation migration and the order item migration.

This plugin is used to convert the Commerce 1 price array to a Commerce 2 price array. The source value is an associative array with keys, 'amount', 'currency_code' and 'fraction_digits'.

Input array::

  • amount: The price number
  • currency_code: The currency code.
  • fraction_digits: The number of fraction digits for this given currency.

Returned array::

  • number: The converted price number
  • currency_code: The currency code.

An empty array is returned for all errors.


plugin: commerce1_migrate_commerce_price
source: commerce1_price_array

When input the input is [ 'amount' => '123', 'currency_code' => 'NZD', 'fraction_digits' => 3, ]; The output is [ 'number' => '0.123', 'currency_code' => 'NZD', ];

Plugin annotation


@MigrateProcessPlugin(
  id = "commerce1_migrate_commerce_price"
)

Hierarchy

Expanded class hierarchy of CommercePrice

1 file declares its use of CommercePrice
CommercePriceTest.php in modules/commerce/tests/src/Unit/Plugin/migrate/process/commerce1/CommercePriceTest.php

File

modules/commerce/src/Plugin/migrate/process/commerce1/CommercePrice.php, line 58

Namespace

Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1
View source
class CommercePrice extends ProcessPluginBase {

  /**
   * {@inheritdoc}
   */
  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
    if (!is_array($value)) {
      throw new MigrateSkipRowException(sprintf("CommercePrice input is not an array for destination '%s'", $destination_property));
    }

    // If the destination is a unit price then use the base price component, if
    // if it is available.
    if ($destination_property && strpos('unit_price', (string) $destination_property) !== FALSE) {
      if (isset($value['data']['components'])) {
        foreach ($value['data']['components'] as $component) {
          if ($component['name'] === 'base_price') {
            $value['amount'] = $component['price']['amount'];
            $value['currency_code'] = $component['price']['currency_code'];
            break;
          }
        }
      }
    }
    if (isset($value['amount']) && isset($value['currency_code']) && isset($value['fraction_digits']) && $value['fraction_digits'] >= 0) {
      $new_value = [
        'number' => Calculator::divide($value['amount'], bcpow(10, $value['fraction_digits'])),
        'currency_code' => $value['currency_code'],
      ];
    }
    else {
      throw new MigrateSkipRowException(sprintf("CommercePrice input array is invalid for destination '%s'", $destination_property));
    }
    return $new_value;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CommercePrice::transform public function Performs the associated process. Overrides ProcessPluginBase::transform 2
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 27
MessengerTrait::messenger public function Gets the messenger. 27
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 2
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 98
ProcessPluginBase::multiple public function Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface::multiple 3
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.