You are here

public function PromotionOfferManager::processDefinition in Commerce Core 8.2

Performs extra processing on plugin definitions.

By default we add defaults for the type to the definition. If a type has additional processing logic they can do that by replacing or extending the method.

Overrides DefaultPluginManager::processDefinition

File

modules/promotion/src/PromotionOfferManager.php, line 50

Class

PromotionOfferManager
Manages discovery and instantiation of promotion offer plugins.

Namespace

Drupal\commerce_promotion

Code

public function processDefinition(&$definition, $plugin_id) {
  parent::processDefinition($definition, $plugin_id);
  foreach ([
    'id',
    'label',
    'entity_type',
  ] as $required_property) {
    if (empty($definition[$required_property])) {
      throw new PluginException(sprintf('The promotion offer "%s" must define the %s property.', $plugin_id, $required_property));
    }
  }
  $entity_type_id = $definition['entity_type'];
  if (!$this->entityTypeManager
    ->getDefinition($entity_type_id)) {
    throw new PluginException(sprintf('The promotion offer "%s" must specify a valid entity type, "%s" given.', $plugin_id, $entity_type_id));
  }
}