Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[Contribution]Paypal IPN - Devosc


devosc

Recommended Posts

When I thought it had all gone well, i have another problem.

 

When i try to access: http://dogsportif.pozel.co.uk/admin/paypal.php

 

I get this:

 

1146 - Table 'pozel_osc2.TABLE_PAYPAL_IPN_PAYMENT_STATUS' doesn't exist

select payment_status_id, payment_status_name from TABLE_PAYPAL_IPN_PAYMENT_STATUS

[TEP STOP]

 

i wish i knew y!!

 

Also, I processed an order, as a test, but running properly (not in test mode)

 

And everything went ok from the customers side, however no emails were sent from the site, only one to the customer from paypal.

 

 

 

PayPal IPN does not work as stated above, but orders.php works fine, with all details as i would expect. However, under customer notified, there is a big red cross. So this confirms that no emails were sent.

 

 

Any ideas greg??

Link to comment
Share on other sites

  • Replies 2.1k
  • Created
  • Last Reply

Top Posters In This Topic

greg,

 

Below is my checkout_process from the catalog/

 

<?php

/*

  $Id: checkout_process.php,v 1.2.37.2 2004/01/01 14:00:29 Strider Exp $

  $Id: checkout_process.php,v 1.128 2003/07/24 18:00:29 Strider Exp $

  $Id: checkout_process.php,v 1.128 2003/05/28 18:00:29 hpdl Exp $

  $Id: checkout_process.php,v 1.6.2.1 2003/05/03 23:41:23 wilt Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  Copyright © 2003 osCommerce

 

  Released under the GNU General Public License

*/

 

  include('includes/application_top.php');

 

// if the customer is not logged on, redirect them to the login page

  if (!tep_session_is_registered('customer_id')) {

    $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));

    tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));

  }

 

  if (!tep_session_is_registered('sendto')) {

    tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

  }

 

  if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {

    tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

}

 

// avoid hack attempts during the checkout procedure by checking the internal cartID

  if (isset($cart->cartID) && tep_session_is_registered('cartID')) {

    if ($cart->cartID != $cartID) {

      tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

    }

  }

 

  include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

 

// load selected payment module

  require(DIR_WS_CLASSES . 'payment.php');

  if ($credit_covers) $payment=''; //ICW added for CREDIT CLASS

  $payment_modules = new payment($payment);

 

// load the selected shipping module

  require(DIR_WS_CLASSES . 'shipping.php');

  $shipping_modules = new shipping($shipping);

 

  require(DIR_WS_CLASSES . 'order.php');

  $order = new order;

 

  require(DIR_WS_CLASSES . 'order_total.php');

  $order_total_modules = new order_total;

 

  $order_totals = $order_total_modules->process();

 

And here are the revisions to the checkout_process /paypal

 

<?php

/*

  $Id: checkout_process.php,v 2.3 2004/04/28 devosc Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  DevosC, Developing open source Code

  http://www.devosc.com

 

  Copyright © 2003 osCommerce

  Copyright © 2004 DevosC.com

 

  Released under the GNU General Public License

*/

 

  global $payment_modules, $shipping_modules, $order, $currencies, $cart, $customer_id,

        $sendto, $billto, $shipping, $payment, $language, $currency, $languages_id, $order_total_modules;

 

  require(DIR_WS_INCLUDES . 'modules/payment/paypal/database_tables.php');

  //require(DIR_WS_INCLUDES . 'modules/payment/paypal/functions.php');

 

  if(!class_exists('order_total')) {

  include(DIR_WS_CLASSES . 'order_total.php');

  $order_total_modules = new order_total;

  $order_totals = $order_total_modules->process();

  }

 

  $order_totals = $order_total_modules->process();

Link to comment
Share on other sites

1146 - Table 'pozel_osc2.TABLE_PAYPAL_IPN_PAYMENT_STATUS' doesn't exist

select payment_status_id, payment_status_name from TABLE_PAYPAL_IPN_PAYMENT_STATUS

