You are here

function uc_ups_void_shipment_request in Ubercart 8.4

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

Constructs a void shipment request.

Parameters

string $shipment_number: The UPS shipment tracking number.

array $tracking_numbers: Array of tracking numbers for individual packages in the shipment. Optional for shipments of only one package, as they have the same tracking number.

Return value

string XML VoidShipmentRequest message.

1 call to uc_ups_void_shipment_request()
uc_ups_void_shipment in shipping/uc_ups/uc_ups.module
Instructs UPS to cancel (in whole or in part) a shipment.

File

shipping/uc_ups/uc_ups.module, line 798
UPS shipping quote module.

Code

function uc_ups_void_shipment_request($shipment_number, array $tracking_numbers = []) {
  $customer_context = t('Void shipment @ship_number and tracking numbers @track_list', [
    '@ship_number' => $shipment_number,
    '@track_list' => implode(', ', $tracking_numbers),
  ]);
  $xml = new \XMLWriter();
  $xml
    ->openMemory();
  $xml
    ->startDocument('1.0', 'UTF-8');
  $xml
    ->startElement('VoidShipmentRequest');
  $xml
    ->writeAttribute('xml:lang', 'en-US');
  $xml
    ->startElement('Request');
  $xml
    ->writeElement('RequestAction', 'Void');
  $xml
    ->startElement('TransactionReference');
  $xml
    ->writeElement('CustomerContext', $customer_context);
  $xml
    ->writeElement('XpciVersion', '1.0');
  $xml
    ->endElement();

  //   TransactionReference
  $xml
    ->endElement();

  // Request
  $xml
    ->startElement('ExpandedVoidShipment');
  $xml
    ->writeElement('ShipmentIdentificationNumber', $shipment_number);
  foreach ($tracking_numbers as $number) {
    $xml
      ->writeElement('TrackingNumber', $number);
  }
  $xml
    ->endElement();

  // ExpandedVoidShipment
  $xml
    ->endElement();

  // VoidShipmentRequest
  $xml
    ->endDocument();
  return uc_ups_access_request() . $xml
    ->outputMemory(TRUE);
}