Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Google checkout issue?


Recommended Posts

Posted

do you have 2 GC showing in admin?

 

you should only have 1.

try removing all ref: to GC from the database then see if that will let you in?

Posted

I have no idea. I can't even access the admins anymore due to the one line in /functions/general.php

 

I guess I could. It might take a long time.

Posted

if it helps this is my part for GC of general.php (admin)

 

// ** GOOGLE CHECKOUT** 
// Function to store configuration values(shipping options) using 
// checkboxes in the Administration Tool 

//  carrier calculation
 // perhaps this function must be moved to googlecheckout class, is not too general
 function gc_cfg_select_CCshipping($key_value, $key = '') {
//add ropu
// i get all the shipping methods available!
global $PHP_SELF,$language,$module_type;

require_once (DIR_FS_CATALOG . 'includes/modules/payment/googlecheckout.php');
$googlepayment = new googlecheckout();

$javascript = "<script language='javascript'>

	  function CCS_blur(valor, code, hid_id, pos){
		var hid = document.getElementById(hid_id);
		var temp = hid.value.substring((code  + '_CCS:').length).split('|');
		valor.value = isNaN(parseFloat(valor.value))?'':parseFloat(valor.value);
		if(valor.value != ''){ 
		  temp[pos] = valor.value;
		}else {
		  temp[pos] = 0;
		  valor.value = '0';	  
		}
		hid.value = code + '_CCS:' + temp[0] + '|'+ temp[1] + '|'+ temp[2];
	  }

	  function CCS_focus(valor, code, hid_id, pos){
		var hid = document.getElementById(hid_id);
		var temp = hid.value.substring((code  + '_CCS:').length).split('|');
	  //  valor.value = valor.value.substr((code  + '_CCS:').length, hid.value.length);
		temp[pos] = valor.value;		
		hid.value = code + '_CCS:' + temp[0] + '|'+ temp[1] + '|'+ temp[2];		

	  }
	  </script>";


$string .= $javascript;

$key_values = explode( ", ", $key_value);

foreach($googlepayment->cc_shipping_methods_names as $CCSCode => $CCSName){

  $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
  $string .= "<br><b>" . $CCSName . "</b>"."\n";
  foreach($googlepayment->cc_shipping_methods[$CCSCode] as $type => $methods) {
	if (is_array($methods) && !empty($methods)) {
	  $string .= '<br>     <b>'. $type .'</b><br />';			
		$string .= 'Def. Value | Fix Charge | Variable | Method Name';
	  foreach($methods as $method => $method_name) {
		$string .= '<br>';

		// default value 
		$value = gc_compare($CCSCode . $method. $type , $key_values, "_CCS:", '1.00|0|0');
		$values = explode('|',$value);
		$string .= DEFAULT_CURRENCY . ':<input size="3"  onBlur="CCS_blur(this, \'' . $CCSCode. $method . $type . '\', \'hid_' .
					$CCSCode . $method . $type . '\', 0);" onFocus="CCS_focus(this, \'' . $CCSCode . $method .
					$type . '\' , \'hid_' . $CCSCode . $method . $type .'\', 0);" type="text" name="no_use' . $method . 
					'" value="' . $values[0] . '"> ';

		$string .= DEFAULT_CURRENCY . ':<input size="3"  onBlur="CCS_blur(this, \'' . $CCSCode. $method . $type . '\', \'hid_' .
					$CCSCode . $method . $type . '\', 1 );" onFocus="CCS_focus(this, \'' . $CCSCode . $method .
					$type . '\' , \'hid_' . $CCSCode . $method . $type .'\', 1);" type="text" name="no_use' . $method . 
					'" value="' . $values[1] . '"> ';

		$string .= '<input size="3"  onBlur="CCS_blur(this, \'' . $CCSCode. $method . $type . '\', \'hid_' .
					$CCSCode . $method . $type . '\', 2 );" onFocus="CCS_focus(this, \'' . $CCSCode . $method .
					$type . '\' , \'hid_' . $CCSCode . $method . $type .'\', 2);" type="text" name="no_use' . $method . 
					'" value="' . $values[2] . '">% ';

		$string .= '<input size="10" id="hid_' . $CCSCode . $method . $type . '" type="hidden" name="' . $name . 
					'" value="' . $CCSCode . $method . $type . '_CCS:' . $value . '">'."\n";	  

		$string .= $method_name;
	  }
	}
  }
}
return $string;
 }


 function gc_cfg_select_multioption($select_array, $key_value, $key = '') {

for ($i=0; $i<sizeof($select_array); $i++) {
  $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
  $string .= '<br><input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '"';
  $key_values = explode( ", ", $key_value);
  if ( in_array($select_array[$i], $key_values) ) $string .= ' CHECKED';
  $string .= '>' . $select_array[$i];
}
$string .= '<input type="hidden" name="' . $name . '" value="--none--">';
return $string;
 }


// Custom Function to store configuration values (shipping default values)  
function gc_compare($key, $data, $sep="_VD:", $def_ret='1')
 {
foreach($data as $value) {
  list($key2, $valor) = explode($sep, $value);
  if($key == $key2)   
	return $valor;
}
return $def_ret;
 }
// perhaps this function must be moved to googlecheckout class, is not too general
 function gc_cfg_select_shipping($select_array, $key_value, $key = '') {

//add ropu
// i get all the shipping methods available!
global $PHP_SELF,$language,$module_type;

$module_directory = DIR_FS_CATALOG_MODULES . 'shipping/';

$file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
$directory_array = array();
if ($dir = @dir($module_directory)) {
  while ($file = $dir->read()) {

	if (!is_dir($module_directory . $file)) {
	  if (substr($file, strrpos($file, '.')) == $file_extension) {
		$directory_array[] = $file;
	  }
	}
  }
  sort($directory_array);
  $dir->close();
}

  $installed_modules = array();
  $select_array = array();
  for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
	$file = $directory_array[$i];

	include_once(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/shipping/' . $file);
	include_once($module_directory . $file);

	$class = substr($file, 0, strrpos($file, '.'));
	if (tep_class_exists($class)) {
	  $module = new $class;
	  //echo $class;
	  if ($module->check() > 0) {

		$select_array[$module->code] = array('code' => $module->code,
							 'title' => $module->title,
							 'description' => $module->description,
							 'status' => $module->check());
	  }
	}
  }
require_once (DIR_FS_CATALOG . 'includes/modules/payment/googlecheckout.php');
$googlepayment = new googlecheckout();

$ship_calcualtion_mode = (count(array_keys($select_array)) > count(array_intersect($googlepayment->shipping_support, array_keys($select_array)))) ? true : false;
if(!$ship_calcualtion_mode) {
	return '<br/><i>'. GOOGLECHECKOUT_TABLE_NO_MERCHANT_CALCULATION . '</i>';
}

$javascript = "<script language='javascript'>

		function VD_blur(valor, code, hid_id){
		  var hid = document.getElementById(hid_id);
		  valor.value = isNaN(parseFloat(valor.value))?'':parseFloat(valor.value);
		  if(valor.value != ''){ 
			hid.value = code + '_VD:' + valor.value;
		//	valor.value = valor.value;  
		//	hid.disabled = false;
		  }else {   
			hid.value = code + '_VD:0';
			valor.value = '0';	  
		  }


		}

		function VD_focus(valor, code, hid_id){
		  var hid = document.getElementById(hid_id);	
//			  valor.value = valor.value.substr((code  + '_VD:').length, valor.value.length);
		  hid.value = valor.value.substr((code  + '_VD:').length, valor.value.length);		
		}

		</script>";


  $string .= $javascript;

  $key_values = explode( ", ", $key_value);

foreach($select_array as $i => $value){
  if ( $select_array[$i]['status'] && !in_array($select_array[$i]['code'], $googlepayment->shipping_support) ) {
	  $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
	  $string .= "<br><b>" . $select_array[$i]['title'] . "</b>"."\n";
	  if (is_array($googlepayment->mc_shipping_methods[$select_array[$i]['code']])) {
	  foreach($googlepayment->mc_shipping_methods[$select_array[$i]['code']] as $type => $methods) {
		if (is_array($methods) && !empty($methods)) {
		  $string .= '<br>     <b>'. $type .'</b>';			
			  foreach($methods as $method => $method_name) {
				  $string .= '<br>';

				  // default value 
				  $value = gc_compare($select_array[$i]['code'] . $method. $type , $key_values, 1);
				  $string .= '<input size="5"  onBlur="VD_blur(this, \'' . $select_array[$i]['code']. $method . $type . '\', \'hid_' . $select_array[$i]['code'] . $method . $type . '\' );" onFocus="VD_focus(this, \'' . $select_array[$i]['code'] . $method . $type . '\' , \'hid_' . $select_array[$i]['code'] . $method . $type .'\');" type="text" name="no_use' . $method . '" value="' . $value . '"';
				  $string .= '>';
				  $string .= '<input size="10" id="hid_' . $select_array[$i]['code'] . $method . $type . '" type="hidden" name="' . $name . '" value="' . $select_array[$i]['code'] . $method . $type . '_VD:' . $value . '"';		  
					$string .= '>'."\n";
					$string .= $method_name;
			  }
		}
		}
	}
	else {
	  $string .= $select_array[$i]['code'] .GOOGLECHECKOUT_MERCHANT_CALCULATION_NOT_CONFIGURED;
	}
  }
}
return $string;
 }

