Re: need help with a shipping module_ wow not even a response?????

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Carlos,

I have module for your need, build based CRE Loaded 6.2 Standard 
Version with site free shipping feature integrated for it (Not free 
shiping module) and for apply it need little modification on some 
file.

If you willing pay/donate for my effor to buid and testing the 
module (Around 4 hours work). I will preparing the demo site for you 
around next two days so you can see if it like your expect or not 
because today and the next day I am go out side.

If your CRE version is different, I though I can customize the 
function for it to meet your need and expect.


Thanks,


Fajar Dhumadi

--- In php-objects@xxxxxxxxxxxxxxx, todmin_2000@... wrote:
>
> Thank you I will check it out, there are two free shipping mods 
included 
> in CRE but the problem is that they both disable the other mods 
and one 
> lacks the ability for minimum cart total settings.
> 
> Changing the Fedex to have ground zero out and have the others 
> selectable at their quoted price seemed to be an easier temporary 
fix 
> until I could rework the more complicated free shipping mod 
included 
> with the CRE
> 
> Thanks again,
> 
> Carlos
> 
> 
> caprecerevisi2005 wrote:
> > FWIW:
> > I "think" the free shipping options module included in Zen Cart
> > already does what you want.
> > If you are not too deep into your project or unless OSC offers 
some
> > functionality you can't get elsewhere, it might be worth a look.
> >
> > At the very least, you could see how they implemented it in ZC 
and
> > maybe port that to OSC instead of having to hack the OSC code.
> >
> > >From my experience with OSC, it's a headache waiting to happen.
> >
> >
> > --- In php-objects@xxxxxxxxxxxxxxx, todmin_2000@ wrote:
> >   
> >> Posted this on the 19th and never got a singe reponse; is this 
too 
> >> difficult or complicated????
> >>
> >>
> >> I need to implement free shipping on an ecommerce site but the 
current
> >> mods don't support the free shipping and still have the other 
shipping
> >> methods available..
> >>
> >> The point is to have free ground shipping within the 
continental US for
> >> orders over say $50 USD but have other shipping methods 
available for
> >> faster shipping as paid options.
> >>
> >> I made some changes to the current fedex module which now shows 
free
> >> shipping for order totals over $50 USD but it changes all of 
the fedex
> >> returns to $0.00 instead of just ground and leaving the rest
> >> of the quote returns as paid options.
> >>
> >> This is a CRE loaded version of OScommerce site.
> >>
> >> If you go to www.thescubageek.net and make a login then add an 
item over
> >> $50 to your cart you will see the fedex returns, use a US 
address though
> >> and what I mean about all being zero quotes now..
> >>
> >> Any help on this would be immensely appreciated and thanks,
> >>
> >> Carlos
> >>
> >> here is the code for the module and I changed this starting at 
line 160:
> >>
> >> if (!$skip) {
> >>               $methods[] = array('id' => substr($type,0,2),
> >>                                  'title' => $service_descr,
> >>                                  'cost' => (SHIPPING_HANDLING +
> >> MODULE_SHIPPING_FEDEX1_SURCHARGE + $this->surcharge + $cost) *
> >> $shipping_num_boxes);
> >>             }
> >>           }
> >>
> >> To this:
> >>
> >> if (!$skip) {
> >>
> >>             if ($order->info['total'] > 50) {
> >>
> >>                                     $methods[] = array('id' =>
> >>     
> > $this->code,
> >   
> >>                                     'title' => 'FREE GROUND 
SHIPPING ON
> >> ORDERS OVER $50 USA LOWER 48 STATES ONLY',
> >>
> >>                                     'cost' => '0.00');
> >>
> >>                 } else {
> >>
> >>                                     $methods[] = array('id' =>
> >> substr($type,0,2),
> >>
> >>                                     'title' => $service_descr,
> >>
> >>                                     'cost' => 
(SHIPPING_HANDLING +
> >> MODULE_SHIPPING_FEDEX1_SURCHARGE + $this->surcharge + $cost) *
> >> $shipping_num_boxes);
> >>
> >>              }
> >>
> >>             }
> >>
> >>          }
> >>
> >>
> >> here is the full file code;
> >>
> >> <?php
> >> /*
> >>   Version 2.03 for MS2 and earlier
> >>
> >>   osCommerce, Open Source E-Commerce Solutions
> >>   http://www.oscommerce.com
> >>
> >>   Copyright (c) 2002, 2003 Steve Fatula of Fatula Consulting
> >>   compconsultant@
> >>
> >>   Released under the GNU General Public License
> >> */
> >>
> >>
> >>   class fedex1 {
> >>     var $code, $title, $description, $sort_order, $icon, 
$tax_class,
> >> $enabled, $meter, $intl;
> >>
> >> // class constructor
> >>     function fedex1() {
> >>       $this->code = 'fedex1';
> >>       $this->title = MODULE_SHIPPING_FEDEX1_TEXT_TITLE;
> >>       $this->description = 
MODULE_SHIPPING_FEDEX1_TEXT_DESCRIPTION;
> >>       $this->sort_order = MODULE_SHIPPING_FEDEX1_SORT_ORDER;
> >>       $this->icon = DIR_WS_ICONS . 'shipping_fedex.gif';
> >>       $this->tax_class = MODULE_SHIPPING_FEDEX1_TAX_CLASS;
> >>       $this->enabled = ((MODULE_SHIPPING_FEDEX1_STATUS 
== 'True') ? true
> >> : false);
> >>       $this->meter = MODULE_SHIPPING_FEDEX1_METER;
> >>
> >>
> >> // You can comment out any methods you do not wish to quote by 
placing a
> >> // at the beginning of that line
> >> // If you comment out 92 in either domestic or international, be
> >> // sure and remove the trailing comma on the last non-commented 
line
> >> /*
> >>       $this->domestic_types = array(
> >>              '01' => 'Priority (by 10:30AM, later for rural)',
> >>              '03' => '2 Day Air',
> >>              '05' => 'Standard Overnight (by 3PM, later for 
rural)',
> >>              '06' => 'First Overnight',
> >>              '20' => 'Express Saver (3 Day)',
> >>              '90' => 'Home Delivery',
> >>              '92' => 'Ground Service'
> >>              );
> >>
> >>       $this->international_types = array(
> >>              '01' => 'International Priority (1-3 Days)',
> >>              '03' => 'International Economy (4-5 Days)',
> >>              '06' => 'International First',
> >>              '90' => 'Home Delivery',
> >>              '92' => 'Ground Service'
> >>              );
> >>        */
> >>
> >>         $this->domestic_types = array(
> >>              '01' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_01,
> >>              '03' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_03,
> >>              '05' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_05,
> >>              '06' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_06,
> >>              '20' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_20,
> >>              '90' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_90,
> >>              '92' => MODULE_SHIPPING_FEDEX1_DOMESTIC_TYPES_92
> >>              );
> >>
> >>       $this->international_types = array(
> >>              '01' => 
MODULE_SHIPPING_FEDEX1_INTERNATIONAL_TYPES_01,
> >>              '03' => 
MODULE_SHIPPING_FEDEX1_INTERNATIONAL_TYPES_03,
> >>              '06' => 
MODULE_SHIPPING_FEDEX1_INTERNATIONAL_TYPES_06,
> >>              '90' => 
MODULE_SHIPPING_FEDEX1_INTERNATIONAL_TYPES_90,
> >>              '92' => 
MODULE_SHIPPING_FEDEX1_INTERNATIONAL_TYPES_92
> >>              );
> >>
> >>     }
> >>
> >> // class methods
> >>     function quote($method = '') {
> >>       global $shipping_weight, $shipping_num_boxes, $cart, 
$order;
> >>
> >>       if (tep_not_null($method)) {
> >>         $this->_setService($method);
> >>       }
> >>
> >>       if (MODULE_SHIPPING_FEDEX1_ENVELOPE == 'True') {
> >>         if ( ($shipping_weight <= .5 && 
MODULE_SHIPPING_FEDEX1_WEIGHT ==
> >> 'LBS') ||
> >>              ($shipping_weight <= .2 && 
MODULE_SHIPPING_FEDEX1_WEIGHT ==
> >> 'KGS')) {
> >>           $this->_setPackageType('06');
> >>         } else {
> >>           $this->_setPackageType('01');
> >>         }
> >>       } else {
> >>         $this->_setPackageType('01');
> >>       }
> >>
> >>       if ($this->packageType == '01' && $shipping_weight < 1) {
> >>         $this->_setWeight(1);
> >>       } else {
> >>         $this->_setWeight($shipping_weight);
> >>       }
> >>
> >>       $totals = $cart->show_total();
> >>       $this->_setInsuranceValue($totals / $shipping_num_boxes);
> >>
> >>       if (defined("SHIPPING_ORIGIN_COUNTRY")) {
> >>         $countries_array =
> >>     
> > tep_get_countries(SHIPPING_ORIGIN_COUNTRY, true);
> >   
> >>         $this->country = $countries_array
['countries_iso_code_2'];
> >>       } else {
> >>         $this->country = STORE_ORIGIN_COUNTRY;
> >>       }
> >>
> >>       $fedexQuote = $this->_getQuote();
> >>
> >>       if (is_array($fedexQuote)) {
> >>         if (isset($fedexQuote['error'])) {
> >>           $this->quotes = array('module' => $this->title,
> >>                                 'error' => $fedexQuote
['error']);
> >>         } else {
> >>           $this->quotes = array('id' => $this->code,
> >>                                 'module' => $this->title . ' 
(' .
> >> $shipping_num_boxes . ' x ' . $shipping_weight .
> >> strtolower(MODULE_SHIPPING_FEDEX1_WEIGHT) . ')');
> >>
> >>           $methods = array();
> >>           foreach ($fedexQuote as $type => $cost) {
> >>             $skip = FALSE;
> >>             $this->surcharge = 0;
> >>             if ($this->intl === FALSE) {
> >>               if (strlen($type) > 2 && 
MODULE_SHIPPING_FEDEX1_TRANSIT ==
> >> 'True') {
> >>                 $service_descr =
> >> $this->domestic_types[substr($type,0,2)] . ' (' . substr
($type,2,1) . '
> >> days)';
> >>               } else {
> >>                 $service_descr =
> >>     
> > $this->domestic_types[substr($type,0,2)];
> >   
> >>               }
> >>               switch (substr($type,0,2)) {
> >>                 case 90:
> >>                   if ($order->delivery['company'] != '') {
> >>                     $skip = TRUE;
> >>                   }
> >>                   break;
> >>                 case 92:
> >>                   if ($this->country == "CA") {
> >>                     if ($order->delivery['company'] == '') {
> >>                       $this->surcharge =
> >>     
> > MODULE_SHIPPING_FEDEX1_RESIDENTIAL;
> >   
> >>                     }
> >>                   } else {
> >>                     if ($order->delivery['company'] == '') {
> >>                       $skip = TRUE;
> >>                     }
> >>                   }
> >>                   break;
> >>                 default:
> >>                   if ($this->country != "CA" && substr
($type,0,2) < "90"
> >> && $order->delivery['company'] == '') {
> >>                     $this->surcharge =
> >>     
> > MODULE_SHIPPING_FEDEX1_RESIDENTIAL;
> >   
> >>                   }
> >>                   break;
> >>               }
> >>             } else {
> >>               if (strlen($type) > 2 && 
MODULE_SHIPPING_FEDEX1_TRANSIT ==
> >> 'True') {
> >>                 $service_descr =
> >> $this->international_types[substr($type,0,2)] . ' (' . substr
($type,2,1)
> >> . ' days)';
> >>               } else {
> >>                 $service_descr =
> >> $this->international_types[substr($type,0,2)];
> >>               }
> >>             }
> >>             if ($method) {
> >>               if (substr($type,0,2) != $method) $skip = TRUE;
> >>             }
> >>             if (!$skip) {
> >>
> >>             if ($order->info['total'] > 50) {
> >>
> >>                                     $methods[] = array('id' =>
> >>     
> > $this->code,
> >   
> >>                                     'title' => 'FREE GROUND 
SHIPPING ON
> >> ORDERS OVER $50 USA LOWER 48 STATES ONLY',
> >>
> >>                                     'cost' => '0.00');
> >>
> >>                 } else {
> >>
> >>                                     $methods[] = array('id' =>
> >> substr($type,0,2),
> >>
> >>                                     'title' => $service_descr,
> >>
> >>                                     'cost' => 
(SHIPPING_HANDLING +
> >> MODULE_SHIPPING_FEDEX1_SURCHARGE + $this->surcharge + $cost) *
> >> $shipping_num_boxes);
> >>
> >>              }
> >>
> >>             }
> >>
> >>          }
> >>
> >>           $this->quotes['methods'] = $methods;
> >>
> >>           if ($this->tax_class > 0) {
> >>             $this->quotes['tax'] = tep_get_tax_rate($this-
>tax_class,
> >> $order->delivery['country']['id'], $order->delivery['zone_id']);
> >>           }
> >>         }
> >>       } else {
> >>       /*
> >>         $this->quotes = array('module' => $this->title,
> >>                               'error' => 'An error occured with 
the
> >> fedex shipping calculations.<br>Fedex may not deliver to your 
country,
> >> or your postal code may be wrong.');
> >>                 */
> >>
> >>       $this->quotes = array('module' => $this->title,
> >>                               'error' =>
> >>     
> > MODULE_SHIPPING_FEDEX1_ERROR_1);
> >   
> >>       }
> >>
> >>       if (tep_not_null($this->icon)) $this->quotes['icon'] =
> >> tep_image($this->icon, $this->title);
> >>
> >>       return $this->quotes;
> >>     }
> >>
> >>     function check() {
> >>       if (!isset($this->_check)) {
> >>         $check_query = tep_db_query("select configuration_value 
from " .
> >> TABLE_CONFIGURATION . " where configuration_key =
> >> 'MODULE_SHIPPING_FEDEX1_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_FEDEX1_STATUS', 'True', 'Do you want to offer 
Fedex
> >> shipping?', '6', '10', '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,
> >> set_function, date_added) values ('Display Transit Times',
> >> 'MODULE_SHIPPING_FEDEX1_TRANSIT', 'True', 'Do you want to show 
transit
> >> times for ground or home delivery rates?', '6', '10',
> >> '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 ('Your Fedex Account Number',
> >> 'MODULE_SHIPPING_FEDEX1_ACCOUNT', 'NONE', 'Enter the fedex 
Account
> >> Number assigned to you, required', '6', '11', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Your Fedex Meter ID',
> >> 'MODULE_SHIPPING_FEDEX1_METER', 'NONE', 'Enter the Fedex MeterID
> >> assigned to you, set to NONE to obtain a new meter 
number', '6', '12',
> >> now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('cURL 
Path', 'MODULE_SHIPPING_FEDEX1_CURL', 'NONE',
> >> 'Enter the path to the cURL program, normally, leave this set 
to NONE to
> >> execute cURL using PHP', '6', '12', now())");
> >>       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 ('Debug Mode',
> >> 'MODULE_SHIPPING_FEDEX1_DEBUG', 'False', 'Turn on 
Debug', '6', '19',
> >> '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,
> >> set_function, date_added) values ('Weight Units',
> >> 'MODULE_SHIPPING_FEDEX1_WEIGHT', 'LBS', 'Weight 
Units:', '6', '19',
> >> 'tep_cfg_select_option(array(\'LBS\', \'KGS\'), ', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('First line of street address',
> >> 'MODULE_SHIPPING_FEDEX1_ADDRESS_1', 'NONE', 'Enter the first 
line of
> >> your ship from street address, required', '6', '13', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Second line of street address',
> >> 'MODULE_SHIPPING_FEDEX1_ADDRESS_2', 'NONE', 'Enter the second 
line of
> >> your ship from street address, leave set to NONE if you do not 
need to
> >> specify a second line', '6', '14', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('City 
name', 'MODULE_SHIPPING_FEDEX1_CITY', 'NONE',
> >> 'Enter the city name for the ship from street address, 
required', '6',
> >> '15', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('State or Province name',
> >> 'MODULE_SHIPPING_FEDEX1_STATE', 'NONE', 'Enter the 2 letter 
state or
> >> province name for the ship from street address, required for 
Canada and
> >> US', '6', '16', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Postal 
code', 'MODULE_SHIPPING_FEDEX1_POSTAL',
> >> 'NONE', 'Enter the postal code for the ship from street address,
> >> required', '6', '17', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Phone 
number', 'MODULE_SHIPPING_FEDEX1_PHONE',
> >> 'NONE', 'Enter a contact phone number for your company, 
required', '6',
> >> '18', now())");
> >>       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 ('Which server to use',
> >> 'MODULE_SHIPPING_FEDEX1_SERVER', 'production', 'You must have 
an account
> >> with Fedex', '6', '19', 'tep_cfg_select_option(array(\'test\',
> >> \'production\'), ', now())");
> >>     tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Drop off 
type', 'MODULE_SHIPPING_FEDEX1_DROPOFF',
> >> '1', 'Dropoff type (1 = Regular pickup, 2 = request courier, 3 
= drop
> >> box, 4 = drop at BSC, 5 = drop at station)?', '6', '20', 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 surcharge?',
> >> 'MODULE_SHIPPING_FEDEX1_SURCHARGE', '0', 'Surcharge amount to 
add to
> >> shipping charge?', '6', '21', now())");
> >>     tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Residential surcharge?',
> >> 'MODULE_SHIPPING_FEDEX1_RESIDENTIAL', '0', 'Residential 
Surcharge (in
> >> addition to other surcharge) for Express packages within US, or 
ground
> >> packages within Canada?', '6', '21', now())");
> >>     tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values 
('Insurance?', 'MODULE_SHIPPING_FEDEX1_INSURE',
> >> 'NONE', 'Insure packages over what dollar amount?', '6', '22', 
now())");
> >>       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 Envelope Rates?',
> >> 'MODULE_SHIPPING_FEDEX1_ENVELOPE', 'False', 'Do you want to 
offer Fedex
> >> Envelope rates? All items under 1/2 LB (.23KG) will quote using 
the
> >> envelope rate if True.', '6', '10',
> >> '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,
> >> set_function, date_added) values ('Sort rates: ',
> >> 'MODULE_SHIPPING_FEDEX1_WEIGHT_SORT', 'High to Low', 'Sort 
rates top to
> >> bottom: ', '6', '19', 'tep_cfg_select_option(array(\'High to 
Low\',
> >> \'Low to High\'), ', now())");
> >>     tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> date_added) values ('Timeout in Seconds',
> >> 'MODULE_SHIPPING_FEDEX1_TIMEOUT', 'NONE', 'Enter the maximum 
time in
> >> seconds you would wait for a rate request from Fedex? Leave 
NONE for
> >> default timeout.', '6', '22', now())");
> >>       tep_db_query("insert into " . TABLE_CONFIGURATION . "
> >> (configuration_title, configuration_key, configuration_value,
> >> configuration_description, configuration_group_id, sort_order,
> >> use_function, set_function, date_added) values ('Tax Class',
> >> 'MODULE_SHIPPING_FEDEX1_TAX_CLASS', '0', 'Use the following tax 
class on
> >> the shipping fee.', '6', '23', 'tep_get_tax_class_title',
> >> 'tep_cfg_pull_down_tax_classes(', 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_FEDEX1_SORT_ORDER',
> >> '0', 'Sort order of display.', '6', '24', now())");
> >>     }
> >>
> >>     function remove() {
> >>       tep_db_query("delete from " . TABLE_CONFIGURATION . " 
where
> >> configuration_key in ('" . implode("', '", $this->keys
()) . "')");
> >>     }
> >>
> >>     function keys() {
> >>       return array('MODULE_SHIPPING_FEDEX1_STATUS',
> 
>> 'MODULE_SHIPPING_FEDEX1_ACCOUNT', 'MODULE_SHIPPING_FEDEX1_METER',
> >> 'MODULE_SHIPPING_FEDEX1_CURL', 'MODULE_SHIPPING_FEDEX1_DEBUG',
> 
>> 'MODULE_SHIPPING_FEDEX1_WEIGHT', 'MODULE_SHIPPING_FEDEX1_SERVER',
> 
>> 'MODULE_SHIPPING_FEDEX1_ADDRESS_1', 'MODULE_SHIPPING_FEDEX1_ADDRES
S_2',
> >> 'MODULE_SHIPPING_FEDEX1_CITY', 'MODULE_SHIPPING_FEDEX1_STATE',
> >> 'MODULE_SHIPPING_FEDEX1_POSTAL', 'MODULE_SHIPPING_FEDEX1_PHONE',
> 
>> 'MODULE_SHIPPING_FEDEX1_DROPOFF', 'MODULE_SHIPPING_FEDEX1_TRANSIT'
,
> 
>> 'MODULE_SHIPPING_FEDEX1_SURCHARGE', 'MODULE_SHIPPING_FEDEX1_INSURE
',
> 
>> 'MODULE_SHIPPING_FEDEX1_RESIDENTIAL', 'MODULE_SHIPPING_FEDEX1_ENVE
LOPE',
> 
>> 'MODULE_SHIPPING_FEDEX1_WEIGHT_SORT', 'MODULE_SHIPPING_FEDEX1_TIME
OUT',
> 
>> 'MODULE_SHIPPING_FEDEX1_TAX_CLASS','MODULE_SHIPPING_FEDEX1_SORT_OR
DER');
> >>     }
> >>
> >>     function _setService($service) {
> >>       $this->service = $service;
> >>     }
> >>
> >>     function _setWeight($pounds) {
> >>       $this->pounds = sprintf("%01.1f", $pounds);
> >>     }
> >>
> >>     function _setPackageType($type) {
> >>       $this->packageType = $type;
> >>     }
> >>
> >>     function _setInsuranceValue($order_amount) {
> >>       if ($order_amount > MODULE_SHIPPING_FEDEX1_INSURE) {
> >>         $this->insurance = sprintf("%01.2f",$order_amount);
> >>       } else {
> >>         $this->insurance = 0;
> >>       }
> >>     }
> >>
> >>     function _AccessFedex($data) {
> >>
> >>       if (MODULE_SHIPPING_FEDEX1_SERVER == 'production') {
> >>         $this->server = 'gateway.fedex.com/GatewayDC';
> >>       } else {
> >>         $this->server = 'gatewaybeta.fedex.com/GatewayDC';
> >>       }
> >>       if (MODULE_SHIPPING_FEDEX1_CURL == "NONE") {
> >>         $ch = curl_init();
> >>         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
> >>         curl_setopt($ch, CURLOPT_URL, 'https://' . $this-
>server);
> >>         if (MODULE_SHIPPING_FEDEX1_TIMEOUT != 'NONE') 
curl_setopt($ch,
> >> CURLOPT_TIMEOUT, MODULE_SHIPPING_FEDEX1_TIMEOUT);
> >>         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
> >>         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
> >>         curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer: " .
> >>     
> > STORE_NAME,
> >   
> >>                                                    "Host: " .
> >>     
> > $this->server,
> >   
> >>                                                    "Accept:
> >> image/gif,image/jpeg,image/pjpeg,text/plain,text/html,*/*",
> >>                                                    "Pragma:",
> >>
> >> "Content-Type:image/gif"));
> >>         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
> >>         // added support for curl proxy
> >>         if (defined('CURL_PROXY_HOST') && defined
('CURL_PROXY_PORT') &&
> >> CURL_PROXY_HOST != '' && CURL_PROXY_PORT != '') {
> >>           curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
> >>           curl_setopt($ch, CURLOPT_PROXY, 
CURL_PROXY_HOST . ":" .
> >> CURL_PROXY_PORT);
> >>           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
> >>         }
> >>         if (defined('CURL_PROXY_USER') && defined
('CURL_PROXY_PASSWORD')
> >> && CURL_PROXY_USER != '' && CURL_PROXY_PASSWORD != '') {
> >>           curl_setopt($ch, CURLOPT_PROXYUSERPWD, 
CURL_PROXY_USER . ':' .
> >> CURL_PROXY_PASSWORD);
> >>         }
> >>         $reply = curl_exec($ch);
> >>         curl_close ($ch);
> >>       } else {
> >>         $this->command_line = 
MODULE_SHIPPING_FEDEX1_CURL . " " .
> >> (MODULE_SHIPPING_FEDEX1_TIMEOUT == 'NONE' ? '' : '-m ' .
> >> MODULE_SHIPPING_FEDEX1_TIMEOUT) . " -s -e '" . STORE_NAME . "' -
-url
> >> https://"; . $this->server . " -H 'Host: " . $this->server . "' -
H
> >> 'Accept: 
image/gif,image/jpeg,image/pjpeg,text/plain,text/html,*/*' -H
> >> 'Pragma:' -H 'Content-Type:image/gif' -d '" . 
$data . "' 'https://"; .
> >> $this->server . "'";
> >>         exec($this->command_line, $this->reply);
> >>         $reply = $this->reply[0];
> >>       }
> >>         return $reply;
> >>     }
> >>
> >>     function _getMeter() {
> >>       $data = '0,"211"'; // Transaction Code, required
> >>       $data .= '10,"' . 
MODULE_SHIPPING_FEDEX1_ACCOUNT . '"'; // Sender
> >> Fedex account number
> >>       $data .= '4003,"' . STORE_OWNER . '"'; // Subscriber 
contact name
> >>       $data .= '4007,"' . STORE_NAME . '"'; // Subscriber 
company name
> >>       $data .= '4008,"' . 
MODULE_SHIPPING_FEDEX1_ADDRESS_1 . '"'; //
> >> Subscriber Address line 1
> >>       if (MODULE_SHIPPING_FEDEX1_ADDRESS_2 != 'NONE') {
> >>         $data .= '4009,"' . 
MODULE_SHIPPING_FEDEX1_ADDRESS_2 . '"'; //
> >> Subscriber Address Line 2
> >>       }
> >>       $data .= '4011,"' . MODULE_SHIPPING_FEDEX1_CITY . '"'; //
> >> Subscriber City Name
> >>       if (MODULE_SHIPPING_FEDEX1_STATE != 'NONE') {
> >>         $data .= '4012,"' . 
MODULE_SHIPPING_FEDEX1_STATE . '"'; //
> >> Subscriber State code
> >>       }
> >>       $data .= '4013,"' . 
MODULE_SHIPPING_FEDEX1_POSTAL . '"'; //
> >> Subscriber Postal Code
> >>       $data .= '4014,"' . $this->country . '"'; // Subscriber
> >>     
> > Country Code
> >   
> >>       $data .= '4015,"' . MODULE_SHIPPING_FEDEX1_PHONE . '"'; //
> >> Subscriber phone number
> >>       $data .= '99,""'; // End of Record, required
> >>       //if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo "Data 
sent to
> >> Fedex for Meter: " . $data . "<br>";
> >>       if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo
> >> MODULE_SHIPPING_FEDEX1_MESSAGE_1 . $data . "<br>";
> >>       $fedexData = $this->_AccessFedex($data);
> >>       //if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo "Data 
returned
> >> from Fedex for Meter: " . $fedexData . "<br>";
> >>       if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo
> >> MODULE_SHIPPING_FEDEX1_MESSAGE_2 . $fedexData . "<br>";
> >>       $meterStart = strpos($fedexData,'"498,"');
> >>
> >>       if ($meterStart === FALSE) {
> >>         if (strlen($fedexData) == 0) {
> >>           //$this->error_message = 'No response to CURL from 
Fedex
> >> server, check CURL availability, or maybe timeout was set too 
low, or
> >> maybe the Fedex site is down';
> >>           $this->error_message = 
MODULE_SHIPPING_FEDEX1_MESSAGE_3;
> >>         } else {
> >>           $fedexData = $this->_ParseFedex($fedexData);
> >>          // $this->error_message = 'No meter number was 
obtained, check
> >> configuration. Error ' . $fedexData['2'] . ' : ' . $fedexData
['3'];
> >>           $this->error_message = 
MODULE_SHIPPING_FEDEX1_MESSAGE_4 .
> >> $fedexData['2'] . ' : ' . $fedexData['3'];
> >>         }
> >>         return false;
> >>       }
> >>
> >>       $meterStart += 6;
> >>       $meterEnd = strpos($fedexData, '"', $meterStart);
> >>       $this->meter = substr($fedexData, $meterStart, $meterEnd -
> >> $meterStart);
> >>       $meter_sql = "UPDATE configuration SET 
configuration_value=\"" .
> >> $this->meter . "\" where
> >> configuration_key=\"MODULE_SHIPPING_FEDEX1_METER\"";
> >>       tep_db_query($meter_sql);
> >>
> >>       return true;
> >>     }
> >>
> >>     function _ParseFedex($data) {
> >>       $current = 0;
> >>       $length = strlen($data);
> >>       $resultArray = array();
> >>       while ($current < $length) {
> >>         $endpos = strpos($data, ',', $current);
> >>         if ($endpos === FALSE) { break; }
> >>         $index = substr($data, $current, $endpos - $current);
> >>         $current = $endpos + 2;
> >>         $endpos = strpos($data, '"', $current);
> >>         $resultArray[$index] = substr($data, $current, $endpos -
> >>     
> > $current);
> >   
> >>         $current = $endpos + 1;
> >>       }
> >>     return $resultArray;
> >>     }
> >>
> >>     function _getQuote() {
> >>       global $order, $customer_id, $sendto;
> >>
> >>       if (MODULE_SHIPPING_FEDEX1_ACCOUNT == "NONE" ||
> >> strlen(MODULE_SHIPPING_FEDEX1_ACCOUNT) == 0) {
> >>        // return array('error' => 'You forgot to set up your 
Fedex
> >> account number, this can be set up in Admin -> Modules -> 
Shipping');
> >>         return array('error' => 
MODULE_SHIPPING_FEDEX1_MESSAGE_5);
> >>       }
> >>       if (MODULE_SHIPPING_FEDEX1_ADDRESS_1 == "NONE" ||
> >> strlen(MODULE_SHIPPING_FEDEX1_ADDRESS_1) == 0) {
> >>        // return array('error' => 'You forgot to set up your 
ship from
> >> street address line 1, this can be set up in Admin -> Modules ->
> >>     
> > Shipping');
> >   
> >>         return array('error' => 
MODULE_SHIPPING_FEDEX1_MESSAGE_6);
> >>       }
> >>       if (MODULE_SHIPPING_FEDEX1_CITY == "NONE" ||
> >> strlen(MODULE_SHIPPING_FEDEX1_CITY) == 0) {
> >>        // return array('error' => 'You forgot to set up your 
ship from
> >> City, this can be set up in Admin -> Modules -> Shipping');
> >>         return array('error' => 
MODULE_SHIPPING_FEDEX1_MESSAGE_7);
> >>       }
> >>       if (MODULE_SHIPPING_FEDEX1_POSTAL == "NONE" ||
> >> strlen(MODULE_SHIPPING_FEDEX1_POSTAL) == 0) {
> >>       //  return array('error' => 'You forgot to set up your 
ship from
> >> postal code, this can be set up in Admin -> Modules -> 
Shipping');
> >>         return array('error' => 
MODULE_SHIPPING_FEDEX1_MESSAGE_8);
> >>       }
> >>       if (MODULE_SHIPPING_FEDEX1_PHONE == "NONE" ||
> >> strlen(MODULE_SHIPPING_FEDEX1_PHONE) == 0) {
> >>         //return array('error' => 'You forgot to set up your 
ship from
> >> phone number, this can be set up in Admin -> Modules -> 
Shipping');
> >>         return array('error' => 
MODULE_SHIPPING_FEDEX1_MESSAGE_9);
> >>       }
> >>       if (MODULE_SHIPPING_FEDEX1_METER == "NONE") {
> >>         if ($this->_getMeter() === false) return array('error' 
=>
> >> $this->error_message);
> >>       }
> >>
> >>       $data = '0,"25"'; // TransactionCode
> >>       $data .= '10,"' . 
MODULE_SHIPPING_FEDEX1_ACCOUNT . '"'; // Sender
> >> fedex account number
> >>       $data .= '498,"' . $this->meter . '"'; // Meter number
> >>       $data .= '8,"' . MODULE_SHIPPING_FEDEX1_STATE . '"'; // 
Sender
> >> state code
> >>       $orig_zip = str_replace(array(' ', '-'), '',
> >> MODULE_SHIPPING_FEDEX1_POSTAL);
> >>       $data .= '9,"' . $orig_zip . '"'; // Origin postal code
> >>       $data .= '117,"' . $this->country . '"'; // Origin country
> >>       if ($order->delivery['country']['iso_code_2'] == "US" ||
> >> $order->delivery['country']['iso_code_2'] == "CA" ||
> >> $order->delivery['country']['iso_code_2'] == "PR") {
> >>         $dest_zip = str_replace(array(' ', '-'), '',
> >> $order->delivery['postcode']);
> >>         $data .= '17,"' . $dest_zip . '"'; // Recipient zip code
> >>         $data .= '16,"' .
> >> tep_get_zone_code($order->delivery['country']['id'],
> >> $order->delivery['zone_id'], '') . '"'; // Recipient state
> >>       }
> >>       $data .= '50,"' . $order->delivery['country']
['iso_code_2'] . '"';
> >> // Recipient country
> >>       $data .= '75,"' . MODULE_SHIPPING_FEDEX1_WEIGHT . '"'; //
> >>     
> > Weight units
> >   
> >>       if (MODULE_SHIPPING_FEDEX1_WEIGHT == "KGS") {
> >>         $data .= '1116,"C"'; // Dimension units
> >>       } else {
> >>         $data .= '1116,"I"'; // Dimension units
> >>       }
> >>       $data .= '1401,"' . $this->pounds . '"'; // Total weight
> >>       $data .= '1529,"1"'; // Quote discounted rates
> >>       if ($this->insurance > 0) {
> >>         $data .= '1415,"' . $this->insurance . '"'; // 
Insurance value
> >>         $data .= '68,"USD"'; // Insurance value currency
> >>       }
> >>       if ($order->delivery['company'] == '' &&
> >> MODULE_SHIPPING_FEDEX1_RESIDENTIAL == 0) {
> >>         $data .= '440,"Y"'; // Residential address
> >>       }else {
> >>         $data .= '440,"N"'; // Business address, use if adding a
> >> residential surcharge
> >>       }
> >>       $data .= '1273,"' . $this->packageType . '"'; // Package 
type
> >>       $data .= '1333,"' . 
MODULE_SHIPPING_FEDEX1_DROPOFF . '"'; // Drop
> >> of drop off or pickup
> >>       $data .= '99,""'; // End of record
> >>     //  if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo "Data 
sent to
> >> Fedex for Rating: " . $data . "<br>";
> >>       if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo
> >> MODULE_SHIPPING_FEDEX1_MESSAGE_10 . $data . "<br>";
> >>       $fedexData = $this->_AccessFedex($data);
> >>       //if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo "Data 
returned
> >> from Fedex for Rating: " . $fedexData . "<br>";
> >>       if (MODULE_SHIPPING_FEDEX1_DEBUG == 'True') echo
> >> MODULE_SHIPPING_FEDEX1_MESSAGE_11 . $fedexData . "<br>";
> >>       if (strlen($fedexData) == 0) {
> >>      //   $this->error_message = 'No data returned from Fedex, 
perhaps
> >> the Fedex site is down';
> >>         $this->error_message = 
MODULE_SHIPPING_FEDEX1_MESSAGE_12;
> >>         return array('error' => $this->error_message);
> >>       }
> >>       $fedexData = $this->_ParseFedex($fedexData);
> >>       $i = 1;
> >>       if ($this->country == $order->delivery['country']
['iso_code_2']) {
> >>         $this->intl = FALSE;
> >>       } else {
> >>         $this->intl = TRUE;
> >>       }
> >>       $rates = NULL;
> >>       while (isset($fedexData['1274-' . $i])) {
> >>         if ($this->intl) {
> >>           if (isset($this->international_types[$fedexData['1274-
' .
> >>     
> > $i]])) {
> >   
> >>             if (isset($fedexData['3058-' . $i])) {
> >>               $rates[$fedexData['1274-' . $i] . $fedexData
['3058-' .
> >> $i]] = $fedexData['1419-' . $i];
> >>             } else {
> >>               $rates[$fedexData['1274-' . $i]] = $fedexData
['1419-'
> >>     
> > . $i];
> >   
> >>             }
> >>           }
> >>         } else {
> >>           if (isset($this->domestic_types[$fedexData['1274-' . 
$i]])) {
> >>             if (isset($fedexData['3058-' . $i])) {
> >>               $rates[$fedexData['1274-' . $i] . $fedexData
['3058-' .
> >> $i]] = $fedexData['1419-' . $i];
> >>             } else {
> >>               $rates[$fedexData['1274-' . $i]] = $fedexData
['1419-'
> >>     
> > . $i];
> >   
> >>             }
> >>           }
> >>         }
> >>         $i++;
> >>       }
> >>
> >>       if (is_array($rates)) {
> >>         if (MODULE_SHIPPING_FEDEX1_WEIGHT_SORT == 'Low to 
High') {
> >>           asort($rates);
> >>         } else {
> >>           arsort($rates);
> >>         }
> >>       } else {
> >>        // $this->error_message = 'No Rates Returned, ' . 
$fedexData['2']
> >> . ' : ' . $fedexData['3'];
> >>         $this->error_message = 
MODULE_SHIPPING_FEDEX1_MESSAGE_13 .
> >> $fedexData['2'] . ' : ' . $fedexData['3'];
> >>         return array('error' => $this->error_message);
> >>       }
> >>
> >>       return ((sizeof($rates) > 0) ? $rates : false);
> >>     }
> >>   }
> >> ?>
> >>
> >>     
> >
> >
> >
> >
> > Are you looking for a PHP job? Join the PHP Professionals 
directory Now!
> > http://www.phpclasses.org/professionals/ 
> > Yahoo! Groups Links
> >
> >
> >
> >
> >   
> 
> 
> 
> [Non-text portions of this message have been removed]
>



[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Soap]     [Kernel Newbies]     [Yosemite]     [Yosemite Campsites]

  Powered by Linux