Схема
public mixed
updateOrder (
$orderId, $orderStatusString, $courier_id = '', $courierFromList = true, $tracking_no = '' )
Аргументы
Аргумент |
Возможный тип |
Описание |
$orderId |
— |
— |
$orderStatusString |
— |
— |
$courier_id = '' |
— |
— |
$courierFromList = true |
— |
— |
$tracking_no = '' |
— |
— |
Описание
Метод пока еще не документирован.
Исходный код
if ($this->config->get('amazon_status') != 1) {
return;
}
/* Is called from admin? */
if (!defined('HTTPS_CATALOG')) {
return;
}
$amazonOrder = $this->getOrder($orderId);
if(!$amazonOrder) {
return;
}
$amazonOrderId = $amazonOrder['amazon_order_id'];
$log = new Log('amazon.log');
$log->write("Order's $amazonOrderId status changed to $orderStatusString");
$this->load->model('openbay/amazon');
$amazonOrderProducts = $this->model_openbay_amazon->getAmazonOrderedProducts($orderId);
$requestNode = new SimpleXMLElement('<Request/>');
$requestNode->addChild('AmazonOrderId', $amazonOrderId);
$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 ($amazonOrderProducts as $product) {
$newOrderItem = $orderItemsNode->addChild('OrderItem');
$newOrderItem->addChild('ItemId', htmlspecialchars($product['amazon_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_amazon->updateAmazonOrderTracking($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");