function uc_ups_void_shipment_request in Ubercart 8.4
Same name and namespace in other branches
- 5 shipping/uc_ups/uc_ups.module \uc_ups_void_shipment_request()
- 6.2 shipping/uc_ups/uc_ups.module \uc_ups_void_shipment_request()
- 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);
}