// ** END GOOGLE CHECKOUT **

Posted

Here is mine.

 

// ** GOOGLE CHECKOUT** 
// Function to store configuration values(shipping options) using 
// checkboxes in the Administration Tool 

//  carrier calculation
 // perhaps this function must be moved to googlecheckout class, is not too general
 function gc_cfg_select_CCshipping($key_value, $key = '') {
   //add ropu
   // i get all the shipping methods available!
   global $PHP_SELF,$language,$module_type;

   require_once (DIR_FS_CATALOG . 'includes/modules/payment/googlecheckout.php');
   $googlepayment = new googlecheckout();

   $javascript = "<script language='javascript'>

         function CCS_blur(valor, code, hid_id, pos){
           var hid = document.getElementById(hid_id);
           var temp = hid.value.substring((code  + '_CCS:').length).split('|');
           valor.value = isNaN(parseFloat(valor.value))?'':parseFloat(valor.value);
           if(valor.value != ''){ 
             temp[pos] = valor.value;
           }else {
             temp[pos] = 0;
             valor.value = '0';      
           }
           hid.value = code + '_CCS:' + temp[0] + '|'+ temp[1] + '|'+ temp[2];
         }

         function CCS_focus(valor, code, hid_id, pos){
           var hid = document.getElementById(hid_id);
           var temp = hid.value.substring((code  + '_CCS:').length).split('|');
         //  valor.value = valor.value.substr((code  + '_CCS:').length, hid.value.length);
           temp[pos] = valor.value;        
           hid.value = code + '_CCS:' + temp[0] + '|'+ temp[1] + '|'+ temp[2];        

         }
         </script>";


   $string .= $javascript;

   $key_values = explode( ", ", $key_value);

   foreach($googlepayment->cc_shipping_methods_names as $CCSCode => $CCSName){

     $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
     $string .= "<br><b>" . $CCSName . "</b>"."\n";
     foreach($googlepayment->cc_shipping_methods[$CCSCode] as $type => $methods) {
       if (is_array($methods) && !empty($methods)) {
         $string .= '<br>     <b>'. $type .'</b><br />';            
           $string .= 'Def. Value | Fix Charge | Variable | Method Name';
         foreach($methods as $method => $method_name) {
           $string .= '<br>';

           // default value 
           $value = gc_compare($CCSCode . $method. $type , $key_values, "_CCS:", '1.00|0|0');
           $values = explode('|',$value);
           $string .= DEFAULT_CURRENCY . ':<input size="3"  onBlur="CCS_blur(this, \'' . $CCSCode. $method . $type . '\', \'hid_' .
                       $CCSCode . $method . $type . '\', 0);" onFocus="CCS_focus(this, \'' . $CCSCode . $method .
                       $type . '\' , \'hid_' . $CCSCode . $method . $type .'\', 0);" type="text" name="no_use' . $method . 
                       '" value="' . $values[0] . '"> ';

           $string .= DEFAULT_CURRENCY . ':<input size="3"  onBlur="CCS_blur(this, \'' . $CCSCode. $method . $type . '\', \'hid_' .
                       $CCSCode . $method . $type . '\', 1 );" onFocus="CCS_focus(this, \'' . $CCSCode . $method .
                       $type . '\' , \'hid_' . $CCSCode . $method . $type .'\', 1);" type="text" name="no_use' . $method . 
                       '" value="' . $values[1] . '"> ';

           $string .= '<input size="3"  onBlur="CCS_blur(this, \'' . $CCSCode. $method . $type . '\', \'hid_' .
                       $CCSCode . $method . $type . '\', 2 );" onFocus="CCS_focus(this, \'' . $CCSCode . $method .
                       $type . '\' , \'hid_' . $CCSCode . $method . $type .'\', 2);" type="text" name="no_use' . $method . 
                       '" value="' . $values[2] . '">% ';

           $string .= '<input size="10" id="hid_' . $CCSCode . $method . $type . '" type="hidden" name="' . $name . 
                       '" value="' . $CCSCode . $method . $type . '_CCS:' . $value . '">'."\n";      

           $string .= $method_name;
         }
       }
     }
   }
   return $string;
 }


 function gc_cfg_select_multioption($select_array, $key_value, $key = '') {

   for ($i=0; $i<sizeof($select_array); $i++) {
     $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
     $string .= '<br><input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '"';
     $key_values = explode( ", ", $key_value);
     if ( in_array($select_array[$i], $key_values) ) $string .= ' CHECKED';
     $string .= '>' . $select_array[$i];
   }
   $string .= '<input type="hidden" name="' . $name . '" value="--none--">';
   return $string;
 }


// Custom Function to store configuration values (shipping default values)  
function gc_compare($key, $data, $sep="_VD:", $def_ret='1')
 {
   foreach($data as $value) {
     list($key2, $valor) = explode($sep, $value);
     if($key == $key2)   
       return $valor;
   }
   return $def_ret;
 }
// perhaps this function must be moved to googlecheckout class, is not too general
 function gc_cfg_select_shipping($select_array, $key_value, $key = '') {

//add ropu
// i get all the shipping methods available!
global $PHP_SELF,$language,$module_type;

$module_directory = DIR_FS_CATALOG_MODULES . 'shipping/';

$file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
$directory_array = array();
if ($dir = @dir($module_directory)) {
  while ($file = $dir->read()) {

    if (!is_dir($module_directory . $file)) {
      if (substr($file, strrpos($file, '.')) == $file_extension) {
        $directory_array[] = $file;
      }
    }
  }
  sort($directory_array);
  $dir->close();
}

  $installed_modules = array();
  $select_array = array();
  for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
    $file = $directory_array[$i];

    include_once(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/shipping/' . $file);
    include_once($module_directory . $file);

    $class = substr($file, 0, strrpos($file, '.'));
    if (tep_class_exists($class)) {
      $module = new $class;
      //echo $class;
      if ($module->check() > 0) {

        $select_array[$module->code] = array('code' => $module->code,
                             'title' => $module->title,
                             'description' => $module->description,
                             'status' => $module->check());
      }
    }
  }
require_once (DIR_FS_CATALOG . 'includes/modules/payment/googlecheckout.php');
$googlepayment = new googlecheckout();

$ship_calcualtion_mode = (count(array_keys($select_array)) > count(array_intersect($googlepayment->shipping_support, array_keys($select_array)))) ? true : false;
if(!$ship_calcualtion_mode) {
	return '<br/><i>'. GOOGLECHECKOUT_TABLE_NO_MERCHANT_CALCULATION . '</i>';
}

   $javascript = "<script language='javascript'>

           function VD_blur(valor, code, hid_id){
             var hid = document.getElementById(hid_id);
             valor.value = isNaN(parseFloat(valor.value))?'':parseFloat(valor.value);
             if(valor.value != ''){ 
               hid.value = code + '_VD:' + valor.value;
           //    valor.value = valor.value;  
           //    hid.disabled = false;
             }else {   
               hid.value = code + '_VD:0';
               valor.value = '0';      
             }


           }

           function VD_focus(valor, code, hid_id){
             var hid = document.getElementById(hid_id);    
//              valor.value = valor.value.substr((code  + '_VD:').length, valor.value.length);
             hid.value = valor.value.substr((code  + '_VD:').length, valor.value.length);        
           }

           </script>";


 	$string .= $javascript;

 	$key_values = explode( ", ", $key_value);

   foreach($select_array as $i => $value){
     if ( $select_array[$i]['status'] && !in_array($select_array[$i]['code'], $googlepayment->shipping_support) ) {
      $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
      $string .= "<br><b>" . $select_array[$i]['title'] . "</b>"."\n";
      if (is_array($googlepayment->mc_shipping_methods[$select_array[$i]['code']])) {
         foreach($googlepayment->mc_shipping_methods[$select_array[$i]['code']] as $type => $methods) {
           if (is_array($methods) && !empty($methods)) {
             $string .= '<br>     <b>'. $type .'</b>';            
 		        foreach($methods as $method => $method_name) {
   			      $string .= '<br>';

   			      // default value 
   			      $value = gc_compare($select_array[$i]['code'] . $method. $type , $key_values, 1);
   				  $string .= '<input size="5"  onBlur="VD_blur(this, \'' . $select_array[$i]['code']. $method . $type . '\', \'hid_' . $select_array[$i]['code'] . $method . $type . '\' );" onFocus="VD_focus(this, \'' . $select_array[$i]['code'] . $method . $type . '\' , \'hid_' . $select_array[$i]['code'] . $method . $type .'\');" type="text" name="no_use' . $method . '" value="' . $value . '"';
   			      $string .= '>';
   				  $string .= '<input size="10" id="hid_' . $select_array[$i]['code'] . $method . $type . '" type="hidden" name="' . $name . '" value="' . $select_array[$i]['code'] . $method . $type . '_VD:' . $value . '"';		  
   		      	  $string .= '>'."\n";
   		      	  $string .= $method_name;
   		      }
           }
 	      }
       }
       else {
         $string .= $select_array[$i]['code'] .GOOGLECHECKOUT_MERCHANT_CALCULATION_NOT_CONFIGURED;
       }
     }
   }
   return $string;
 }

