$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');
}