You are here

class DynamicRate in Commerce Shipping 8.2

Provides the Dynamic shipping method. Prices multiplied by weight of package.

Plugin annotation


@CommerceShippingMethod(
  id = "dynamic",
  label = @Translation("Dynamic by package weight"),
)

Hierarchy

Expanded class hierarchy of DynamicRate

File

tests/modules/commerce_shipping_test/src/Plugin/Commerce/ShippingMethod/DynamicRate.php, line 18

Namespace

Drupal\commerce_shipping_test\Plugin\Commerce\ShippingMethod
View source
class DynamicRate extends FlatRate {

  /**
   * {@inheritdoc}
   */
  public function calculateRates(ShipmentInterface $shipment) {
    $rates = [];
    $amount = Price::fromArray($this->configuration['rate_amount']);
    $package_type = $shipment
      ->getPackageType();
    if ($package_type === NULL) {
      return $rates;
    }
    $weight = $package_type
      ->getWeight()
      ->convert('g')
      ->getNumber() ?: 1;
    $rates[] = new ShippingRate([
      'shipping_method_id' => $this->parentEntity
        ->id(),
      'service' => $this->services['default'],
      'amount' => $amount
        ->multiply($weight),
    ]);
    return $rates;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
DynamicRate::calculateRates public function Calculates rates for the given shipment. Overrides FlatRate::calculateRates
FlatRate::buildConfigurationForm public function Form constructor. Overrides ShippingMethodBase::buildConfigurationForm 1
FlatRate::defaultConfiguration public function Gets default configuration for this plugin. Overrides ShippingMethodBase::defaultConfiguration
FlatRate::submitConfigurationForm public function Form submission handler. Overrides ShippingMethodBase::submitConfigurationForm
FlatRate::__construct public function Constructs a new FlatRate object. Overrides ShippingMethodBase::__construct
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
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 3
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.
ShippingMethodBase::$packageTypeManager protected property The package type manager.
ShippingMethodBase::$parentEntity protected property The parent config entity.
ShippingMethodBase::$services protected property The shipping services.
ShippingMethodBase::$workflowManager protected property The workflow manager.
ShippingMethodBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides DependentPluginInterface::calculateDependencies
ShippingMethodBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
ShippingMethodBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
ShippingMethodBase::getDefaultPackageType public function Gets the default package type. Overrides ShippingMethodInterface::getDefaultPackageType
ShippingMethodBase::getLabel public function Gets the shipping method label. Overrides ShippingMethodInterface::getLabel
ShippingMethodBase::getServices public function Gets the shipping services. Overrides ShippingMethodInterface::getServices
ShippingMethodBase::getWorkflowId public function Gets the shipment workflow ID. Overrides ShippingMethodInterface::getWorkflowId
ShippingMethodBase::selectRate public function Selects the given shipping rate for the given shipment. Overrides ShippingMethodInterface::selectRate
ShippingMethodBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
ShippingMethodBase::setParentEntity public function Sets the parent entity. Overrides ParentEntityAwareInterface::setParentEntity
ShippingMethodBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
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.