You are here

function uc_ups_request_pickup in Ubercart 8.4

Same name and namespace in other branches
  1. 5 shipping/uc_ups/uc_ups.module \uc_ups_request_pickup()
  2. 6.2 shipping/uc_ups/uc_ups.ship.inc \uc_ups_request_pickup()
  3. 7.3 shipping/uc_ups/uc_ups.ship.inc \uc_ups_request_pickup()

Constructs an XML label and pickup request.

Parameters

string $digest: Base-64 encoded shipment request.

int $order_id: The order id of the shipment.

array $packages: An array of package ids to be shipped.

Return value

string ShipmentAcceptRequest XML document to send to UPS.

1 call to uc_ups_request_pickup()
uc_ups_confirm_shipment_submit in shipping/uc_ups/src/Plugin/Ubercart/FulfillmentMethod/uc_ups.ship.inc
Generates label and schedules pickup of the shipment.

File

shipping/uc_ups/src/Plugin/Ubercart/FulfillmentMethod/uc_ups.ship.inc, line 713
UPS functions for label generation.

Code

function uc_ups_request_pickup($digest, $order_id = 0, array $packages = []) {
  $packages = (array) $packages;
  $schema = uc_ups_access_request();
  $schema .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ShipmentAcceptRequest>\n  <Request>\n    <RequestAction>ShipAccept</RequestAction>";
  if ($order_id || count($packages)) {
    $schema .= "\n<TransactionReference>\n      <CustomerContext>";
    if ($order_id) {
      $schema .= "<OrderId>" . $order_id . "</OrderId>\n";
    }
    foreach ($packages as $pkg_id) {
      $schema .= "<PackageId>" . $pkg_id . "</PackageId>\n";
    }
    $schema .= "</CustomerContext>\n</TransactionReference>\n";
  }
  $schema .= "  </Request>\n  <ShipmentDigest>" . $digest . "</ShipmentDigest>\n</ShipmentAcceptRequest>";
  return $schema;
}