// ** END GOOGLE CHECKOUT **  

 

Looks the same, no?

 

I got the admin back by reinstalling the general.php file. The GC button does not work when ordering something though. Still says I have the beta version installed. I have no idea how to get rid of that.

Posted (edited)

try uninstalling and reinstalling GC in admin Payment Modules

Edited by West One Hosting
Posted
try uninstalling and reinstalling GC in admin Payment Modules

 

 

YAY! There we go. Finally. Back to kind of square one.

 

Still says...

 

 

Oops!

Ask-Knappy Parts has sent Google a shopping cart with errors in it. We'll contact them to ask that they fix this problem. As this could be a temporary issue, you can go back in your browser to try checking out again.

Posted
YAY! There we go. Finally. Back to kind of square one.

 

Still says...

 

 

Oops!

Ask-Knappy Parts has sent Google a shopping cart with errors in it. We'll contact them to ask that they fix this problem. As this could be a temporary issue, you can go back in your browser to try checking out again.

 

HHHHHHHHHHHHHHHH

 

working for me ;) ;) ;) ;) ;) ;) ;)

Posted (edited)

Wait. HOW?

 

Oh. I see now. If you order something without putting it into your shopping cart it works. That kind of sucks because you have to order one item at a time.

Edited by Knappy
Posted

should not work like that?

 

how do I save a screen shot? so I can then post it here

Posted
Wait. HOW?

 

Oh. I see now. If you order something without putting it into your shopping cart it works. That kind of sucks because you have to order one item at a time.

 

I have just added 3 items of yours to the cart and it all goes to GC?

Posted

If I log onto my account, then click the GC link under all the products I previously added to my cart, I get that error message.

 

You would have to host the picture somewhere and then put it into the [/img] tags.

Posted
I have just added 3 items of yours to the cart and it all goes to GC?

 

 

Yes, I can get it to work like that. Just doesn't work if you are logged onto an account and do it.

Posted (edited)
Yes, I can get it to work like that. Just doesn't work if you are logged onto an account and do it.

 

does on my site

 

try it on my site westonehosting.com

 

test account

u/name / email: see your pm

 

p/w: see your pm

Edited by West One Hosting
Posted

Got it working!

 

Simon. Thank you SOOOOOOOO much! You have been an awesome help. If you buy a Volkswagen and need some stuff to make it go faster, let me know. I owe you one. :D

Posted

this is my orders.php

 

<?php
/*
 $Id: orders.php 1739 2007-12-20 00:52:16Z hpdl $
 $Id: orders.php,v 1.2.1 2007/09/27 22:50:52 Ropu - added Google Checkout (v1.4.5) $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');

/* ** GOOGLE CHECKOUT **/
 define('GC_STATE_NEW', 100);
 define('GC_STATE_PROCESSING', 101);
 define('GC_STATE_SHIPPED', 102);
 define('GC_STATE_REFUNDED', 103);
 define('GC_STATE_SHIPPED_REFUNDED', 104);
 define('GC_STATE_CANCELED', 105);
 function google_checkout_state_change($check_status, $status, $oID, 
										  $cust_notify, $notify_comments) {
  global $db,$messageStack, $orders_statuses;

  define('API_CALLBACK_ERROR_LOG', 
				   DIR_FS_CATALOG. "/googlecheckout/logs/response_error.log");
  define('API_CALLBACK_MESSAGE_LOG',
				   DIR_FS_CATALOG . "/googlecheckout/logs/response_message.log");

  include_once(DIR_FS_CATALOG.'/includes/modules/payment/googlecheckout.php');
  include_once(DIR_FS_CATALOG.'/googlecheckout/library/googlerequest.php');

  $googlepayment = new googlecheckout();

  $Grequest = new GoogleRequest($googlepayment->merchantid, 
								$googlepayment->merchantkey, 
								MODULE_PAYMENT_GOOGLECHECKOUT_MODE==
								  'https://sandbox.google.com/checkout/'
								  ?"sandbox":"production",
								DEFAULT_CURRENCY);
  $Grequest->SetLogFiles(API_CALLBACK_ERROR_LOG, API_CALLBACK_MESSAGE_LOG);


  $google_answer = tep_db_fetch_array(tep_db_query("SELECT go.google_order_number, go.order_amount, o.customers_email_address, gc.buyer_id, o.customers_id
								  FROM " . $googlepayment->table_order . " go 
								  inner join " . TABLE_ORDERS . " o on go.orders_id = o.orders_id
								  inner join " . $googlepayment->table_name . " gc on gc.customers_id = o.customers_id
								  WHERE go.orders_id = '" . (int)$oID ."'
								  group by o.customers_id order by o.orders_id desc"));

  $google_order = $google_answer['google_order_number'];  
  $amount = $google_answer['order_amount'];  

// If status update is from Google New -> Google Processing on the Admin UI
// this invokes the processing-order and charge-order commands
// 1->Google New, 2-> Google Processing
if($check_status['orders_status'] == GC_STATE_NEW 
		   && $status == GC_STATE_PROCESSING && $google_order != '') {
  list($curl_status,) = $Grequest->SendChargeOrder($google_order, $amount);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_CHARGE_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_CHARGE_ORDER, 'success');		  
  }
  list($curl_status,) = $Grequest->SendProcessOrder($google_order);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_PROCESS_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_PROCESS_ORDER, 'success');		  
  }
} 

// If status update is from Google Processing or Google Refunded -> Google Shipped on the Admin UI
// this invokes the deliver-order and archive-order commands
// 2->Google Processing or Google Refunded, 3-> Google Shipped (refunded)
else if(($check_status['orders_status'] == GC_STATE_PROCESSING 
		|| $check_status['orders_status'] == GC_STATE_REFUNDED)
			 && ($status == GC_STATE_SHIPPED || $status == GC_STATE_SHIPPED_REFUNDED )
			 && $google_order != '') {
  $carrier = $tracking_no = "";
  // Add tracking Data
  if(isset($_POST['carrier_select']) &&  ($_POST['carrier_select'] != 'select') 
	   && isset($_POST['tracking_number']) && !empty($_POST['tracking_number'])) {
	$carrier = $_POST['carrier_select'];
	$tracking_no = $_POST['tracking_number'];
	$comments = GOOGLECHECKOUT_STATE_STRING_TRACKING ."\n" .
				GOOGLECHECKOUT_STATE_STRING_TRACKING_CARRIER . $_POST['carrier_select'] ."\n" .
				GOOGLECHECKOUT_STATE_STRING_TRACKING_NUMBER . $_POST['tracking_number'] . "";
	tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . "
				(orders_id, orders_status_id, date_added, customer_notified, comments)
				values ('" . (int)$oID . "',
				'" . tep_db_input(($check_status['orders_status']==GC_STATE_REFUNDED
								  ?GC_STATE_SHIPPED_REFUNDED:GC_STATE_SHIPPED)) . "',
				now(),
				'" . tep_db_input($cust_notify) . "',
				'" . tep_db_input($comments)  . "')");

  }

  list($curl_status,) = $Grequest->SendDeliverOrder($google_order, $carrier,
						  $tracking_no, ($cust_notify==1)?"true":"false");
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_DELIVER_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_DELIVER_ORDER, 'success');		  
  }
  list($curl_status,) = $Grequest->SendArchiveOrder($google_order);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_ARCHIVE_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_ARCHIVE_ORDER, 'success');		  
  }
} 
// If status update is to Google Canceled on the Admin UI
// this invokes the cancel-order and archive-order commands
else if($check_status['orders_status'] != GC_STATE_CANCELED &&
		$status == GC_STATE_CANCELED && $google_order != '') {
  if($check_status['orders_status'] != GC_STATE_NEW){
	list($curl_status,) = $Grequest->SendRefundOrder($google_order, 0,
									GOOGLECHECKOUT_STATE_STRING_ORDER_CANCELED
									);
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_REFUND_ORDER, 'error');
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_REFUND_ORDER, 'success');		  
	}
  }
  else {
	// Tell google witch is the OSC's internal order Number		
	list($curl_status,) = $Grequest->SendMerchantOrderNumber($google_order, $oID);
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_MERCHANT_ORDER_NUMBER, 'error');
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_MERCHANT_ORDER_NUMBER, 'success');		  
	}
  }
