Схема
public mixed
updateOrder (
$orderId, $orderStatusString, $courier_id = '', $courierFromList = true, $tracking_no = '' )
Аргументы
Аргумент |
Возможный тип |
Описание |
$orderId |
— |
— |
$orderStatusString |
— |
— |
$courier_id = '' |
— |
— |
$courierFromList = true |
— |
— |
$tracking_no = '' |
— |
— |
Описание
Метод пока еще не документирован.
Исходный код
if ($this->config->get('amazonus_status') != 1) {
return;
}
/* Is called from admin? */
if (!defined('HTTPS_CATALOG')) {
return;
}
$amazonusOrder = $this->getOrder($orderId);
if(!$amazonusOrder) {
return;
}
$amazonusOrderId = $amazonusOrder['amazonus_order_id'];
$log = new Log('amazonus.log');
$log->write("Order's $amazonusOrderId status changed to $orderStatusString");
$this->load->model('openbay/amazonus');
$amazonusOrderProducts = $this->model_openbay_amazonus->getAmazonusOrderedProducts($orderId);
$requestNode = new SimpleXMLElement('<Request/>');
$requestNode->addChild('AmazonusOrderId', $amazonusOrderId);
$requestNode->addChild('Status', $orderStatusString);
if(!empty($courier_id)) {
if($courierFromList) {
$requestNode->addChild('CourierId', $courier_id);
} else {
$requestNode->addChild('CourierOther', $courier_id);
}
$requestNode->addChild('TrackingNo', $tracking_no);
}
$orderItemsNode = $requestNode->addChild('OrderItems');
foreach ($amazonusOrderProducts as $product) {
$newOrderItem = $orderItemsNode->addChild('OrderItem');
$newOrderItem->addChild('ItemId', htmlspecialchars($product['amazonus_order_item_id']));
$newOrderItem->addChild('Quantity', (int)$product['quantity']);
}
$doc = new DOMDocument('1.0');
$doc->preserveWhiteSpace = false;
$doc->loadXML($requestNode->asXML());
$doc->formatOutput = true;
$this->model_openbay_amazonus->updateAmazonusOrderTracking($orderId, $courier_id, $courierFromList, !empty($courier_id) ? $tracking_no : '');
$log->write('Request: ' . $doc->saveXML());
$response = $this->callWithResponse('order/update2', $doc->saveXML(), false);
$log->write("Response for Order's status update: $response");