Beispiel #1
0
 /**
  * Save log in database.
  * @param $message
  * @param int $id_order
  * @param int $id_shipto
  * @param int $type
  */
 public static function addLog($message, $id_order = 0, $id_shipto = 0, $type = 1)
 {
     $new_log = new ShiptomyidLog();
     $new_log->message = $message . ' [Order: ' . (int) $id_order . '] - [Shipto: ' . (int) $id_shipto . ']';
     $new_log->type = $type;
     $new_log->add();
 }
Beispiel #2
0
 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;
 }
Beispiel #5
0
 * 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');