jim21 Posted March 31, 2011 Share Posted March 31, 2011 Hello, In the code below, a list of FedEx shipping services is returned, I just need one returned - the 2nd from the top, Priority Overnight (no other shipping services will be used). Can someone please advise how to adjust the code to return only 1 shipping value and cost? Code: <?php class fedex_module{ var $code, $title, $description, $icon, $enabled; //Class Constructor function fedex_module() { global $order; global $customer_id; $this->code = "fedex_module"; $this->title = MODULE_SHIPPING_FEDEX_TEXT_TITLE; $this->description = MODULE_SHIPPING_FEDEX_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_FEDEX_SORT_ORDER; $this->icon = DIR_WS_ICONS . 'shipping_fedex.gif'; //$this->icon = ''; $this->enabled = ((MODULE_SHIPPING_FEDEX_STATUS == 'True') ? true : false); $this->fedex_key = MODULE_SHIPPING_FEDEX_KEY; $this->fedex_pwd = MODULE_SHIPPING_FEDEX_PWD; $this->fedex_act_num = MODULE_SHIPPING_FEDEX_ACT_NUM; $this->fedex_meter_num = MODULE_SHIPPING_FEDEX_METER_NUM; } //Class Methods function quote($method = '') { /* FedEx integration starts */ global $customer_id; require_once(DIR_WS_INCLUDES.'fedex-common.php5'); $path_to_wsdl = DIR_WS_INCLUDES."RateService_v6.wsdl"; $client = new SoapClient($path_to_wsdl, array('trace' => 1)); //Fetching user details //Key $key = tep_db_query("SELECT configuration_value FROM ". TABLE_CONFIGURATION ." WHERE configuration_key = 'MODULE_SHIPPING_FEDEX_KEY'"); $key_value = tep_db_fetch_array($key); $fedex_key = $key_value['configuration_value']; //Password $pwd = tep_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION ." WHERE configuration_key = 'MODULE_SHIPPING_FEDEX_PWD'"); $pwd_value = tep_db_fetch_array($pwd); $fedex_password = $pwd_value['configuration_value']; //Account Number $act_num = tep_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION ." WHERE configuration_key = 'MODULE_SHIPPING_FEDEX_ACT_NUM'"); $act_num_value = tep_db_fetch_array($act_num); $fedex_act_num = $act_num_value['configuration_value']; //Meter Number $meter_num = tep_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION ." WHERE configuration_key = 'MODULE_SHIPPING_FEDEX_METER_NUM'"); $meter_num_value = tep_db_fetch_array($meter_num); $fedex_meter_num = $meter_num_value['configuration_value']; if ($customer_id) { //customer Details $customers_query = tep_db_query("select customers_default_address_id from customers WHERE customers_id='" . (int)$customer_id . "'"); $customers = tep_db_fetch_array($customers_query); $customers_default_address_id=$customers['customers_default_address_id']; $address_query = tep_db_query("select entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$customers_default_address_id . "'"); $address = tep_db_fetch_array($address_query); $street_address=$address['street_address']; $city=$address['city']; $state=$address['state']; $postcode=$address['postcode']; $country_id=$address['country_id']; $zone_id=$address['zone_id']; if($state==""){ $address_format_query1 = tep_db_query("select zone_code from zones where zone_country_id = '" . (int)$country_id . "' AND zone_id='" . (int)$zone_id . "' "); $address_format1 = tep_db_fetch_array($address_format_query1); $state=$address_format1['zone_code']; } //echo "select countries_iso_code_2 from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$country_id . "'"; $address_format_query = tep_db_query("select countries_iso_code_2 from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$country_id . "'"); if (tep_db_num_rows($address_format_query)) { $address_format = tep_db_fetch_array($address_format_query); $CountryCode= $address_format['countries_iso_code_2']; } } $request['WebAuthenticationDetail'] = array('UserCredential' => array('Key' => $fedex_key, 'Password' => $fedex_password)); $request['ClientDetail'] = array('AccountNumber' => $fedex_act_num, 'MeterNumber' => $fedex_meter_num); $request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request v6 using PHP ***'); $request['Version'] = array('ServiceId' => 'crs', 'Major' => '6', 'Intermediate' => '0', 'Minor' => '0'); //$request['ReturnTransitAndCommit'] = true; $request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ... $request['RequestedShipment']['ShipTimestamp'] = date('c'); //$request['RequestedShipment']['ServiceType'] = 'PRIORITY_OVERNIGHT'; // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ... $request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ... $request['RequestedShipment']['Shipper'] = array('Address' => array( 'StreetLines' => array('123 Main St'), // Origin details 'City' => 'Fort Smith', 'StateOrProvinceCode' => 'MD', 'PostalCode' => '41220', 'CountryCode' => 'US')); $request['RequestedShipment']['Recipient'] = array('Address' => array ( 'StreetLines' => array($street_address), // customer street address 'City' => $city, //customer city 'StateOrProvinceCode' => $state, //customer state 'PostalCode' => $postcode, //customer postcode 'CountryCode' => $CountryCode)); //customer county code //print_r($request['RequestedShipment']['Recipient']) ; //exit; $request['RequestedShipment']['ShippingChargesPayment'] = array('PaymentType' => 'SENDER', 'Payor' => array('AccountNumber' => $fedex_act_num, // Replace 'XXX' with payor's account number 'CountryCode' => 'US')); $request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; $request['RequestedShipment']['RateRequestTypes'] = 'LIST'; $request['RequestedShipment']['PackageCount'] = '1'; $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; $request['RequestedShipment']['RequestedPackages'] = array('0' => array('SequenceNumber' => '1', 'InsuredValue' => array('Amount' => 20.0, 'Currency' => 'USD'), 'ItemDescription' => 'College Transcripts', 'Weight' => array('Value' => 20.0, 'Units' => 'LB'), 'Dimensions' => array('Length' => 16, 'Width' => 16, 'Height' => 15, 'Units' => 'IN'), 'CustomerReferences' => array('CustomerReferenceType' => 'CUSTOMER_REFERENCE', 'Value' => 'Discus'))); try { $response = $client ->getRates($request); if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR') { //echo 'Rates for following service type(s) were returned.'. $newline. $newline; $title=""; foreach ($response -> RateReplyDetails as $rateReply) { // echo $rateReply -> ServiceType, $newline; // echo "Total Net Charge = "; // echo($rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount), $newline, $newline; /* FedEx integration ends */ global $order; $rateReply -> ServiceType; $title= "Priority Overnight"; $code = $rateReply -> ServiceType; $methods[]=array('id' => $code, 'title' =>$title, 'cost' => $rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount); } $this->quotes=array('id' => $this->code, 'module' => MODULE_SHIPPING_FEDEX_TEXT_TITLE, 'methods' =>$methods); return $this->quotes; //printRequestResponse($client); } else { echo 'Error in processing transaction.'. $newline. $newline; foreach ($response -> Notifications as $notification) { if(is_array($response -> Notifications)) { echo $notification -> Severity; echo ': '; echo $notification -> Message . $newline; } else { echo $notification . $newline; } } } writeToLog($client); // Write to log file } catch (SoapFault $exception) { printFault($exception, $client); } /**/ } function check() { if(!isset($this->_check)) { $check_query = tep_db_query("SELECT configuration_value FROM ". TABLE_CONFIGURATION ." WHERE configuration_key = 'MODULE_SHIPPING_FEDEX_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("INSERT INTO ". TABLE_CONFIGURATION ." (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id, sort_order,set_function,date_added) VALUES ('Enable FedEx Shipping','MODULE_SHIPPING_FEDEX_STATUS','True','Do you want to offer FedEx shipping?','6','0', 'tep_cfg_select_option(array(\'True\',\'False\'),',now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('FedEx Key', 'MODULE_SHIPPING_FEDEX_KEY', '0', 'Enter FedEx Key', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('FedEx Password', 'MODULE_SHIPPING_FEDEX_PWD', '0', 'Enter FedEx Password', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('FedEx Account Number', 'MODULE_SHIPPING_FEDEX_ACT_NUM', '0', 'Enter FedEx Account Number', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('FedEx Meter Number', 'MODULE_SHIPPING_FEDEX_METER_NUM', '0', 'Enter FedEx Meter Number', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_FEDEX_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())"); } function remove() { tep_db_query("DELETE FROM ". TABLE_CONFIGURATION ." WHERE configuration_key in ('". implode("','",$this->keys()). "')"); } function keys() { return array('MODULE_SHIPPING_FEDEX_STATUS','MODULE_SHIPPING_FEDEX_KEY','MODULE_SHIPPING_FEDEX_PWD','MODULE_SHIPPING_FEDEX_ACT_NUM','MODULE_SHIPPING_FEDEX_METER_NUM', 'MODULE_SHIPPING_FEDEX_SORT_ORDER'); } } ?> Screen shot of current output and desired output attached. I've got a start on it but do not know enough to complete. All help is very much appreciated. Thanks, -jim [attachment deleted by admin] Link to comment https://forums.phpfreaks.com/topic/232346-have-a-table-of-values-just-need-1/ Share on other sites More sharing options...
gmitw Posted April 5, 2011 Share Posted April 5, 2011 use below string in your SELECT LIMIT 1 OFFSET 1 I hope it help you. Link to comment https://forums.phpfreaks.com/topic/232346-have-a-table-of-values-just-need-1/#findComment-1197218 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.