//	Is the order is not archive, I do it
  if($check_status['orders_status'] != GC_STATE_SHIPPED 
	 && $check_status['orders_status'] != GC_STATE_SHIPPED_REFUNDED){
	list($curl_status,) = $Grequest->SendArchiveOrder($google_order);
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_ARCHIVE_ORDER, 'error');
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_ARCHIVE_ORDER, 'success');		  
	}
  }
//	Cancel the order
  list($curl_status,) = $Grequest->SendCancelOrder($google_order, 
								  GOOGLECHECKOUT_STATE_STRING_ORDER_CANCELED,
								  $notify_comments);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_CANCEL_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_CANCEL_ORDER, 'success');		  
  }
}
else if($google_order != '' 
		&& $check_status['orders_status'] != $status){
  $statuses = array();
  foreach($orders_statuses as $status_array){
	$statuses[$status_array['id']] = $status_array['text'];
  }
  $messageStack->add_session( sprintf(GOOGLECHECKOUT_ERR_INVALID_STATE_TRANSITION,
							  $statuses[$check_status['orders_status']],
							  $statuses[$status],
							  $statuses[$check_status['orders_status']]),
							  'error');
}	

// Send Buyer's message
if($cust_notify==1 && isset($notify_comments) && !empty($notify_comments)) {
  $cust_notify_ok = '0';	  
  if(!((strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH)
		  && MODULE_PAYMENT_GOOGLECHECKOUT_USE_CART_MESSAGING=='True')){

	list($curl_status,) = $Grequest->sendBuyerMessage($google_order, 
						 $notify_comments, "true");
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_MESSAGE_ORDER, 'error');
	  $cust_notify_ok = '0';
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_MESSAGE_ORDER, 'success');		  
	  $cust_notify_ok = '1';
	}
	if(strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH) {
	  $messageStack->add_session(
	  sprintf(GOOGLECHECKOUT_WARNING_CHUNK_MESSAGE, GOOGLE_MESSAGE_LENGTH), 'warning');		  
	}
  }
  // Cust notified
  return $cust_notify_ok;
}
// Cust notified
return '0';
 }
 // ** END GOOGLE CHECKOUT ** 

 require(DIR_WS_CLASSES . 'currencies.php');
 $currencies = new currencies();

 $orders_statuses = array();
 $orders_status_array = array();
 $orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "'");
 while ($orders_status = tep_db_fetch_array($orders_status_query)) {
$orders_statuses[] = array('id' => $orders_status['orders_status_id'],
						   'text' => $orders_status['orders_status_name']);
$orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];
 }

 $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

 if (tep_not_null($action)) {
switch ($action) {
  case 'update_order':
	$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);
	$status = tep_db_prepare_input($HTTP_POST_VARS['status']);
	$comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);

	$order_updated = false;
	$check_status_query = tep_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");
	$check_status = tep_db_fetch_array($check_status_query);

	if ( ($check_status['orders_status'] != $status) || tep_not_null($comments)) {
	  tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . tep_db_input($status) . "', last_modified = now() where orders_id = '" . (int)$oID . "'");

// ** GOOGLE CHECKOUT **
	  chdir("./..");
	  require_once(DIR_WS_LANGUAGES . $language . '/modules/payment/googlecheckout.php');
	  $payment_value= MODULE_PAYMENT_GOOGLECHECKOUT_TEXT_TITLE;
	  $num_rows = tep_db_num_rows(tep_db_query("select google_order_number from google_orders where orders_id= ". (int)$oID));

	  if($num_rows != 0) {
		$customer_notified = google_checkout_state_change($check_status, $status, $oID, 
						   (@$_POST['notify']=='on'?1:0), 
						   (@$_POST['notify_comments']=='on'?$comments:''));
	  }
	  $customer_notified = isset($customer_notified)?$customer_notified:'0';
// ** END GOOGLE CHECKOUT **
	  if (isset($_POST['notify']) && ($_POST['notify'] == 'on')) {
		$notify_comments = '';
		if (isset($_POST['notify_comments']) && ($_POST['notify_comments'] == 'on') && tep_not_null($comments)) {
		  $notify_comments = EMAIL_TEXT_COMMENTS_UPDATE . $comments . "\n\n";
		}
// ** GOOGLE CHECKOUT **
		$force_email = false;
		if($num_rows != 0 && (strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH && MODULE_PAYMENT_GOOGLECHECKOUT_USE_CART_MESSAGING == 'True')) {
		  $force_email = true;
		  $messageStack->add_session(GOOGLECHECKOUT_WARNING_SYSTEM_EMAIL_SENT, 'warning');		  
		}

		if($num_rows == 0 || $force_email) {
 //send emails, not a google order or configured to use both messaging systems
		$email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);

		tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

		$customer_notified = '1';
 //send extra emails
		}
	  }

	  tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$oID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($comments)  . "')");

	  $order_updated = true;
	}

	if ($order_updated == true) {
	 $messageStack->add_session(SUCCESS_ORDER_UPDATED, 'success');
	} else {
	  $messageStack->add_session(WARNING_ORDER_NOT_UPDATED, 'warning');
	}

	tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=edit'));
	break;
  case 'deleteconfirm':
	$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

	tep_remove_order($oID, $HTTP_POST_VARS['restock']);

	tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action'))));
	break;
}
 }

 if (($action == 'edit') && isset($HTTP_GET_VARS['oID'])) {
$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

$orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");
$order_exists = true;
if (!tep_db_num_rows($orders_query)) {
  $order_exists = false;
  $messageStack->add(sprintf(ERROR_ORDER_DOES_NOT_EXIST, $oID), 'error');
}
 }

 include(DIR_WS_CLASSES . 'order.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<!-- header //-->
<?php
 require(DIR_WS_INCLUDES . 'header.php');
?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
 <tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 if (($action == 'edit') && ($order_exists == true)) {
$order = new order($oID);
?>
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE . '<a href="' . tep_href_link(FILENAME_CREATE_ORDER) . '"> Create order </a>'; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td class="pageHeading" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $_GET['oID']) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a> '; ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table width="100%" border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td colspan="3"><?php echo tep_draw_separator(); ?></td>
	  </tr>
	  <tr>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_CUSTOMER; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>'); ?></td>
		  </tr>
		  <tr>
			<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_TELEPHONE_NUMBER; ?></b></td>
			<td class="main"><?php echo $order->customer['telephone']; ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td>
			<td class="main"><?php echo '<a href="mailto:' . $order->customer['email_address'] . '"><u>' . $order->customer['email_address'] . '</u></a>'; ?></td>
		  </tr>
		</table></td>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_SHIPPING_ADDRESS; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>'); ?></td>
		  </tr>
		</table></td>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_BILLING_ADDRESS; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, '', '<br>'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo ENTRY_PAYMENT_METHOD; ?></b></td>
		<td class="main"><?php echo $order->info['payment_method']; ?></td>
	  </tr>
<?php
if (tep_not_null($order->info['cc_type']) || tep_not_null($order->info['cc_owner']) || tep_not_null($order->info['cc_number'])) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_TYPE; ?></td>
		<td class="main"><?php echo $order->info['cc_type']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_OWNER; ?></td>
		<td class="main"><?php echo $order->info['cc_owner']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_NUMBER; ?></td>
		<td class="main"><?php echo $order->info['cc_number']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_EXPIRES; ?></td>
		<td class="main"><?php echo $order->info['cc_expires']; ?></td>
	  </tr>
<?php
}
?>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr class="dataTableHeadingRow">
		<td class="dataTableHeadingContent" colspan="2"><?php echo TABLE_HEADING_PRODUCTS; ?></td>
		<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS_MODEL; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_EXCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_INCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_EXCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_INCLUDING_TAX; ?></td>
	  </tr>