[TEP STOP]

I have looked everywhere, but can't find this table defined anywhere, but know it should be. I guess in the paypal folder, in database_tables.php but there is only the following in there:

 

  define('TABLE_PAYPAL','paypal');
 define('TABLE_PAYPAL_PAYMENT_STATUS','paypal_payment_status');
 define('TABLE_PAYPAL_PAYMENT_STATUS_HISTORY','paypal_payment_status_history');
 define('TABLE_ORDERS_SESSION_INFO', 'orders_session_info');
?>

 

so where has it gone???

Link to comment
Share on other sites

BearHappy,

 

Try Changing:

  if(!class_exists('order_total')) {

  include(DIR_WS_CLASSES . 'order_total.php');

  $order_total_modules = new order_total;

  $order_totals = $order_total_modules->process();

  }

 

  $order_totals = $order_total_modules->process();

To:
  if(!class_exists('order_total')) {

  include(DIR_WS_CLASSES . 'order_total.php');

  $order_total_modules = new order_total;

  $order_totals = $order_total_modules->process();

  }

"Any fool can know. The point is to understand." -- Albert Einstein

Link to comment
Share on other sites

Greg,

 

Any ideas where I am still broke - I have made the changes you suggested....

 

and it still does not support the CCGV...

 

I see that my subtotal does not change and it does not matter if it set to sort 1 or last.

 

Is that the problem with PP IPN and CCGV ????

 

If so any ideas o how to fix that? It alwasy shows teh total of the cart contents.

 

Chris

osC Contributions I have published.

 

Note: Some I only provided minor changes, updates or additions!

Link to comment
Share on other sites

greg, i went through the whole order process, without test mode on, and only received emails from paypal not the OSC store.

 

Is there something wrong, or does a setting need to be changed. I have checked all the settings in OSC admin.

Link to comment
Share on other sites

Hi Chris,

 

Are you using the latest CCGV contrib?

If not and or did you perform the amendment suggested in Noel's post fix link?

How about the sort order?

 

Dunno right now, Noel seems to be only one confirming that it works, and possibly BearHappy?

 

The CCGV contrib is a beast in itself and I currently haven't actually used it, so at present I can only try and read 'bits' of the code for logical reasoning etc...

 

PoZel, first try the IPN Test Panel (Test Mode switched on), and then in Live Mode (ensure correct Primary and Business ID).

"Any fool can know. The point is to understand." -- Albert Einstein

Link to comment
Share on other sites

Chris, after the fix pointed out by Greg, my CCGV does work. I still need to run the numbers through and follow a transaction to its conclusion. The initial observations have been very promising, i.e. it works... The only thing that I have noticed off the bat is that when you start with a gift voucher of say $10, but only purchase $5.00. It will try to credit Paypal the remainder of the gift voucher. I will have to do some more testing and get with Noel on my findings.

 

If you like you can try my sight to see how things work. The site is live so if you buy it I hope you like it. You can however take the transaction all the way to the Paypal login and it will show you your amount and shipping and handling. Below is a discount code you can use to play with. It will give you $5 off your purchase. Let me know if you find anything... :)

 

Discount Code: summer

 

Bearstuff and More

Edited by BearHappy
Link to comment
Share on other sites

Greg,

 

I believe I am up to date w/ 5.10b....

 

Noel was looking in to this for me but had to head cross country and was going to try and check out there....

 

so kinda waiting....

 

interesting though - his sub total adjust for GV or CC but no other one I have been able to look at does this...

 

-----------------

Travis,

 

I am testing yours now - and I see your subtotal doesnt change (nore does mine)... but I get further on your site...

 

did you make any other changes to any thing?????

 

Chris

osC Contributions I have published.

 

Note: Some I only provided minor changes, updates or additions!

Link to comment
Share on other sites

what did I miss???

 

when I make the changes to checkout_process.php it just skips PayPal all together.

