You are here

class USPS in Commerce USPS 8

Provides the USPS shipping method.

The "_9xxx" ids represent various First-Class Mail services that share the same service id of 0 from USPS api (sad!).

Plugin annotation


@CommerceShippingMethod(
 id = "usps",
 label = @Translation("USPS"),
 services = {
   "_9999" = @translation("First-Class Mail Large Envelope"),
   "_9998" = @translation("First-Class Mail Stamped Letter"),
   "_9997" = @translation("First-Class Mail Postcards"),
   "_9996" = @translation("First-Class Mail Package Service - Retail"),
   "_1" = @translation("Priority Mail"),
   "_2" = @translation("Priority Mail Express Hold For Pickup"),
   "_3" = @translation("Priority Mail Express"),
   "_4" = @translation("USPS Retail Ground"),
   "_6" = @translation("Media Mail Parcel"),
   "_7" = @translation("Library Mail Parcel"),
   "_13" = @translation("Priority Mail Express Flat Rate Envelope"),
   "_15" = @translation("First-Class Mail Large Postcards"),
   "_16" = @translation("Priority Mail Flat Rate Envelope"),
   "_17" = @translation("Priority Mail Medium Flat Rate Box"),
   "_22" = @translation("Priority Mail Large Flat Rate Box"),
   "_23" = @translation("Priority Mail Express Sunday/Holiday Delivery"),
   "_25" = @translation("Priority Mail Express Sunday/Holiday Delivery Flat Rate Envelope"),
   "_27" = @translation("Priority Mail Express Flat Rate Envelope Hold For Pickup"),
   "_28" = @translation("Priority Mail Small Flat Rate Box"),
   "_29" = @translation("Priority Mail Padded Flat Rate Envelope"),
   "_30" = @translation("Priority Mail Express Legal Flat Rate Envelope"),
   "_31" = @translation("Priority Mail Express Legal Flat Rate Envelope Hold For Pickup"),
   "_32" = @translation("Priority Mail Express Sunday/Holiday Delivery Legal Flat Rate Envelope"),
   "_33" = @translation("Priority Mail Hold For Pickup"),
   "_34" = @translation("Priority Mail Large Flat Rate Box Hold For Pickup"),
   "_35" = @translation("Priority Mail Medium Flat Rate Box Hold For Pickup"),
   "_36" = @translation("Priority Mail Small Flat Rate Box Hold For Pickup"),
   "_37" = @translation("Priority Mail Flat Rate Envelope Hold For Pickup"),
   "_38" = @translation("Priority Mail Gift Card Flat Rate Envelope"),
   "_39" = @translation("Priority Mail Gift Card Flat Rate Envelope Hold For Pickup"),
   "_40" = @translation("Priority Mail Window Flat Rate Envelope"),
   "_41" = @translation("Priority Mail Window Flat Rate Envelope Hold For Pickup"),
   "_42" = @translation("Priority Mail Small Flat Rate Envelope"),
   "_43" = @translation("Priority Mail Small Flat Rate Envelope Hold For Pickup"),
   "_44" = @translation("Priority Mail Legal Flat Rate Envelope"),
   "_45" = @translation("Priority Mail Legal Flat Rate Envelope Hold For Pickup"),
   "_46" = @translation("Priority Mail Padded Flat Rate Envelope Hold For Pickup"),
   "_47" = @translation("Priority Mail Regional Rate Box A"),
   "_48" = @translation("Priority Mail Regional Rate Box A Hold For Pickup"),
   "_49" = @translation("Priority Mail Regional Rate Box B"),
   "_50" = @translation("Priority Mail Regional Rate Box B Hold For Pickup"),
   "_53" = @translation("First-Class/Package Service Hold For Pickup"),
   "_55" = @translation("Priority Mail Express Flat Rate Boxes"),
   "_56" = @translation("Priority Mail Express Flat Rate Boxes Hold For Pickup"),
   "_57" = @translation("Priority Mail Express Sunday/Holiday Delivery Flat Rate Boxes"),
   "_58" = @translation("Priority Mail Regional Rate Box C"),
   "_59" = @translation("Priority Mail Regional Rate Box C Hold For Pickup"),
   "_61" = @translation("First-Class/Package Service"),
   "_62" = @translation("Priority Mail Express Padded Flat Rate Envelope"),
   "_63" = @translation("Priority Mail Express Padded Flat Rate Envelope Hold For Pickup"),
   "_64" = @translation("Priority Mail Express Sunday/Holiday Delivery Padded Flat Rate Envelope"),
   "_77" = @translation("Parcel Select Ground"),
 }
)

Hierarchy

Expanded class hierarchy of USPS

See also

\Drupal\commerce_usps\USPSRateRequest::resolveRates().

File

src/Plugin/Commerce/ShippingMethod/USPS.php, line 73

Namespace

Drupal\commerce_usps\Plugin\Commerce\ShippingMethod
View source
class USPS extends USPSBase {

  /**
   * {@inheritdoc}
   */
  public function calculateRates(ShipmentInterface $shipment) {

    // Only attempt to collect rates if an address exists on the shipment.
    if ($shipment
      ->getShippingProfile()
      ->get('address')
      ->isEmpty()) {
      return [];
    }

    // Only attempt to collect rates for US addresses.
    if ($shipment
      ->getShippingProfile()
      ->get('address')->country_code != 'US') {
      return [];
    }

    // Make sure a package type is set on the shipment.
    $this
      ->setPackageType($shipment);
    return $this->uspsRateService
      ->getRates($shipment, $this->parentEntity);
  }

}

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
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::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.
USPS::calculateRates public function Calculates rates for the given shipment. Overrides ShippingMethodInterface::calculateRates
USPSBase::$uspsRateService protected property The USPSRateRequest class.
USPSBase::buildConfigurationForm public function Form constructor. Overrides ShippingMethodBase::buildConfigurationForm
USPSBase::create public static function Creates an instance of the plugin. Overrides ShippingMethodBase::create 1
USPSBase::defaultConfiguration public function Gets default configuration for this plugin. Overrides ShippingMethodBase::defaultConfiguration
USPSBase::getTrackingUrl public function Returns a tracking URL for USPS shipments. Overrides SupportsTrackingInterface::getTrackingUrl
USPSBase::isConfigured protected function Determine if we have the minimum information to connect to USPS.
USPSBase::preparePluginDefinition private function Prepares the service array keys to support integer values.
USPSBase::setPackageType protected function Ensure a package type exists on the shipment.
USPSBase::submitConfigurationForm public function Form submission handler. Overrides ShippingMethodBase::submitConfigurationForm
USPSBase::__construct public function Constructs a new ShippingMethodBase object. Overrides ShippingMethodBase::__construct