OpenCart 🇺🇦

Схема

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");