I think I have all of the updates for 501b- any one see anything I missed?

This is my catalog/checkout_process.php

 

<?php
/*
 $Id: checkout_process.php,v 1.2 2003/09/24 15:34:25 wilt Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 include('includes/application_top.php');

// if the customer is not logged on, redirect them to the login page
 if (!tep_session_is_registered('customer_id')) {
   $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
   tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
 }
 
 if (!tep_session_is_registered('sendto')) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
 }

 if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
   if ($cart->cartID != $cartID) {
     tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
   }
 }

 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

// load selected payment module
 require(DIR_WS_CLASSES . 'payment.php');
 if ($credit_covers) $payment=''; //ICW added for CREDIT CLASS
 $payment_modules = new payment($payment);

// load the selected shipping module
 require(DIR_WS_CLASSES . 'shipping.php');
 $shipping_modules = new shipping($shipping);

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

 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;

 $order_totals = $order_total_modules->process();

 //************************************************************
 // Authorizenet ADC Direct Connection
 // Make sure the /catalog/includes/class/order.php is included
 // and $order object is created before this!!!
 if(MODULE_PAYMENT_AUTHORIZENET_STATUS) {
  include(DIR_WS_MODULES . 'authorizenet_direct.php');
 }
 //************************************************************

// BOF: WebMakers.com Added: Downloads Controller
 $sql_data_array = array('customers_id' => $customer_id,
                         'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
                         'customers_company' => $order->customer['company'],
                         'customers_street_address' => $order->customer['street_address'],
                         'customers_suburb' => $order->customer['suburb'],
                         'customers_city' => $order->customer['city'],
                         'customers_postcode' => $order->customer['postcode'], 
                         'customers_state' => $order->customer['state'], 
                         'customers_country' => $order->customer['country']['title'], 
                         'customers_telephone' => $order->customer['telephone'], 
                         'customers_email_address' => $order->customer['email_address'],
                         'customers_address_format_id' => $order->customer['format_id'], 
                         'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'], 
                         'delivery_company' => $order->delivery['company'],
                         'delivery_street_address' => $order->delivery['street_address'], 
                         'delivery_suburb' => $order->delivery['suburb'], 
                         'delivery_city' => $order->delivery['city'], 
                         'delivery_postcode' => $order->delivery['postcode'], 
                         'delivery_state' => $order->delivery['state'], 
                         'delivery_country' => $order->delivery['country']['title'], 
                         'delivery_address_format_id' => $order->delivery['format_id'], 
                         'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'], 
                         'billing_company' => $order->billing['company'],
                         'billing_street_address' => $order->billing['street_address'], 
                         'billing_suburb' => $order->billing['suburb'], 
                         'billing_city' => $order->billing['city'], 
                         'billing_postcode' => $order->billing['postcode'], 
                         'billing_state' => $order->billing['state'], 
                         'billing_country' => $order->billing['country']['title'], 
                         'billing_address_format_id' => $order->billing['format_id'], 
                         'payment_method' => $order->info['payment_method'],
// BOF: Lango Added for print order mod 
                         'payment_info' => $GLOBALS['payment_info'],
// EOF: Lango Added for print order mod 
                         'cc_type' => $order->info['cc_type'], 
                         'cc_owner' => $order->info['cc_owner'], 
                         'cc_number' => $order->info['cc_number'], 
                         'cc_expires' => $order->info['cc_expires'], 
                         'date_purchased' => 'now()', 
                         'last_modified' => 'now()',
                         'orders_status' => $order->info['order_status'], 
                         'currency' => $order->info['currency'], 
                         'currency_value' => $order->info['currency_value']);
// EOF: WebMakers.com Added: Downloads Controller
 tep_db_perform(TABLE_ORDERS, $sql_data_array);
 $insert_id = tep_db_insert_id();
 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
   $sql_data_array = array('orders_id' => $insert_id,
                           'title' => $order_totals[$i]['title'],
                           'text' => $order_totals[$i]['text'],
                           'value' => $order_totals[$i]['value'],
                           'class' => $order_totals[$i]['code'],
                           'sort_order' => $order_totals[$i]['sort_order']);
   tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
 }

 $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';
 $sql_data_array = array('orders_id' => $insert_id,
                         'orders_status_id' => $order->info['order_status'],
                         'date_added' => 'now()',
                         'customer_notified' => $customer_notification,
                         'comments' => $order->info['comments']);
 tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

// initialized for the email confirmation
 $products_ordered = '';
 $subtotal = 0;
 $total_tax = 0;

 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
   if (STOCK_LIMITED == 'true') {
     if (DOWNLOAD_ENABLED == 'true') {
       $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
                           FROM " . TABLE_PRODUCTS . " p
                           LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                            ON p.products_id=pa.products_id
                           LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                            ON pa.products_attributes_id=pad.products_attributes_id
                           WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
       $products_attributes = $order->products[$i]['attributes'];
       if (is_array($products_attributes)) {
         $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
       }
       $stock_query = tep_db_query($stock_query_raw);
     } else {
       $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
     }
     if (tep_db_num_rows($stock_query) > 0) {
       $stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
       if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
         $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
       } else {
         $stock_left = $stock_values['products_quantity'];
       }
       tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
       if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
         tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
       }
     }
   }

// Update products_ordered (for bestsellers list)
   tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

   $sql_data_array = array('orders_id' => $insert_id, 
                           'products_id' => tep_get_prid($order->products[$i]['id']), 
                           'products_model' => $order->products[$i]['model'], 
                           'products_name' => $order->products[$i]['name'], 
                           'products_price' => $order->products[$i]['price'], 
                           'final_price' => $order->products[$i]['final_price'], 
                           'products_tax' => $order->products[$i]['tax'], 
                           'products_quantity' => $order->products[$i]['qty']);
   tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
   $order_products_id = tep_db_insert_id();
   $order_total_modules->update_credit_account($i);//ICW ADDED FOR CREDIT CLASS SYSTEM
//------insert customer choosen option to order--------
   $attributes_exist = '0';
   $products_ordered_attributes = '';
   if (isset($order->products[$i]['attributes'])) {
     $attributes_exist = '1';
     for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
       if (DOWNLOAD_ENABLED == 'true') {
         $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename 
                              from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa 
                              left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                               on pa.products_attributes_id=pad.products_attributes_id
                              where pa.products_id = '" . $order->products[$i]['id'] . "' 
                               and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' 
                               and pa.options_id = popt.products_options_id 
                               and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' 
                               and pa.options_values_id = poval.products_options_values_id 
                               and popt.language_id = '" . $languages_id . "' 
                               and poval.language_id = '" . $languages_id . "'";
         $attributes = tep_db_query($attributes_query);
       } else {
         $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
       }
       $attributes_values = tep_db_fetch_array($attributes);

       $sql_data_array = array('orders_id' => $insert_id, 
                               'orders_products_id' => $order_products_id, 
                               'products_options' => $attributes_values['products_options_name'],
                               'products_options_values' => $attributes_values['products_options_values_name'], 
                               'options_values_price' => $attributes_values['options_values_price'], 
                               'price_prefix' => $attributes_values['price_prefix']);
       tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

       if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
         $sql_data_array = array('orders_id' => $insert_id, 
                                 'orders_products_id' => $order_products_id, 
                                 'orders_products_filename' => $attributes_values['products_attributes_filename'], 
                                 'download_maxdays' => $attributes_values['products_attributes_maxdays'], 
                                 'download_count' => $attributes_values['products_attributes_maxcount']);
         tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
       }
       $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
     }
   }
//------insert customer choosen option eof ----
   $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
   $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
   $total_cost += $total_products_price;

   $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
 }
$order_total_modules->apply_credit();//ICW ADDED FOR CREDIT CLASS SYSTEM
// lets start with the email confirmation
 $email_order = STORE_NAME . "\n" . 
                EMAIL_SEPARATOR . "\n" . 
                EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
                EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
                EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
 if ($order->info['comments']) {
   $email_order .= tep_db_output($order->info['comments']) . "\n\n";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . 
                 EMAIL_SEPARATOR . "\n" . 
                 $products_ordered . 
                 EMAIL_SEPARATOR . "\n";

 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
   $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }

 if ($order->content_type != 'virtual') {
   $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . 
                   EMAIL_SEPARATOR . "\n" .
                   tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
 }

 $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
                 EMAIL_SEPARATOR . "\n" .
                 tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";
 if (is_object($$payment)) {
   $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
                   EMAIL_SEPARATOR . "\n";
   $payment_class = $$payment;
   $email_order .= $payment_class->title . "\n\n";
   if ($payment_class->email_footer) { 
     $email_order .= $payment_class->email_footer . "\n\n";
   }
 }
 tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

// send emails to other people
 if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
   tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
 }
  // pager notification NOTE if using paypal must set up filter
if (PAGER_ORDER =='true' && PAGER_ORDER_ADDRESS !='') {
tep_mail('', PAGER_ORDER_ADDRESS, EMAIL_TEXT_SUBJECT, STORE_NAME.' has recieved an on-line order from '.$order->customer['firstname'] . ' ' . $order->customer['lastname'].'.', '', '');}
////
 // Include OSC-AFFILIATE 
 require(DIR_WS_INCLUDES . 'affiliate_checkout_process.php');

// load the after_process function from the payment modules
 $payment_modules->after_process();

 $cart->reset(true);

// unregister session variables used during checkout
 tep_session_unregister('sendto');
 tep_session_unregister('billto');
 tep_session_unregister('shipping');
 tep_session_unregister('payment');
 tep_session_unregister('comments');
if(tep_session_is_registered('credit_covers')) tep_session_unregister('credit_covers');
 $order_total_modules->clear_posts();//ICW ADDED FOR CREDIT CLASS SYSTEM
// BOF: Lango added for print order mod
 tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, 'order_id='. $insert_id, 'SSL'));
// EOF: Lango added for print order mod
 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

osC Contributions I have published.

 

Note: Some I only provided minor changes, updates or additions!

Link to comment
Share on other sites

Chris, not sure what happened or when you installed the authorize.net module but it seems you've totally removed the statement '$payment_modules->before_process();' instead.

"Any fool can know. The point is to understand." -- Albert Einstein

Link to comment
Share on other sites

Chris, I guess I'm not sure how the Gift Voucher module is supposed to work. I thought that the subtotal should be the sum of all of the products in your shopping cart. From there it shows the remainder of the charges, taxes and discounts, giving you a grand total with everything taken into consideration. At least if I was a customer that would be the way I would want to see it. I think I may change my order to better reflect this.

 

Greg, one thing I have noticed, if a customer confirms a purchase on my site which takes them to Paypal, but doesn't complete the login. Should I be seeing the order in my orders. On the admin front page it does show the order "Pending Paypal Notification. But the order doesn't show up in the orders. Now the order does show up in the orders table itself. Perhaps I've missed a piece of code during the install, let me review this...

Link to comment
Share on other sites

Hi, guys, I just reinstalled paypal ipn v2.3...and so far so good, but can't quite understand some questions....like

 

Why doesn't the Auto-Return feature work

 

 

Have you enabled it in your PayPal account profile?

 

but i don't see it where....? :o

 

and

 

what url and how i know that is for my "Instant Payment Notification (IPN) URL:"???

 

Thank you everyone! :D

OS-commerce is great, but with other magical contributions, that is just so "COOL"!

Link to comment
Share on other sites

Greg, I think I've narrowed it down to the below code is not registering the pruchase into the orders_total table. This is probably soemthing that I did, but could you have a look at it. The snippet is the begging of my paypal/checkout_process.php file. The "if" clause is some how keeping it from inserting the order into the order total...

 

<?php

/*

  $Id: checkout_process.php,v 2.3 2004/04/28 devosc Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  DevosC, Developing open source Code

  http://www.devosc.com

 

  Copyright © 2003 osCommerce

  Copyright © 2004 DevosC.com

 

  Released under the GNU General Public License

*/

 

  global $payment_modules, $shipping_modules, $order, $currencies, $cart, $customer_id,

        $sendto, $billto, $shipping, $payment, $language, $currency, $languages_id, $order_total_modules;

 

  require(DIR_WS_INCLUDES . 'modules/payment/paypal/database_tables.php');

  //require(DIR_WS_INCLUDES . 'modules/payment/paypal/functions.php');

 

  if(!class_exists('order_total')) {

  include(DIR_WS_CLASSES . 'order_total.php');

  $order_total_modules = new order_total;

  $order_totals = $order_total_modules->process();

  }

 

  $sql_data_array = array('customers_id' => $customer_id,

                          'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],

                          'customers_company' => $order->customer['company'],

                          'customers_street_address' => $order->customer['street_address'],

                          'customers_suburb' => $order->customer['suburb'],

                          'customers_city' => $order->customer['city'],

                          'customers_postcode' => $order->customer['postcode'],

                          'customers_state' => $order->customer['state'],

                          'customers_country' => $order->customer['country']['title'],

                          'customers_telephone' => $order->customer['telephone'],

                          'customers_email_address' => $order->customer['email_address'],

                          'customers_address_format_id' => $order->customer['format_id'],

                          'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],

                          'delivery_company' => $order->delivery['company'],

                          'delivery_street_address' => $order->delivery['street_address'],

                          'delivery_suburb' => $order->delivery['suburb'],

                          'delivery_city' => $order->delivery['city'],

                          'delivery_postcode' => $order->delivery['postcode'],

                          'delivery_state' => $order->delivery['state'],

                          'delivery_country' => $order->delivery['country']['title'],

                          'delivery_address_format_id' => $order->delivery['format_id'],

                          'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],

                          'billing_company' => $order->billing['company'],

                          'billing_street_address' => $order->billing['street_address'],

                          'billing_suburb' => $order->billing['suburb'],

                          'billing_city' => $order->billing['city'],

                          'billing_postcode' => $order->billing['postcode'],

                          'billing_state' => $order->billing['state'],

                          'billing_country' => $order->billing['country']['title'],

                          'billing_address_format_id' => $order->billing['format_id'],

                          'payment_method' => $order->info['payment_method'],

                          'cc_type' => $order->info['cc_type'],

                          'cc_owner' => $order->info['cc_owner'],

                          'cc_number' => $order->info['cc_number'],

                          'cc_expires' => $order->info['cc_expires'],

                          'orders_status' => MODULE_PAYMENT_PAYPAL_PROCESSING_STATUS_ID,

                          'currency' => $order->info['currency'],

                          'currency_value' => $order->info['currency_value']);

