OpenCart 🇺🇦

Схема

public mixed orderStatusListen ( $order_id, $status_id, $data = array() )

Аргументы

Аргумент Возможный тип Описание
$order_id
$status_id
$data = array()

Описание

Метод пока еще не документирован.

Исходный код

$ebay_id = $this->isEbayOrder($order_id);

$this->log('orderStatusListen() - Order '. $order_id .' changed status');

if($ebay_id != false) {
	$this->log('orderStatusListen() - It is an eBay order, new status: '.$status_id);

	$item_txn_array = $this->getSaleRecord($ebay_id);

	if(!empty($item_txn_array)) {
		//Has it been marked as paid?
		if($status_id == $this->config->get('EBAY_DEF_PAID_ID')) {
			$this->log('orderStatusListen() - Updating to paid status');
			foreach($item_txn_array as $item) {
				$tmp = simplexml_load_string($this->eBayPaymentStatus($item['item'], $item['txn'], true));
			}
		}

		// Has it been marked as shipped?
		if($status_id == $this->config->get('EBAY_DEF_SHIPPED_ID')) {
			$this->log('orderStatusListen() - Updating to shipped status');
			foreach($item_txn_array as $item) {
				$tmp = simplexml_load_string($this->eBayShippingStatus($item['item'], $item['txn'], true, (isset($data['tracking_no']) ? $data['tracking_no'] : ''), (isset($data['carrier_id']) ? $data['carrier_id'] : '')));
			}
			$qry = $this->db->query("UPDATE `" . DB_PREFIX . "ebay_order` SET `carrier_id` = '".$this->db->escape((isset($data['carrier_id']) ? $data['carrier_id'] : ''))."', `tracking_no` = '".$this->db->escape((isset($data['tracking_no']) ? $data['tracking_no'] : ''))."' WHERE `order_id` = '".(int)$order_id."' LIMIT 1");
		}

		//Has it been marked as cancelled?
		if($status_id == $this->config->get('EBAY_DEF_CANCELLED_ID')) {
			$this->log('orderStatusListen() - Updating to cancelled status');
			foreach($item_txn_array as $item) {
				$tmp = simplexml_load_string($this->eBayPaymentStatus($item['item'], $item['txn'], false));
			}

			foreach($item_txn_array as $item) {
				$tmp = simplexml_load_string($this->eBayShippingStatus($item['item'], $item['txn'], false));
			}
		}

		//Has it been marked as refunded?
		if($status_id == $this->config->get('EBAY_DEF_REFUNDED_ID')) {
			$this->log('orderStatusListen() - Updating to refunded status');
			foreach($item_txn_array as $item) {
				$tmp = simplexml_load_string($this->eBayPaymentStatus($item['item'], $item['txn'], false));
			}

			foreach($item_txn_array as $item) {
				$tmp = simplexml_load_string($this->eBayShippingStatus($item['item'], $item['txn'], false));
			}
		}
	}else{
		// @todo return error to use here
		$this->log('orderStatusListen() - The TXN array was empty, could not get order info to update status.');
	}
}else{
	$this->log('orderStatusListen() - It is not an eBay order');
}