} $params = $_REQUEST; if ($mode == 'search_tracking') { $data_tracking = array(); if (!empty($params['order_id'])) { list($_shipments) = fn_get_shipments_info(array('order_id' => $params['order_id'], 'advanced_info' => true)); if (!empty($_shipments)) { foreach ($_shipments as $key => $shipment) { if ($shipment['carrier'] == 'russian_post') { $shipping_data = fn_get_shipping_info($shipment['shipping_id'], DESCR_SL); $data_history = array(); if (!empty($shipping_data['service_params']['api_login']) && !empty($shipping_data['service_params']['api_password'])) { $url = 'https://tracking.russianpost.ru/rtm34?wsdl'; $data_search = array('OperationHistoryRequest' => array('Barcode' => $shipment['tracking_number'], 'MessageType' => 0, 'Language' => 'RUS'), 'AuthorizationHeader' => array('login' => $shipping_data['service_params']['api_login'], 'password' => $shipping_data['service_params']['api_password'])); $data_soap = new SoapClient($url, array('trace' => 1, 'soap_version' => SOAP_1_2)); $result = @$data_soap->getOperationHistory(new SoapParam($data_search, 'OperationHistoryRequest')); if (!empty($result)) { foreach ($result->OperationHistoryData->historyRecord as $d_result) { $data_status = array('order_id' => $params['order_id'], 'shipment_id' => $shipment['shipment_id'], 'tracking_number' => $shipment['tracking_number'], 'timestamp' => strtotime($d_result->OperationParameters->OperDate), 'address' => $d_result->AddressParameters->OperationAddress->Description, 'type_operation' => $d_result->OperationParameters->OperType->Name, 'status' => $d_result->OperationParameters->OperAttr->Name); $status_id = db_get_row('SELECT id FROM ?:rus_russianpost_status WHERE order_id = ?i AND shipment_id = ?i AND tracking_number = ?s AND timestamp = ?i AND status = ?s', $data_status['order_id'], $data_status['shipment_id'], $data_status['tracking_number'], $data_status['timestamp'], $data_status['status']); if (empty($status_id)) { db_query('INSERT INTO ?:rus_russianpost_status ?e', $data_status); } $data_history[] = array('timestamp' => $data_status['timestamp'], 'address' => $data_status['address'], 'type_operation' => $data_status['type_operation'], 'status' => $data_status['status']); } } } $data_tracking[$shipment['shipment_id']] = array('shipping_id' => $shipment['shipping_id'], 'tracking_number' => $shipment['tracking_number'], 'data_history' => $data_history); } } if (!empty($data_tracking)) {