Index: openacs-4/packages/ecommerce/www/admin/orders/track.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/admin/orders/track.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/ecommerce/www/admin/orders/track.adp 25 Aug 2008 13:07:59 -0000 1.2 +++ openacs-4/packages/ecommerce/www/admin/orders/track.adp 1 Jan 2009 12:37:22 -0000 1.3 @@ -13,5 +13,5 @@

Information from @carrier_name@

-@carrier_tracking_info@ +@carrier_tracking_info;noquote@
Index: openacs-4/packages/ecommerce/www/admin/orders/track.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/admin/orders/track.tcl,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/ecommerce/www/admin/orders/track.tcl 17 Aug 2008 21:48:20 -0000 1.6 +++ openacs-4/packages/ecommerce/www/admin/orders/track.tcl 1 Jan 2009 12:37:22 -0000 1.7 @@ -22,16 +22,29 @@ set carrier_info "" if { $carrier == "FedEx" } { - set fedex_url "http://www.fedex.com/cgi-bin/tracking?tracknumbers=$tracking_number&action=track&language=english&cntry_code=us" - with_catch errmsg { - set page_from_fedex [ns_httpget $fedex_url] - regexp {().*?(
.*?
)} $page_from_fedex match detailed_info scan_activity - # Remove links - regsub -all -nocase {} $scan_activity "" scan_activity - set carrier_info "$detailed_info $scan_activity" - } { - set carrier_info "Unable to retrieve data from FedEx." + set fedex_url "http://www.fedex.com/Tracking?tracknumbers=${tracking_number}&language=english&cntry_code=us" + set carrier_info "Unable to retrieve data from FedEx." + if { [catch {set get_id [ns_http queue -timeout 65 $fedex_url]} err ]} { + ns_log Error "ecommerce/www/admin/orders/track.tcl url=$fedex_url error: $err" + } else { + ns_log Notice "ecommerce/www/admin/orders/track.tcl ns_httping $fedex_url" + + if { [catch { ns_http wait -result page_from_fedex -status status $get_id } err2 ]} { + ns_log Error "ecommerce/www/admin/orders/track.tcl ns_http wait $err2" + } + + if { ![info exists status] || $status ne "200" } { + # no page info returned, just return error + ns_log Warning "ecommerce/www/admin/orders/track.tcl Unable to retrieve FedEx data for ${tracking_number}. Error is $errmsg" + } else { + # Received page, Remove links + set scan_activity [ecds_get_contents_from_tag {} {} $page_from_fedex] + set detailed_info [ecds_get_contents_from_tag {!-- shipment info -->} {} $page_from_fedex] + regsub -all -nocase {} $scan_activity "" scan_activity + set carrier_info "$detailed_info $scan_activity" + } } + } elseif { [string match "UPS*" $carrier] } { set ups_url "http://wwwapps.ups.com/etracking/tracking.cgi?submit=Track&InquiryNumber1=$tracking_number&TypeOfInquiryNumber=T&build_detail=yes" with_catch errmsg {