public function USPSRateRequestBase::getRates in Commerce USPS 8
Fetch rates from the USPS API.
Parameters
\Drupal\commerce_shipping\Entity\ShipmentInterface $commerce_shipment: The commerce shipment.
\Drupal\commerce_shipping\Entity\ShippingMethodInterface $shipping_method: The shipping method being rated.
Return value
array An array of ShippingRate objects.
Throws
\Exception Exception when required properties are missing.
Overrides USPSRateRequestInterface::getRates
File
- src/
USPSRateRequestBase.php, line 97
Class
- USPSRateRequestBase
- Class USPSRateRequest.
Namespace
Drupal\commerce_uspsCode
public function getRates(ShipmentInterface $commerce_shipment, ShippingMethodInterface $shipping_method) {
// Validate a commerce shipment has been provided.
if ($commerce_shipment === NULL) {
throw new \Exception('Shipment not provided');
}
// Set the necessary info needed for the request.
$this
->setShipment($commerce_shipment);
$this
->setShippingMethod($shipping_method);
// Build the rate request.
$this
->buildRate();
// Allow others to alter the rate.
$this
->alterRate();
// Fetch the rates.
$this
->logRequest();
$this->uspsRequest
->getRate();
$this
->logResponse();
$response = $this->uspsRequest
->getArrayResponse();
return $this
->resolveRates($response);
}