Link to comment
Share on other sites

Greg, nevermind I got it, forgot to declare both modules in the global...

 

  global $payment_modules, $shipping_modules, $order, $currencies, $cart, $customer_id,

        $sendto, $billto, $shipping, $payment, $language, $currency, $languages_id, $order_total_modules, $order_totals;

Link to comment
Share on other sites

Greg: Just wanted to thank you for all the hard work you have done and the great support you have given everyone! Hopefully everyone will be able to contribute back to you once they got their site up and running to make some money.

 

Just a quick question, does anyone have credit card gift voucher, purchase without account, and paypal ipn 2.3 working together? I'm hoping all of these will work together and i'm not sure if theres any conflicts so I thogut I check.

 

Thanks.

Link to comment
Share on other sites

Greg - I must have posted the wrong one - I do have it in there - but still having the same problem where the amount passed is not correct - it is not deducting the coupon.

 

Coupons:1: -$1.00

VT TAX 6.0%: $1.74

Sub-Total: $30.00

United Parcel Service (1 x 1lbs) (Ground): $8.16

Total: $38.90

 

 

and paypal shows:

 

Amount: $30.00 USD

Shipping & Handling: $8.16 USD

Sales Tax: $1.80 USD

Total Amount: $39.96 USD

 

 

This is driving me nuts - I need this fixed and I cant seem to get it - anyone know why - anyone?

