/** * Send order to shiptomyid. */ public function sendOrderToAPI($order) { $this->on_process = true; $delivery_address = new Address((int) $order->id_address_delivery); $invoice_address = new Address((int) $order->id_address_invoice); $customer = new Customer((int) $order->id_customer); $shipto_cart = ShiptomyidCart::getByIdCart((int) $order->id_cart); if (!Validate::isLoadedObject($delivery_address) || !Validate::isLoadedObject($invoice_address) || !Validate::isLoadedObject($customer) || !Validate::isLoadedObject($shipto_cart)) { ShiptomyidLog::addLog('invalid order object or address object in order', $order->id); return false; } $gift_msg = !empty($order->gift_message) ? $order->gift_message : 'Brought to you by Ship2MyID'; $data_to_send = array('vendor_order_id' => $order->id, 'sender_email_address' => $customer->email, 'sender_first_name' => $invoice_address->firstname, 'sender_last_name' => $invoice_address->lastname, 'sender_message' => $gift_msg, 'receiver_email_address' => $shipto_cart->receiver_email, 'receiver_first_name' => $shipto_cart->receiver_firstname, 'receiver_last_name' => $shipto_cart->receiver_lastname, 'receiver_telephone' => $shipto_cart->receiver_phone, 'receiver_type' => $shipto_cart->receiver_type, 'receiver_linkedin_id' => '', 'receiver_facebook_id' => '', 'marketplace_order_data' => $this->getOrderData($order)); switch ($shipto_cart->receiver_type) { case 'facebook': $data_to_send['receiver_facebook_id'] = $shipto_cart->receiver_facebook_id; break; case 'linkedin': $data_to_send['receiver_linkedin_id'] = $shipto_cart->receiver_linkedin_id; break; } $result = $this->api->sendOrder(array('ExternalOrder' => $data_to_send)); if (isset($result['ExternalOrder'])) { $result_data = $result['ExternalOrder']; $new_shipto_order = new ShiptomyidOrder(); $new_shipto_order->id_order = $order->id; $new_shipto_order->id_shiptomyid = $result_data['id']; $new_shipto_order->state_send = 1; if ($new_shipto_order->add()) { ShiptomyidOrder::changeOrderStatus($order->id, self::$os_waiting); ShiptomyidOrder::addMessageToOrder($order->id, $this->l('Add order in Ship2MyId : #' . $new_shipto_order->id_shiptomyid)); $this->checkOrderStatus($new_shipto_order->id_order, $result); return true; } ShiptomyidLog::addLog('Error in save shiptotmyid_order object.', $order->id, $new_shipto_order->id_shiptomyid); } else { ShiptomyidOrder::changeOrderStatus($order->id, self::$os_error); ShiptomyidOrder::addMessageToOrder($order->id, ShiptoAPI::getErrorMessage($result)); } return false; }
* For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @author NewQuest * @copyright NewQuest * @license NewQuest */ require_once dirname(__FILE__) . '/../../../config/config.inc.php'; $key = Tools::getValue('token', ''); if ($key != Configuration::get('SHIPTOMYID_CRON_TOKEN')) { exit; } /** @var Shiptomyid $module */ $module = Module::getInstanceByName('shiptomyid'); /** @var ShiptoAPI $api */ $api = new ShiptoAPI(); /* * Check waiting address order // */ $orders = Db::getInstance()->ExecuteS('SELECT o.id_order, so.id_shiptomyid 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_order so ON so.id_order = o.id_order WHERE oh.id_order_state = ' . (int) Configuration::get('SHIPTOMYID_OS_WAITING')); $ids_order = array(); $t_mapping_order = array(); foreach ($orders as $order) { $ids_order[] = $order['id_shiptomyid']; $t_mapping_order[$order['id_shiptomyid']] = $order['id_order'];