Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 * 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'];