Edited by clarocque

osC Contributions I have published.

 

Note: Some I only provided minor changes, updates or additions!

Link to comment
Share on other sites

Just wondering if this is correct for catalog/checkout_success.php

 

This is for Purchase Without Account 0.71 & PayPal 2.3 - Hopefully someone can verify

 

From The original with paypal

 

Find:

 

tep_redirect(tep_href_link(FILENAME_DEFAULT, $notify_string));

}

 

replace it with:

 

//begin PayPal_Shopping_Cart_IPN

tep_redirect(tep_href_link(FILENAME_DEFAULT, $notify_string));

} else if ((isset($HTTP_GET_VARS['action']) && $HTTP_GET_VARS['action'] == 'success')) {

$cart->reset(true);

// unregister session variables used during checkout

tep_session_unregister('sendto');

tep_session_unregister('billto');

tep_session_unregister('shipping');

tep_session_unregister('payment');

tep_session_unregister('comments');

tep_session_unregister('paypal_order_id');

}

//end PayPal_Shopping_Cart_IPN

--------

Original with Purchase:

 

// if the customer is not logged on, redirect them to the shopping cart page

if (!tep_session_is_registered('customer_id')) {

// BoF Purchase Without Account 0.71

tep_redirect(tep_href_link(FILENAME_DEFAULT));

// EoF Purchase Without Account 0.71

}

 

