public static function changeOrderStatus($id_order, $id_new_state) { $new_history = new OrderHistory(); $new_history->id_order = (int) $id_order; $new_history->changeIdOrderState((int) $id_new_state, $id_order, true); if (!$new_history->addWithemail(true)) { ShiptomyidLog::addLog('Error changing order_state to #' . $id_new_state, $id_order); } }
private function query($params = array(), $content_type = null, $use_token = true) { if (empty($this->access_token) && $use_token) { return false; } $headers = array(); if ($use_token) { if ($content_type == 'json') { if (strpos($this->path, '?') !== false) { $this->path .= '&access_token=' . $this->access_token; } else { $this->path .= '?access_token=' . $this->access_token; } } else { $params['access_token'] = $this->access_token; } } $response = $this->request($this->method, '//base' . $this->path, $params, $headers, $content_type); $return = $response; if (!empty($return['Error']['message'])) { ShiptomyidLog::addLog('Error in API query : ' . $return['Error']['message']); } return $return; }
/** * Check Shiptotmyid status for an specific order. */ public function checkOrderStatus($id_order, $result = null) { $shipto_order = ShiptomyidOrder::getByIdOrder($id_order); if (!Validate::isLoadedObject($shipto_order)) { ShiptomyidLog::addLog('invalid shiptomyid_order object', $id_order); return false; } if ($result === null) { $result = $this->api->getOrder($shipto_order->id_shiptomyid); } if (isset($result['ExternalOrder'])) { if ($result['ExternalOrder']['is_order_accepted'] == 'true') { $result_data = $result['ExternalOrder']; $id_country = (int) Country::getByIso($result_data['countryCode']); $id_state = (int) State::getIdByIso($result_data['stateCode']); if (!$id_state) { $id_state = (int) StateCore::getIdByName($result_data['stateName']); } $data = array('firstname' => $result_data['receiver_first_name'], 'lastname' => $result_data['receiver_last_name'], 'address1' => $result_data['address_1'], 'postcode' => $result_data['zipcode'], 'city' => $result_data['city'], 'id_country' => $id_country, 'id_state' => $id_state, 'phone' => $result_data['phoneNumber']); $shipto_order->setDeliveryAddress($data); $order_state = new OrderState(self::$os_ready); if (Validate::isLoadedObject($order_state)) { ShiptomyidOrder::changeOrderStatus($id_order, self::$os_ready); ShiptomyidOrder::addMessageToOrder($id_order, $this->l('Order is ready to delivery.') . '<br/><pre>' . print_r($data, true) . '</pre>'); } } elseif ($result['ExternalOrder']['is_order_rejected'] == 'true') { $result_data = $result['ExternalOrder']; $order_state = new OrderState(self::$os_cancel); if (Validate::isLoadedObject($order_state)) { ShiptomyidOrder::changeOrderStatus($id_order, self::$os_cancel); ShiptomyidOrder::addMessageToOrder($id_order, $this->l('Order is rejected : ') . $result_data['receiver_rejected_note']); } } } elseif (isset($result['Error'])) { ShiptomyidLog::addLog('Check order status error in cron task : ' . $result['Error']['message'] . ' [' . $result['Error']['status'] . ']', $id_order); return false; } return true; }
* Check invalid orders // */ $orders = Db::getInstance()->ExecuteS('SELECT o.id_order, c.email, sc.* from ' . _DB_PREFIX_ . 'orders o LEFT JOIN ' . _DB_PREFIX_ . 'order_history oh ON oh.id_order = o.id_order AND oh.id_order_history = ( SELECT tmp.id_order_history FROM ' . _DB_PREFIX_ . 'order_history tmp WHERE tmp.id_order = o.id_order ORDER BY id_order_history DESC LIMIT 1 ) JOIN ' . _DB_PREFIX_ . 'shiptomyid_cart sc ON sc.id_cart = o.id_cart JOIN ' . _DB_PREFIX_ . 'customer c ON c.id_customer = o.id_customer WHERE oh.id_order_state = ' . (int) Configuration::get('SHIPTOMYID_OS_ERROR')); echo '<br/>INVALID ORDERS<br/>'; if ($orders) { foreach ($orders as $order) { $data = array('sender_email_address' => $order['email'], 'receiver_email_address' => $order['receiver_email'], 'vendor_order_id' => $order['id_order']); $result = $api->searchOrder($data); if (isset($result[0]['ExternalOrder'])) { $result = $result[0]['ExternalOrder']; $module->finalizeSendErrorOrder($order['id_order'], $result['id']); echo '- Find order - ' . $order['id_order'] . ' [' . $result['id'] . ']<br/>'; } else { $o_order = new Order($order['id_order']); if (Validate::isLoadedObject($o_order)) { $module->sendOrderToAPI($order); echo '- Resend order - ' . $order['id_order'] . ' [ - ]<br/>'; } else { ShiptomyidLog::addLog('invalid order object in resend order process', $order['id_order']); } } } } die('END');