<?php
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
  echo '		  <tr class="dataTableRow">' . "\n" .
	   '			<td class="dataTableContent" valign="top" align="right">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .
	   '			<td class="dataTableContent" valign="top">' . $order->products[$i]['name'];

  if (isset($order->products[$i]['attributes']) && (sizeof($order->products[$i]['attributes']) > 0)) {
	for ($j = 0, $k = sizeof($order->products[$i]['attributes']); $j < $k; $j++) {
	  echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'];
	  if ($order->products[$i]['attributes'][$j]['price'] != '0') echo ' (' . $order->products[$i]['attributes'][$j]['prefix'] . $currencies->format($order->products[$i]['attributes'][$j]['price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . ')';
	  echo '</i></small></nobr>';
	}
  }

  echo '			</td>' . "\n" .
	   '			<td class="dataTableContent" valign="top">' . $order->products[$i]['model'] . '</td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax'], true), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax'], true) * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n";
  echo '		  </tr>' . "\n";
}
?>
	  <tr>
		<td align="right" colspan="8"><table border="0" cellspacing="0" cellpadding="2">
<?php
for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) {
  echo '			  <tr>' . "\n" .
	   '				<td align="right" class="smallText">' . $order->totals[$i]['title'] . '</td>' . "\n" .
	   '				<td align="right" class="smallText">' . $order->totals[$i]['text'] . '</td>' . "\n" .
	   '			  </tr>' . "\n";
}
?>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td class="main"><table border="1" cellspacing="0" cellpadding="5">
	  <tr>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_DATE_ADDED; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_CUSTOMER_NOTIFIED; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_STATUS; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
	  </tr>
<?php
$orders_history_query = tep_db_query("select orders_status_id, date_added, customer_notified, comments from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . tep_db_input($oID) . "' order by date_added");
if (tep_db_num_rows($orders_history_query)) {
  while ($orders_history = tep_db_fetch_array($orders_history_query)) {
	echo '		  <tr>' . "\n" .
		 '			<td class="smallText" align="center">' . tep_datetime_short($orders_history['date_added']) . '</td>' . "\n" .
		 '			<td class="smallText" align="center">';
	if ($orders_history['customer_notified'] == '1') {
	  echo tep_image(DIR_WS_ICONS . 'tick.gif', ICON_TICK) . "</td>\n";
	} else {
	  echo tep_image(DIR_WS_ICONS . 'cross.gif', ICON_CROSS) . "</td>\n";
	}
	echo '			<td class="smallText">' . $orders_status_array[$orders_history['orders_status_id']] . '</td>' . "\n" .
		 '			<td class="smallText">' . nl2br(tep_db_output($orders_history['comments'])) . ' </td>' . "\n" .
		 '		  </tr>' . "\n";
  }
} else {
	echo '		  <tr>' . "\n" .
		 '			<td class="smallText" colspan="5">' . TEXT_NO_ORDER_HISTORY . '</td>' . "\n" .
		 '		  </tr>' . "\n";
}
?>
	</table></td>
  </tr>
  <tr>
	<td class="main"><br><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
  </tr>
  <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=update_order'); ?>
	<td class="main"><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td><table border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo tep_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_NOTIFY_CUSTOMER; ?></b> <?php echo tep_draw_checkbox_field('notify', '', true); ?></td>
			<td class="main"><b><?php echo ENTRY_NOTIFY_COMMENTS; ?></b> <?php echo tep_draw_checkbox_field('notify_comments', '', true); ?></td>
		  </tr>
		</table></td>
		<td valign="top"><?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?></td>
<!-- googlecheckout Tracking Number -->
<?php 
// orders_status == STATE_PROCESSING -> Processing before delivery

if(strpos($order->info['payment_method'], 'Google')!= -1 && $order->info['orders_status'] == GC_STATE_PROCESSING){
		echo '<td><table border="0" cellpadding="3" cellspacing="0" width="100%">   
			<tbody>
				<tr>  
					<td style="border-top: 2px solid rgb(255, 255, 255); border-right: 2px solid rgb(255, 255, 255);" nowrap="nowrap" colspan="2">
							<b>Shipping Information</b>  
					</td>  
				</tr>
				<tr>  
					<td nowrap="nowrap" valign="middle" width="1%">  
						<font size="2">  
							<b>Tracking:</b>  
						</font>  
					</td>  
					<td style="border-right: 2px solid rgb(255, 255, 255); border-bottom: 2px solid rgb(255, 255, 255);" nowrap="nowrap">   
						<input name="tracking_number" style="color: rgb(0, 0, 0);" id="trackingBox" size="20" type="text">   
					</td>  
				</tr>  
				<tr>  
					<td nowrap="nowrap" valign="middle" width="1%">  
						<font size="2">  
							<b>Carrier:</b>  
						</font>  
					</td>  
					<td style="border-right: 2px solid rgb(255, 255, 255);" nowrap="nowrap">  
						<select name="carrier_select" style="color: rgb(0, 0, 0);" id="carrierSelect">  
							<option value="select" selected="selected">
							 Select ...  
							</option>   
							<option value="USPS">
							 USPS  
							</option>   
							<option value="DHL">
							 DHL  
							</option>   
							<option value="UPS">
							 UPS  
							</option>   
							<option value="Other">
							 Other  
							</option>   
							<option value="FedEx">
							 FedEx  
							</option>   
						</select>  
					</td>  
				</tr>	 
			</tbody> 
		</table></td>';

}
?>
<!-- end googlecheckout Tracking Number -->
	  </tr>
	</table></td>
  </form></tr>
  <tr>
	<td colspan="2" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $_GET['oID']) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a> '; ?></td></tr>
<?php
 } else {
?>
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr><?php echo tep_draw_form('orders', FILENAME_ORDERS, '', 'get'); ?>
			<td class="smallText" align="right"><?php echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('oID', '', 'size="12"') . tep_draw_hidden_field('action', 'edit'); ?></td>
		  <?php echo tep_hide_session_id(); ?></form></tr>
		  <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, '', 'get'); ?>
			<td class="smallText" align="right"><?php echo HEADING_TITLE_STATUS . ' ' . tep_draw_pull_down_menu('status', array_merge(array(array('id' => '', 'text' => TEXT_ALL_ORDERS)), $orders_statuses), '', 'onChange="this.form.submit();"'); ?></td>
		  <?php echo tep_hide_session_id(); ?></form></tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
<?php
if (isset($HTTP_GET_VARS['cID'])) {
  $cID = tep_db_prepare_input($HTTP_GET_VARS['cID']);
  $orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";
} elseif (isset($HTTP_GET_VARS['status']) && is_numeric($HTTP_GET_VARS['status']) && ($HTTP_GET_VARS['status'] > 0)) {
  $status = tep_db_prepare_input($HTTP_GET_VARS['status']);
  $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";
} else {
  $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";
}
$orders_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $orders_query_raw, $orders_query_numrows);
$orders_query = tep_db_query($orders_query_raw);
while ($orders = tep_db_fetch_array($orders_query)) {
if ((!isset($HTTP_GET_VARS['oID']) || (isset($HTTP_GET_VARS['oID']) && ($HTTP_GET_VARS['oID'] == $orders['orders_id']))) && !isset($oInfo)) {
	$oInfo = new objectInfo($orders);
  }

  if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) {
	echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '\'">' . "\n";
  } else {
	echo '			  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '\'">' . "\n";
  }
