Jump to content


Corporate Sponsors


Latest News: (loading..)

- - - - -

Offical Google Checkout module for osCommerce Support Thread


1175 replies to this topic

#1041 lone gunman

  • Community Member
  • 10 posts
  • Real Name:Lone Gunman

Posted 15 October 2009, 05:58

i just installed google check out and now i get this error... Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/briansla/public_html/lorisleather.com/includes/classes/order.php on line 295 on checkout_shipping.php. heres the catalog/admin/order.php file

<?php
/*
  $Id: orders.php,v 1.112 2003/06/29 22:50:52 hpdl Exp $
  $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; ?></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'] . '&nbsp;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>&nbsp;<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'])) . '&nbsp;</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_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; ?>&nbsp;</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>&nbsp;' . $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>'; } ?>&nbsp;</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 . ']&nbsp;&nbsp;' . 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'); ?>


#1042 cmjennings21

  • Community Member
  • 108 posts
  • Real Name:Chris

Posted 22 October 2009, 20:46

I've just installed the Google checkout. When I goto shopping_cart.php I get the error cannot redeclare class ot_subtotal{include modules order total/ot_subtotal.php line 13. I can't find where this is declared initally, does anyone have any clues how to fix it?

#1043 cmjennings21

  • Community Member
  • 108 posts
  • Real Name:Chris

Posted 22 October 2009, 21:45

View Postcmjennings21, on 22 October 2009, 20:46, said:

I've just installed the Google checkout. When I goto shopping_cart.php I get the error cannot redeclare class ot_subtotal{include modules order total/ot_subtotal.php line 13. I can't find where this is declared initally, does anyone have any clues how to fix it?
Found the problem and it was caused by the shipping Estimator contribution I have istalled. this is what I did to resolve

what i recommend is to patch the order_total.php class, and change


while (list(, $value) = each($this->modules)) {
include(DIR_WS_LANGUAGES . $language . '/modules/order_total/' .
$value);
include(DIR_WS_MODULES . 'order_total/' . $value);


$class = substr($value, 0, strrpos($value, '.'));
$GLOBALS[$class] = new $class;
}


to
while (list(, $value) = each($this->modules)) {
include_once(DIR_WS_LANGUAGES . $language .
'/modules/order_total/' . $value);
include_once(DIR_WS_MODULES . 'order_total/' . $value);


$class = substr($value, 0, strrpos($value, '.'));
$GLOBALS[$class] = new $class;
}


this should avoid the error...

Thanks to Ropu

#1044 natashome

  • Community Member
  • 197 posts
  • Real Name:natashome

Posted 26 October 2009, 23:15

Hi

I have installed the latest official GC from their website and i have 4 problems/questions:

1. I added the account in the admin area but on the shopping cart when i click the button nothing happens although the button is active (blue)
2. I would like to have the GC in the Checkout Payment page rather than the shopping cart page
3. Is this working with Amazon payments as well?
4. Is this working with UPS XML as well?

Thank you

#1045 MrE03

  • Community Member
  • 88 posts
  • Real Name:jb

Posted 27 October 2009, 00:24

i installed everything fine, however when it shows the checkout, the shipping is not working with the shipping calculations based on my ups xml or other shipping modules i have integrated with it. I had created the shipping calculations with the generator and replaced the coding in there with the generated one and still the problem exists.

#1046 MrE03

  • Community Member
  • 88 posts
  • Real Name:jb

Posted 27 October 2009, 04:13

so it appears i have gotten the shipping quotes to show up, however they are incorrect. for example, on the oscommerce site, ups ground will say $13.97, but on google checkout shipping it will say $6.89

#1047 web-project

  • Community Member
  • 4,266 posts
  • Real Name:Alex
  • Gender:Male
  • Location:Hertfordshire, UK

Posted 04 November 2009, 21:56

does anyone know when the google checkout module will start support:
gift-message and buyer messages?

Quote

<buyer-messages>
<gift-message to="Road Runner" from="Wile E. Coyote" max-chars="200">
Enjoy these Acme corporation gifts.
Sincerely yours,
W.E.C.
</gift-message>
<delivery-instructions max-chars="100"/>
</buyer-messages>
more details about at URL: http://code.google.com/apis/checkout/developer-old/Google_Checkout_Beta_Advanced_Buyer_Messaging.html
Please read this line: Do you want to find all the answers to your questions? click here. As for contribution database it's located here!
8 people out of 10 don't bother to read installation manuals. I can recommend: if you can't read the installation manual, don't bother to install any contribution yourself.
Before installing contribution or editing/updating/deleting any files, do the full backup, it will save to you & everyone here on the forum time to fix your issues.
Any issues with oscommerce, I am here to help you.

#1048 bluewebco

  • Community Member
  • 37 posts
  • Real Name:Rols
  • Gender:Male

Posted 12 November 2009, 11:37

OSCommerce / Google Checkout Account Mismatch

I would love some help clarifying Google Checkout usage for existing customers. We want to offer GC but if a user uses a company or relative's Google Checkout account for purchase, it does not record this under their existing account. Instead, it creates a new account.

I tried this first with 1.5, and it showed no new order to the logged in customer. I took it back to 1.4.5, installed that, and now it logs the customer into a newly created account under the email they used to purchase through GC.

I thought that this module should be able to record the order under the logged in customer's details? Am I wrong? I'm sure I've seen this in the 1.4.0 changelog. Please can I have some advice on this, it's imperative that this should work this way (like Paypal).

*Please Help* :blink:



In response to natashome:

Quote

2. I would like to have the GC in the Checkout Payment page rather than the shopping cart page

You can do this by including the same Google code from the login or shopping cart page, but it would need to be below the form that contains the other payment modules and the 'continue' button.

R.

Edited by bluewebco, 12 November 2009, 11:38.


#1049 Kratos93

  • Community Member
  • 2 posts
  • Real Name:James Lisbon

Posted 19 November 2009, 04:20

View PostMrE03, on 27 October 2009, 00:24, said:

i installed everything fine, however when it shows the checkout, the shipping is not working with the shipping calculations based on my ups xml or other shipping modules i have integrated with it. I had created the shipping calculations with the generator and replaced the coding in there with the generated one and still the problem exists.

Sorry, I can't help you. I went to download GC and followed instructions for installations from here:
http://code.google.com/p/google-checkout-oscommerce/wiki/Installation_1_5_0#Modified_osCommerce

Using A, I managed to delete all other modules. But following B caused no problems except that I cannot see the GC added to the available modules?

Any tips?

#1050 MrE03

  • Community Member
  • 88 posts
  • Real Name:jb

Posted 19 November 2009, 13:02

actuall when i downloaded from the code.google link i managed to get it working properly except for usps shipping calculation to show up. All the shipping methods (fedex, ups) show but usps. I cant seem to figure out why the usps is not showing.

#1051 mattm58

  • Community Member
  • 40 posts
  • Real Name:Matt

Posted 24 November 2009, 07:41

I just tried installing the official 1.5 (upgrade from 1.45) because I started having problems with the responsehandler file. I can't get anything on the admin side to work. I had to increase the memory size for php to 128M just to get the google_xml_builder.php to run to completion (it takes 15-20 seconds running from command line) but when I try to go to orders.php from the web it takes forever (again running the google_xml_builder.php file) then just gives me a blank page.

I've got 100k+ products on the site, and the products-static file it generates is 120+mb. Where do I modify the code to get it to stop this? I can't even get into the admin side to configure the module.

#1052 datpcstore

  • Community Member
  • 35 posts
  • Real Name:DAT
  • Gender:Male

Posted 25 November 2009, 19:44

How do I disable regular Check Out Button? and leave only Google Check out button?

Can oscommerce be setup with accepting google checkout using credit card information thats been typed in on website? I am only using google checkout now. I know this has worked on another website, but can not contact programmer. I am using v1.5_rc1.

#1053 blr044

  • Community Member
  • 1,009 posts
  • Real Name:Bennett
  • Gender:Male
  • Location:USA

Posted 29 November 2009, 21:07

I am running rc2a and have installed ver 1.4.5_ccs - 09/27/2007

As per the read me instructions at step 3, I entered http://domain-name/googlecheckout/responaehandler.php and enter. I get a popup window asking for password and id. This is what it ask:

Quote

The server brs-giftshop.com at GoogleCheckout PHPSample Code requires a username and password.

Warning: This server is requesting that your username and password be sent in an insecure manner (basic authentication without a secure connection).

What is this referring to? MY admin, cpanel or what? Now I did try using info fro my google accounts. When i enter that info I get this error messaage:

Quote

Fatal error: Call to a member function add_current_page() on a non-object in /home/XXXX/XXXXXX/includes/application_top.php on line 312

This is what line 312 contains:

  $navigation->add_current_page();

Any ideas?

Thanks.

Bennett

#1054 ricksteruk2005

  • Community Member
  • 268 posts
  • Real Name:ricky
  • Gender:Male

Posted 30 November 2009, 20:11

Hi all

I have a bit of a problem with this module, I have it installed and working nearly correctly. I can order somthing and pay via google with no problems, the communication comes back to OSC and the order shows in admin, however if a customer orders more than one item, in orders.php I can only see the first item but the total price shows the cost of the entire order.
I dont help with templates (thats what the seller is for)

th search function will often help, when it dont try this in google.

site:http://forums.oscommerce.com then your search word

#1055 steve_spaces

  • Community Member
  • 43 posts
  • Real Name:steve
  • Gender:Male
  • Location:UK

Posted 30 November 2009, 20:16

Just an idea, and i don't know if this has been done before. But at the moment i have the google contrib installed. What happens is in shopping_cart.php i get two options either to go through normal checkout or pay through google checkout. If i select to go through the normal checkout it takes me to checkout_confirmation.php where i can select google checkout as my only payment option, and the shipping gets calculated. Then when i hit confirm order it takes me back to shopping_cart.php. I then hit google checkout and it has my shipping calculations added. I think?

If so i was thinking that if checkout_confirmation.php could send me to a different page ie shopping_cart2.php then on that page i could remove the normal checkout button, and the only option would be to pay via google checkout, which would then add my calculated shipping. I could then remove googloe checkout from the normal shopping_cart.php, so that people would need to to register and checkout in the normal way, with shipping calculated, and the final step would be to pay through google checkout.

That seems pretty simple, but am i way off here??

Thanks

#1056 blr044

  • Community Member
  • 1,009 posts
  • Real Name:Bennett
  • Gender:Male
  • Location:USA

Posted 01 December 2009, 15:48

I went through in checking if something was missed or what. I open FF and entered http://domain-name.com/googlecheckout/responsehandler.php and entered. Then I see a see a popup "Authentication Required" window. It reads as this:

Quote

a username and password are being requested by http:// domain-name.com. This site says: "GoogleCheckout PHPSampleCode"
I have tried different passwords, but noting works. I have entered info using my info for my admin side, cpanel, and google accounts.

No instructions says to try this first before going any futher. Now my googlecheckout is in installed at admin -> module -> payment. But no settings is in there yet. So am I to bypass instructions for a bit to enter this info then do the test?

Bennett

#1057 blr044

  • Community Member
  • 1,009 posts
  • Real Name:Bennett
  • Gender:Male
  • Location:USA

Posted 06 December 2009, 17:32

Hope someone is still around here, for I see no entries since November 2.

I did emimate the the window asking for id and password. Now when I enter http://brs-giftshop.com/googlecheckout/responsehandler.php in borwser window, I get an internal server error.

Even though the full path is set in admin/htaccess.php - /home/XXXX/public_html/googlecheckout

But maybe, could it be that my admin has been renamed to XXXXX. So what file do I need to change admin to XXXXX?

Thanks.

#1058 maxtors

  • Community Member
  • 33 posts
  • Real Name:max

Posted 22 December 2009, 07:25

Hi i have v1.5 and it works fine but my orders.php page takes 20 to 30 sec to load anyone else have this problem or know how i can fix this asap thanks



View Postmattm58, on 24 November 2009, 07:41, said:

I just tried installing the official 1.5 (upgrade from 1.45) because I started having problems with the responsehandler file. I can't get anything on the admin side to work. I had to increase the memory size for php to 128M just to get the google_xml_builder.php to run to completion (it takes 15-20 seconds running from command line) but when I try to go to orders.php from the web it takes forever (again running the google_xml_builder.php file) then just gives me a blank page.

I've got 100k+ products on the site, and the products-static file it generates is 120+mb. Where do I modify the code to get it to stop this? I can't even get into the admin side to configure the module.


#1059 sammedit

  • Community Member
  • 16 posts
  • Real Name:B
  • Gender:Male

Posted 05 January 2010, 01:19

Hello all,
I think this is the most complicated contribution I have ever tried to install. It took me three installs to get it working and I still have a few bugs. I was hoping someone who had Google Checkout installed correctly could check something for me. I set up the merchant calculated shipping last night and it worked great but when I try to set the default merchant calculations in the modules->payment->googlcheckout configuration, it doesn't save them. All other changes I make in the configuration area work fine except the merchant calculations default values. I looked in the database and I think I found where they are supposed to be saved to but the table was empty. I think it is supposed to save it to the MERCHANT_CALCULATED_SHIPPING in the google_configuration table. Mine is blank. Is yours? If not, what is in it?

The only other problem I have is that I don't receive notifications from OSc when a google checkout order is placed. I receive all the google emails just fine but not any emails from my store. And I have the box checked to send them in the google configuration area. I have no idea what is causing this. If I can get these two things working, everything will be fixed!

Any ideas would be appreciated! Thank you.

Brent

#1060 mjsnosk8

  • Community Member
  • 5 posts
  • Real Name:Mike

Posted 07 February 2010, 11:18

This contribution has been tough. I think I have it dialed except for one bug.

At the "admin/modules.php?set=payment" page I get an error that prevents the page from loading completely.

The error is "Fatal error: Cannot redeclare class googlecheckout in .../store/includes/modules/payment/googlecheckout.php on line 31"

I have looked everywhere and cannot find another googlecheckout class on the page or in any includes. I have seen similar issues in the forum but none have been resolved.

Anyone know where to look?

Thanks
Mike