Exemplo n.º 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;
 }