?>
			<td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $orders['customers_name']; ?></td>
			<td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td>
			<td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td>
			<td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td>
			<td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
}
?>
		  <tr>
			<td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="smallText" valign="top"><?php echo $orders_split->display_count($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_ORDERS); ?></td>
				<td class="smallText" align="right"><?php echo $orders_split->display_links($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page'], tep_get_all_get_params(array('page', 'oID', 'action'))); ?></td>
			  </tr>
			</table></td>
		  </tr>
		</table></td>
<?php
 $heading = array();
 $contents = array();

 switch ($action) {
case 'delete':
  $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_ORDER . '</b>');

  $contents = array('form' => tep_draw_form('orders', FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=deleteconfirm'));
  $contents[] = array('text' => TEXT_INFO_DELETE_INTRO . '<br><br><b>' . $cInfo->customers_firstname . ' ' . $cInfo->customers_lastname . '</b>');
  $contents[] = array('text' => '<br>' . tep_draw_checkbox_field('restock') . ' ' . TEXT_INFO_RESTOCK_PRODUCT_QUANTITY);
  $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
  break;
default:
  if (isset($oInfo) && is_object($oInfo)) {
	$heading[] = array('text' => '<b>[' . $oInfo->orders_id . ']  ' . tep_datetime_short($oInfo->date_purchased) . '</b>');

  $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '">' . tep_image_button('button_details.gif', IMAGE_DETAILS) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a>');
  $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a>');
  $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CREATE_ORDER) . '">' . tep_image_button('button_create_order.gif', IMAGE_CREATE_ORDER) . '</a>');


	$contents[] = array('text' => '<br>' . TEXT_DATE_ORDER_CREATED . ' ' . tep_date_short($oInfo->date_purchased));
	if (tep_not_null($oInfo->last_modified)) $contents[] = array('text' => TEXT_DATE_ORDER_LAST_MODIFIED . ' ' . tep_date_short($oInfo->last_modified));
	$contents[] = array('text' => '<br>' . TEXT_INFO_PAYMENT_METHOD . ' '  . $oInfo->payment_method);
  }
  break;
 }

 if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
echo '			<td width="25%" valign="top">' . "\n";

$box = new box;
echo $box->infoBox($heading, $contents);

echo '			</td>' . "\n";
 }
?>
	  </tr>
	</table></td>
  </tr>
<?php
 }
?>
</table></td>
<!-- body_text_eof //-->
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Posted

Ok. Got this error while checking an order.

 

Parse error: syntax error, unexpected T_CASE in /home/askkna5/public_html/parts/admin/orders.php on line 272

 

This is what is on line 272

 

      case 'deleteconfirm':

Posted (edited)
<?php
/*
 $Id: orders.php,v 1.112 2003/06/29 22:50:52 hpdl Exp $
 $Id: orders.php,v 1.112 2007/06/19 22:50:52 Ropu - added Google Checkout (v1.4) $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');

/* ** GOOGLE CHECKOUT **/
 define('GC_STATE_NEW', 100);
 define('GC_STATE_PROCESSING', 101);
 define('GC_STATE_SHIPPED', 102);
 define('GC_STATE_REFUNDED', 103);
 define('GC_STATE_SHIPPED_REFUNDED', 104);
 define('GC_STATE_CANCELED', 105);
 function google_checkout_state_change($check_status, $status, $oID, 
										  $cust_notify, $notify_comments) {
  global $db,$messageStack, $orders_statuses;

  define('API_CALLBACK_ERROR_LOG', 
				   DIR_FS_CATALOG. "/googlecheckout/logs/response_error.log");
  define('API_CALLBACK_MESSAGE_LOG',
				   DIR_FS_CATALOG . "/googlecheckout/logs/response_message.log");

  include_once(DIR_FS_CATALOG.'/includes/modules/payment/googlecheckout.php');
  include_once(DIR_FS_CATALOG.'/googlecheckout/library/googlerequest.php');

  $googlepayment = new googlecheckout();

  $Grequest = new GoogleRequest($googlepayment->merchantid, 
								$googlepayment->merchantkey, 
								MODULE_PAYMENT_GOOGLECHECKOUT_MODE==
								  'https://sandbox.google.com/checkout/'
								  ?"sandbox":"production",
								DEFAULT_CURRENCY);
  $Grequest->SetLogFiles(API_CALLBACK_ERROR_LOG, API_CALLBACK_MESSAGE_LOG);


  $google_answer = tep_db_fetch_array(tep_db_query("SELECT go.google_order_number, go.order_amount, o.customers_email_address, gc.buyer_id, o.customers_id
								  FROM " . $googlepayment->table_order . " go 
								  inner join " . TABLE_ORDERS . " o on go.orders_id = o.orders_id
								  inner join " . $googlepayment->table_name . " gc on gc.customers_id = o.customers_id
								  WHERE go.orders_id = '" . (int)$oID ."'
								  group by o.customers_id order by o.orders_id desc"));

  $google_order = $google_answer['google_order_number'];  
  $amount = $google_answer['order_amount'];  

// If status update is from Google New -> Google Processing on the Admin UI
// this invokes the processing-order and charge-order commands
// 1->Google New, 2-> Google Processing
if($check_status['orders_status'] == GC_STATE_NEW 
		   && $status == GC_STATE_PROCESSING && $google_order != '') {
  list($curl_status,) = $Grequest->SendChargeOrder($google_order, $amount);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_CHARGE_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_CHARGE_ORDER, 'success');		  
  }
  list($curl_status,) = $Grequest->SendProcessOrder($google_order);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_PROCESS_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_PROCESS_ORDER, 'success');		  
  }
} 

// If status update is from Google Processing or Google Refunded -> Google Shipped on the Admin UI
// this invokes the deliver-order and archive-order commands
// 2->Google Processing or Google Refunded, 3-> Google Shipped (refunded)
else if(($check_status['orders_status'] == GC_STATE_PROCESSING 
		|| $check_status['orders_status'] == GC_STATE_REFUNDED)
			 && ($status == GC_STATE_SHIPPED || $status == GC_STATE_SHIPPED_REFUNDED )
			 && $google_order != '') {
  $carrier = $tracking_no = "";
  // Add tracking Data
  if(isset($_POST['carrier_select']) &&  ($_POST['carrier_select'] != 'select') 
	   && isset($_POST['tracking_number']) && !empty($_POST['tracking_number'])) {
	$carrier = $_POST['carrier_select'];
	$tracking_no = $_POST['tracking_number'];
	$comments = GOOGLECHECKOUT_STATE_STRING_TRACKING ."\n" .
				GOOGLECHECKOUT_STATE_STRING_TRACKING_CARRIER . $_POST['carrier_select'] ."\n" .
				GOOGLECHECKOUT_STATE_STRING_TRACKING_NUMBER . $_POST['tracking_number'] . "";
	tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . "
				(orders_id, orders_status_id, date_added, customer_notified, comments)
				values ('" . (int)$oID . "',
				'" . tep_db_input(($check_status['orders_status']==GC_STATE_REFUNDED
								  ?GC_STATE_SHIPPED_REFUNDED:GC_STATE_SHIPPED)) . "',
				now(),
				'" . tep_db_input($cust_notify) . "',
				'" . tep_db_input($comments)  . "')");

  }

  list($curl_status,) = $Grequest->SendDeliverOrder($google_order, $carrier,
						  $tracking_no, ($cust_notify==1)?"true":"false");
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_DELIVER_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_DELIVER_ORDER, 'success');		  
  }
  list($curl_status,) = $Grequest->SendArchiveOrder($google_order);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_ARCHIVE_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_ARCHIVE_ORDER, 'success');		  
  }
} 
// If status update is to Google Canceled on the Admin UI
// this invokes the cancel-order and archive-order commands
else if($check_status['orders_status'] != GC_STATE_CANCELED &&
		$status == GC_STATE_CANCELED && $google_order != '') {
  if($check_status['orders_status'] != GC_STATE_NEW){
	list($curl_status,) = $Grequest->SendRefundOrder($google_order, 0,
									GOOGLECHECKOUT_STATE_STRING_ORDER_CANCELED
									);
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_REFUND_ORDER, 'error');
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_REFUND_ORDER, 'success');		  
	}
  }
  else {
	// Tell google witch is the OSC's internal order Number		
	list($curl_status,) = $Grequest->SendMerchantOrderNumber($google_order, $oID);
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_MERCHANT_ORDER_NUMBER, 'error');
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_MERCHANT_ORDER_NUMBER, 'success');		  
	}
  }
//	Is the order is not archive, I do it
  if($check_status['orders_status'] != GC_STATE_SHIPPED 
	 && $check_status['orders_status'] != GC_STATE_SHIPPED_REFUNDED){
	list($curl_status,) = $Grequest->SendArchiveOrder($google_order);
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_ARCHIVE_ORDER, 'error');
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_ARCHIVE_ORDER, 'success');		  
	}
  }