if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'update')) {

$notify_string = 'action=notify&';

$notify = $HTTP_POST_VARS['notify'];

if (!is_array($notify)) $notify = array($notify);

for ($i=0, $n=sizeof($notify); $i<$n; $i++) {

$notify_string .= 'notify[]=' . $notify[$i] . '&';

}

if (strlen($notify_string) > 0) $notify_string = substr($notify_string, 0, -1);

 

// BoF Purchase Without Account 0.71

// tep_redirect(tep_href_link(FILENAME_DEFAULT, $notify_string));

// Added a check for a Guest checkout and cleared the session - 030411

if (tep_session_is_registered('noaccount')) {

tep_session_destroy();

tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL'));

}

else {

tep_redirect(tep_href_link(FILENAME_DEFAULT, $notify_string, 'SSL'));

}

// EoF Purchase Without Account 0.71

}

 

Final ?:

 

 

Thanks

Link to comment
Share on other sites

Something I've wondered about, but managed to ignore until now. :huh:

 

I've got my osCommerce Paypal IPN Transaction Currency set as "Only USD", but today a Paypal order came in in Euros. The order got flagged as a "Pending Paypal Notification", with a note "No IPN history available". Is the order not completed because my transaction currency is set to Only USD, or because the customer just didn't finish? What is supposed to happen if they order using a currency that I don't accept? Cheers.

"Buy the ticket, take the ride..." -HST

Link to comment
Share on other sites

Chris, sounds like you have your Paypal Shopping Cart Method set to Itemized. Try Aggregate, then you only feed Paypal the Total minus Shipping and the Shipping charges. Itemized, I'm guessing allows Paypal to total the order for you, which it appears as though they have made a mistake with your order by not calculating the discount.

Link to comment
Share on other sites

This is driving me nuts!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

If I set it to Aggregate it doesn't pass the S&H but it does hone the coupon - I cant win.

 

ANd the Quantity says 1 (which I can live with)

 

Any ideas?

osC Contributions I have published.

 

Note: Some I only provided minor changes, updates or additions!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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...