//	Cancel the order
  list($curl_status,) = $Grequest->SendCancelOrder($google_order, 
								  GOOGLECHECKOUT_STATE_STRING_ORDER_CANCELED,
								  $notify_comments);
  if($curl_status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_CANCEL_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_CANCEL_ORDER, 'success');		  
  }
}
else if($google_order != '' 
		&& $check_status['orders_status'] != $status){
  $statuses = array();
  foreach($orders_statuses as $status_array){
	$statuses[$status_array['id']] = $status_array['text'];
  }
  $messageStack->add_session( sprintf(GOOGLECHECKOUT_ERR_INVALID_STATE_TRANSITION,
							  $statuses[$check_status['orders_status']],
							  $statuses[$status],
							  $statuses[$check_status['orders_status']]),
							  'error');
}	

// Send Buyer's message
if($cust_notify==1 && isset($notify_comments) && !empty($notify_comments)) {
  $cust_notify_ok = '0';	  
  if(!((strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH)
		  && MODULE_PAYMENT_GOOGLECHECKOUT_USE_CART_MESSAGING=='True')){

	list($curl_status,) = $Grequest->sendBuyerMessage($google_order, 
						 $notify_comments, "true");
	if($curl_status != 200) {
	  $messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_MESSAGE_ORDER, 'error');
	  $cust_notify_ok = '0';
	}
	else {
	  $messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_MESSAGE_ORDER, 'success');		  
	  $cust_notify_ok = '1';
	}
	if(strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH) {
	  $messageStack->add_session(
	  sprintf(GOOGLECHECKOUT_WARNING_CHUNK_MESSAGE, GOOGLE_MESSAGE_LENGTH), 'warning');		  
	}
  }
  // Cust notified
  return $cust_notify_ok;
}
// Cust notified
return '0';
 }
 // ** END GOOGLE CHECKOUT ** 

 require(DIR_WS_CLASSES . 'currencies.php');
 $currencies = new currencies();

 $orders_statuses = array();
 $orders_status_array = array();
 $orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "'");
 while ($orders_status = tep_db_fetch_array($orders_status_query)) {
$orders_statuses[] = array('id' => $orders_status['orders_status_id'],
						   'text' => $orders_status['orders_status_name']);
$orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];
 }

 $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

   if ( ($check_status['orders_status'] != $status) || tep_not_null($comments)) {
	  tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . tep_db_input($status) . "', last_modified = now() where orders_id = '" . (int)$oID . "'");

// ** GOOGLE CHECKOUT **
	  chdir("./..");
	  require_once(DIR_WS_LANGUAGES . $language . '/modules/payment/googlecheckout.php');
	  $payment_value= MODULE_PAYMENT_GOOGLECHECKOUT_TEXT_TITLE;
	  $num_rows = tep_db_num_rows(tep_db_query("select google_order_number from google_orders where orders_id= ". (int)$oID));

	  if($num_rows != 0) {
		$customer_notified = google_checkout_state_change($check_status, $status, $oID, 
						   (@$_POST['notify']=='on'?1:0), 
						   (@$_POST['notify_comments']=='on'?$comments:''));
	  }
	  $customer_notified = isset($customer_notified)?$customer_notified:'0';
// ** END GOOGLE CHECKOUT **
	  if (isset($_POST['notify']) && ($_POST['notify'] == 'on')) {
		$notify_comments = '';
		if (isset($_POST['notify_comments']) && ($_POST['notify_comments'] == 'on') && tep_not_null($comments)) {
		  $notify_comments = EMAIL_TEXT_COMMENTS_UPDATE . $comments . "\n\n";
		}
// ** GOOGLE CHECKOUT **
		$force_email = false;
		if($num_rows != 0 && (strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH && MODULE_PAYMENT_GOOGLECHECKOUT_USE_CART_MESSAGING == 'True')) {
		  $force_email = true;
		  $messageStack->add_session(GOOGLECHECKOUT_WARNING_SYSTEM_EMAIL_SENT, 'warning');		  
		}

		if($num_rows == 0 || $force_email) {
 //send emails, not a google order or configured to use both messaging systems
		  $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);
		  tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
		  $customer_notified = '1';
 //send extra emails
		}
	  }
	  tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$oID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($comments)  . "')");
	  $order_updated = true;
	}


	if ($order_updated == true) {
	 $messageStack->add_session(SUCCESS_ORDER_UPDATED, 'success');
	} else {
	  $messageStack->add_session(WARNING_ORDER_NOT_UPDATED, 'warning');
	}

	tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=edit'));
	break;
  case 'deleteconfirm':
	$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

	tep_remove_order($oID, $HTTP_POST_VARS['restock']);

	tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action'))));
	break;
}
 }

 if (($action == 'edit') && isset($HTTP_GET_VARS['oID'])) {
$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

$orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");
$order_exists = true;
if (!tep_db_num_rows($orders_query)) {
  $order_exists = false;
  $messageStack->add(sprintf(ERROR_ORDER_DOES_NOT_EXIST, $oID), 'error');
}
 }

 include(DIR_WS_CLASSES . 'order.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<!-- header //-->
<?php
 require(DIR_WS_INCLUDES . 'header.php');
?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
 <tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 if (($action == 'edit') && ($order_exists == true)) {
$order = new order($oID);
?>
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td class="pageHeading" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table width="100%" border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td colspan="3"><?php echo tep_draw_separator(); ?></td>
	  </tr>
	  <tr>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_CUSTOMER; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>'); ?></td>
		  </tr>
		  <tr>
			<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_TELEPHONE_NUMBER; ?></b></td>
			<td class="main"><?php echo $order->customer['telephone']; ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td>
			<td class="main"><?php echo '<a href="mailto:' . $order->customer['email_address'] . '"><u>' . $order->customer['email_address'] . '</u></a>'; ?></td>
		  </tr>
		</table></td>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_SHIPPING_ADDRESS; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>'); ?></td>
		  </tr>
		</table></td>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_BILLING_ADDRESS; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, '', '<br>'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo ENTRY_PAYMENT_METHOD; ?></b></td>
		<td class="main"><?php echo $order->info['payment_method']; ?></td>
	  </tr>
<?php
if (tep_not_null($order->info['cc_type']) || tep_not_null($order->info['cc_owner']) || tep_not_null($order->info['cc_number'])) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_TYPE; ?></td>
		<td class="main"><?php echo $order->info['cc_type']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_OWNER; ?></td>
		<td class="main"><?php echo $order->info['cc_owner']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_NUMBER; ?></td>
		<td class="main"><?php echo $order->info['cc_number']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_EXPIRES; ?></td>
		<td class="main"><?php echo $order->info['cc_expires']; ?></td>
	  </tr>
<?php
}
?>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr class="dataTableHeadingRow">
		<td class="dataTableHeadingContent" colspan="2"><?php echo TABLE_HEADING_PRODUCTS; ?></td>
		<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS_MODEL; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_EXCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_INCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_EXCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_INCLUDING_TAX; ?></td>
	  </tr>
<?php
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
  echo '		  <tr class="dataTableRow">' . "\n" .
	   '			<td class="dataTableContent" valign="top" align="right">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .
	   '			<td class="dataTableContent" valign="top">' . $order->products[$i]['name'];

  if (isset($order->products[$i]['attributes']) && (sizeof($order->products[$i]['attributes']) > 0)) {
	for ($j = 0, $k = sizeof($order->products[$i]['attributes']); $j < $k; $j++) {
	  echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'];
	  if ($order->products[$i]['attributes'][$j]['price'] != '0') echo ' (' . $order->products[$i]['attributes'][$j]['prefix'] . $currencies->format($order->products[$i]['attributes'][$j]['price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . ')';
	  echo '</i></small></nobr>';
	}
  }

  echo '			</td>' . "\n" .
	   '			<td class="dataTableContent" valign="top">' . $order->products[$i]['model'] . '</td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n";
  echo '		  </tr>' . "\n";
}
?>
	  <tr>
		<td align="right" colspan="8"><table border="0" cellspacing="0" cellpadding="2">
<?php
for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) {
  echo '			  <tr>' . "\n" .
	   '				<td align="right" class="smallText">' . $order->totals[$i]['title'] . '</td>' . "\n" .
	   '				<td align="right" class="smallText">' . $order->totals[$i]['text'] . '</td>' . "\n" .
	   '			  </tr>' . "\n";
}
?>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td class="main"><table border="1" cellspacing="0" cellpadding="5">
	  <tr>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_DATE_ADDED; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_CUSTOMER_NOTIFIED; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_STATUS; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
	  </tr>
<?php
$orders_history_query = tep_db_query("select orders_status_id, date_added, customer_notified, comments from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . tep_db_input($oID) . "' order by date_added");
if (tep_db_num_rows($orders_history_query)) {
  while ($orders_history = tep_db_fetch_array($orders_history_query)) {
	echo '		  <tr>' . "\n" .
		 '			<td class="smallText" align="center">' . tep_datetime_short($orders_history['date_added']) . '</td>' . "\n" .
		 '			<td class="smallText" align="center">';
	if ($orders_history['customer_notified'] == '1') {
	  echo tep_image(DIR_WS_ICONS . 'tick.gif', ICON_TICK) . "</td>\n";
	} else {
	  echo tep_image(DIR_WS_ICONS . 'cross.gif', ICON_CROSS) . "</td>\n";
	}
	echo '			<td class="smallText">' . $orders_status_array[$orders_history['orders_status_id']] . '</td>' . "\n" .
		 '			<td class="smallText">' . nl2br(tep_db_output($orders_history['comments'])) . ' </td>' . "\n" .
		 '		  </tr>' . "\n";
  }
} else {
	echo '		  <tr>' . "\n" .
		 '			<td class="smallText" colspan="5">' . TEXT_NO_ORDER_HISTORY . '</td>' . "\n" .
		 '		  </tr>' . "\n";
}
?>
	</table></td>
  </tr>
  <tr>
	<td class="main"><br><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
  </tr>
  <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=update_order'); ?>
	<td class="main"><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td><table border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo tep_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_NOTIFY_CUSTOMER; ?></b> <?php echo tep_draw_checkbox_field('notify', '', true); ?></td>
			<td class="main"><b><?php echo ENTRY_NOTIFY_COMMENTS; ?></b> <?php echo tep_draw_checkbox_field('notify_comments', '', true); ?></td>
		  </tr>
</table></td>
		<td valign="top"><?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?></td>
<!-- googlecheckout Tracking Number -->
<?php 
// orders_status == STATE_PROCESSING -> Processing before delivery

if(strpos($order->info['payment_method'], 'Google')!= -1 && $order->info['orders_status'] == GC_STATE_PROCESSING){
		echo '<td><table border="0" cellpadding="3" cellspacing="0" width="100%">   
			<tbody>
				<tr>  
					<td style="border-top: 2px solid rgb(255, 255, 255); border-right: 2px solid rgb(255, 255, 255);" nowrap="nowrap" colspan="2">
							<b>Shipping Information</b>  
					</td>  
				</tr>
				<tr>  
					<td nowrap="nowrap" valign="middle" width="1%">  
						<font size="2">  
							<b>Tracking:</b>  
						</font>  
					</td>  
					<td style="border-right: 2px solid rgb(255, 255, 255); border-bottom: 2px solid rgb(255, 255, 255);" nowrap="nowrap">   
						<input name="tracking_number" style="color: rgb(0, 0, 0);" id="trackingBox" size="20" type="text">   
					</td>  
				</tr>  
				<tr>  
					<td nowrap="nowrap" valign="middle" width="1%">  
						<font size="2">  
							<b>Carrier:</b>  
						</font>  
					</td>  
					<td style="border-right: 2px solid rgb(255, 255, 255);" nowrap="nowrap">  
						<select name="carrier_select" style="color: rgb(0, 0, 0);" id="carrierSelect">  
							<option value="select" selected="selected">
							 Select ...  
							</option>   
							<option value="USPS">
							 USPS  
							</option>   
							<option value="DHL">
							 DHL  
							</option>   
							<option value="UPS">
							 UPS  
							</option>   
							<option value="Other">
							 Other  
							</option>   
							<option value="FedEx">
							 FedEx  
							</option>   
						</select>  
					</td>  
				</tr>	 
			</tbody> 
		</table></td>';

}
?>
<!-- end googlecheckout Tracking Number -->
	  </tr>
	</table></td>
	  </tr>
	</table></td>
  </form></tr>
  <tr>
	<td colspan="2" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
  </tr>
<?php
 } else {
?>
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr><?php echo tep_draw_form('orders', FILENAME_ORDERS, '', 'get'); ?>
			<td class="smallText" align="right"><?php echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('oID', '', 'size="12"') . tep_draw_hidden_field('action', 'edit'); ?></td>
		  </form></tr>
		  <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, '', 'get'); ?>
			<td class="smallText" align="right"><?php echo HEADING_TITLE_STATUS . ' ' . tep_draw_pull_down_menu('status', array_merge(array(array('id' => '', 'text' => TEXT_ALL_ORDERS)), $orders_statuses), '', 'onChange="this.form.submit();"'); ?></td>
		  </form></tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
<?php
if (isset($HTTP_GET_VARS['cID'])) {
  $cID = tep_db_prepare_input($HTTP_GET_VARS['cID']);
  $orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";
} elseif (isset($HTTP_GET_VARS['status']) && is_numeric($HTTP_GET_VARS['status']) && ($HTTP_GET_VARS['status'] > 0)) {
  $status = tep_db_prepare_input($HTTP_GET_VARS['status']);
  $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";
} else {
  $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";
}
$orders_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $orders_query_raw, $orders_query_numrows);
$orders_query = tep_db_query($orders_query_raw);
while ($orders = tep_db_fetch_array($orders_query)) {
if ((!isset($HTTP_GET_VARS['oID']) || (isset($HTTP_GET_VARS['oID']) && ($HTTP_GET_VARS['oID'] == $orders['orders_id']))) && !isset($oInfo)) {
	$oInfo = new objectInfo($orders);
  }

  if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) {
	echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '\'">' . "\n";
  } else {
	echo '			  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '\'">' . "\n";
  }
?>
			<td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $orders['customers_name']; ?></td>
			<td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td>
			<td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td>
			<td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td>
			<td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
}
?>
		  <tr>
			<td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="smallText" valign="top"><?php echo $orders_split->display_count($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_ORDERS); ?></td>
				<td class="smallText" align="right"><?php echo $orders_split->display_links($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page'], tep_get_all_get_params(array('page', 'oID', 'action'))); ?></td>
			  </tr>
			</table></td>
		  </tr>
		</table></td>
<?php
 $heading = array();
 $contents = array();

 switch ($action) {
case 'delete':
  $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_ORDER . '</b>');

  $contents = array('form' => tep_draw_form('orders', FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=deleteconfirm'));
  $contents[] = array('text' => TEXT_INFO_DELETE_INTRO . '<br><br><b>' . $cInfo->customers_firstname . ' ' . $cInfo->customers_lastname . '</b>');
  $contents[] = array('text' => '<br>' . tep_draw_checkbox_field('restock') . ' ' . TEXT_INFO_RESTOCK_PRODUCT_QUANTITY);
  $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
  break;
default:
  if (isset($oInfo) && is_object($oInfo)) {
	$heading[] = array('text' => '<b>[' . $oInfo->orders_id . ']  ' . tep_datetime_short($oInfo->date_purchased) . '</b>');

	$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a>');
	$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a>');
	$contents[] = array('text' => '<br>' . TEXT_DATE_ORDER_CREATED . ' ' . tep_date_short($oInfo->date_purchased));
	if (tep_not_null($oInfo->last_modified)) $contents[] = array('text' => TEXT_DATE_ORDER_LAST_MODIFIED . ' ' . tep_date_short($oInfo->last_modified));
	$contents[] = array('text' => '<br>' . TEXT_INFO_PAYMENT_METHOD . ' '  . $oInfo->payment_method);
  }
  break;
 }

 if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
echo '			<td width="25%" valign="top">' . "\n";

$box = new box;
echo $box->infoBox($heading, $contents);

echo '			</td>' . "\n";
 }
?>
	  </tr>
	</table></td>
  </tr>
<?php
 }
?>
</table></td>
<!-- body_text_eof //-->
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Edited by Knappy
Posted
Hi

 

How is it going?

 

Looking good. Google is working like it should. Got the SSL setup for the site and is working like it should.

Posted
Looking good. Google is working like it should. Got the SSL setup for the site and is working like it should.

 

Hi

 

What GC putting orders in to you admin?

have you tested with a order when not logged in dose it create a account for you?

Posted
Hi

 

What GC putting orders in to you admin?

have you tested with a order when not logged in dose it create a account for you?

 

 

No it doesn't and it also doesn't update the stock. Not really a big deal though.

 

Yes I have and yes it creates a new google account.

Posted
No it doesn't and it also doesn't update the stock. Not really a big deal though.

 

Yes I have and yes it creates a new google account.

 

Hi

 

ok

 

This will work for the time being but at some point GC may try to stop this and your account so you will need to look into getting this fully working in the not so near future (also you will get error email's from GC on a Day to Day bases until it is fully working)?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...