dr_lucas Posted October 3, 2004 Share Posted October 3, 2004 Also you would have to diligently perform the same edits required by the ccgv contrib in the correponding includes/modules/payment/paypalcheckout_process.inc.php (or checkout_update.inc.php). <{POST_SNAPBACK}> Greg, I am a bit lost here with this CCGV (latest ver. - 5.10) contribution and the v2.8 IPN. They seemed to work fine together without me updating anything in the IPN, but I just found out that the credit (vouchers) used are not being cleared from the customer cart after he retursn back from paypal payment page, I already had 1 customer using his credit twice on 2 consecutive orders... Other than that they work fine together, the discount is forwarded to paypal and I have no other issues with them. I read in many places that editing the IPN's checkout_process accordingly suppose to fix this issue, but I can't figure what to change because they are totally different files. Below are my modified (the ICW comments are for the ccgv mod of course) /catalog/checkout_process.php and my original v2.8 /catalog//includes/modules/payment/paypal/catalog/checkout_process.inc.php Thanks in advance. <?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 (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; // load the before_process function from the payment modules $payment_modules->before_process(); require(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'], 'date_purchased' => 'now()', 'orders_status' => $order->info['order_status'], 'currency' => $order->info['currency'], 'currency_value' => $order->info['currency_value']); 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); } // 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 tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL')); require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> /catalog//includes/modules/payment/paypal/catalog/checkout_process.inc.php: <?php /* $Id: checkout_process.inc.php,v 2.8 2004/09/11 devosc Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com DevosC, Developing open source Code http://www.devosc.com Copyright (c) 2003 osCommerce Copyright (c) 2004 DevosC.com Released under the GNU General Public License */ global $payment_modules, $shipping_modules, $order, $currencies, $cart, $PayPal_osC, $customer_id, $sendto, $billto, $shipping, $payment, $language, $currency, $languages_id, $order_totals; require_once(DIR_WS_INCLUDES . 'modules/payment/paypal/database_tables.inc.php'); if(!class_exists('order_total')) { include_once(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' => $this->codeTitle, '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, 'last_modified' => 'now()', 'currency' => $order->info['currency'], 'currency_value' => $order->info['currency_value']); $session_exists = false; if(tep_session_is_registered('PayPal_osC')) { $orders_session_query = tep_db_query("select osi.orders_id, o.payment_id from " . TABLE_ORDERS_SESSION_INFO . " osi left join " . TABLE_ORDERS . " o on osi.orders_id = o.orders_id where osi.txn_signature ='" . tep_db_input($PayPal_osC->txn_signature) . "'"); $orders_check = tep_db_fetch_array($orders_session_query); //Now check to see whether order session info exists AND that this order //does not currently have an IPN. if ($orders_check['orders_id'] > 0 && $orders_check['payment_id'] == '0' ) { $session_exists = true; $this->orders_id = $orders_check['orders_id']; } } if($session_exists) { tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', "orders_id = '" . (int)$this->orders_id . "'"); } else { $sql_data_array['date_purchased'] = 'now()'; tep_db_perform(TABLE_ORDERS, $sql_data_array); $this->orders_id = tep_db_insert_id(); } if($session_exists) { tep_db_query("delete from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$this->orders_id . "'"); } for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) { $sql_data_array = array('orders_id' => (int)$this->orders_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); } $sql_data_array = array('orders_status_id' => MODULE_PAYMENT_PAYPAL_PROCESSING_STATUS_ID, 'date_added' => 'now()', 'customer_notified' => 0, 'comments' => $order->info['comments']); if($session_exists) { tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array, 'update', "orders_id = '" . (int)$this->orders_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$this->orders_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$this->orders_id . "'"); } else { $sql_data_array['orders_id'] = $this->orders_id; tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array); } for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { $sql_data_array = array('orders_id' => (int)$this->orders_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(); //------insert customer choosen option to order-------- $attributes_exist = '0'; 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' => (int)$this->orders_id, 'orders_products_id' => $order_products_id, 'products_options_id' => $order->products[$i]['attributes'][$j]['option_id'], 'products_options' => $attributes_values['products_options_name'], 'products_options_values_id' => $order->products[$i]['attributes'][$j]['value_id'], '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); } } } // store the session info for notification update - gsb $sql_data_array = array('sendto' => $sendto, 'billto' => $billto, 'firstname' => $order->billing['firstname'], 'lastname' => $order->billing['lastname'], 'payment' => $payment, 'payment_title' => $this->codeTitle, 'payment_amount' => $this->grossPaymentAmount($this->currency()), 'payment_currency' => $this->currency(), 'payment_currency_val' => $currencies->get_value($this->currency()), 'language' => $language, 'language_id' => $languages_id, 'currency' => $currency, 'currency_value' => $currencies->get_value($currency), 'content_type' => $order->content_type, 'txn_signature' => $this->setTransactionID()); if($session_exists) { tep_db_perform(TABLE_ORDERS_SESSION_INFO, $sql_data_array, 'update', "orders_id = '" . (int)$this->orders_id . "'"); $PayPal_osC->txn_signature = $this->digest; } else { $sql_data_array['orders_id'] = (int)$this->orders_id; tep_db_perform(TABLE_ORDERS_SESSION_INFO, $sql_data_array); $PayPal_osC = new PayPal_osC($this->orders_id,$this->digest); tep_session_register('PayPal_osC'); } require(DIR_WS_INCLUDES . 'modules/payment/paypal/catalog/checkout_splash.inc.php'); ?> Quote Did I help you? Click "Like" or "Thanks"! It's free of charge. :)My contributions:Total Configuration (newly updated 07/2018, for both osC 2.2 and 2.3.4.1 BS Frozen CE)User Tracking with Admin 1.0 (newly updated 07/2018)FedEx - Web Services v9, FAQ System , Who's Online Enhancement, Order Editor, MoneyBookers IPN, Ship in Cart (MS2), Admin Products Paging, Margin Report v1.00, 2Checkout INS / IPN (Instant Notification System) for MS2.2, Visitor Web Stats, Time Zone Offset - Adjust to match your location, Category Meta Tags Link to comment Share on other sites More sharing options...
royalfunk Posted October 3, 2004 Share Posted October 3, 2004 Can anyone take a quick look at my catalog/admin/orders.php file? The install instructions result in an error when I make the required code changes. This is the error I am getting when I make the exact code changes that the install file requires... Parse error: parse error, unexpected T_STRING, expecting T_CASE or T_DEFAULT or '}' in /home/username/public_html/store/admin/orders.php on line 46 I have been banging my head on this for about 2 weeks now and cannot figure out what is wrong. Thanks! -Aaron Quote Link to comment Share on other sites More sharing options...
wendys Posted October 4, 2004 Share Posted October 4, 2004 Mikey, I'm having exactly the same problem. I posted it under Strider's CCGV thread and at least one person said that he is experiencing the same problem. I have tried both Paypal v0.981 and then this one (v2.8) and the results are the same. This is really a pain and there must be some error when these two contributions are combined. Wendy Greg,I am a bit lost here with this CCGV (latest ver. - 5.10) contribution and the v2.8 IPN. They seemed to work fine together without me updating anything in the IPN, but I just found out that the credit (vouchers) used are not being cleared from the customer cart after he retursn back from paypal payment page, I already had 1 customer using his credit twice on 2 consecutive orders... Other than that they work fine together, the discount is forwarded to paypal and I have no other issues with them. I read in many places that editing the IPN's checkout_process accordingly suppose to fix this issue, but I can't figure what to change because they are totally different files. Quote Link to comment Share on other sites More sharing options...
Jezthomp Posted October 4, 2004 Share Posted October 4, 2004 (edited) Thanks greg for that, put the # where you suggested and i got this? Error SQL-query: # 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 #ALTER TABLE orders ADD payment_id INT( 11 ) DEFAULT '0' NOT NULL; ALTER TABLE orders_products_attributes ADD products_options_id INT( 11 ) DEFAULT '0' NOT NULL :( Any ideas? Edited October 4, 2004 by Jezthomp Quote Link to comment Share on other sites More sharing options...
mijman2 Posted October 4, 2004 Share Posted October 4, 2004 Help please! -Where does stock get subtracted in this script? I am using QTPro and trying to figure out how to alter it to get it to work with each attribures stock! Thanks so much, Steve Quote Link to comment Share on other sites More sharing options...
dr_lucas Posted October 5, 2004 Share Posted October 5, 2004 (edited) Mikey, I'm having exactly the same problem.? I posted it under Strider's CCGV thread and at least one person said that he is experiencing the same problem.? I have tried both Paypal v0.981 and then this one (v2.8) and the results are the same.? This is really a pain and there must be some error when these two contributions are combined. Wendy I don't think there is error when they are combined, but we do need to make some more (probably minor) modifications to the IPN checkout_process file (maybe other files too?). Hopefully Greg can give us some more info... :rolleyes: Edited October 5, 2004 by dr_lucas Quote Did I help you? Click "Like" or "Thanks"! It's free of charge. :)My contributions:Total Configuration (newly updated 07/2018, for both osC 2.2 and 2.3.4.1 BS Frozen CE)User Tracking with Admin 1.0 (newly updated 07/2018)FedEx - Web Services v9, FAQ System , Who's Online Enhancement, Order Editor, MoneyBookers IPN, Ship in Cart (MS2), Admin Products Paging, Margin Report v1.00, 2Checkout INS / IPN (Instant Notification System) for MS2.2, Visitor Web Stats, Time Zone Offset - Adjust to match your location, Category Meta Tags Link to comment Share on other sites More sharing options...
akkinmore Posted October 5, 2004 Share Posted October 5, 2004 Hi Can anyone help me. I just installed the latest contribute. When I tried to test this contrib using credit card, nothing happen??? I can't complete the order. Anyone tells me what went wrong. I activated the test mode in the admin. Any ideas??? Thanks :) -------------- trying to get it correct Quote Link to comment Share on other sites More sharing options...
Jezthomp Posted October 5, 2004 Share Posted October 5, 2004 Any idea why the sql is not uploaded even after you suggested the # Greg? Cheers:) Quote Link to comment Share on other sites More sharing options...
♥devosc Posted October 5, 2004 Author Share Posted October 5, 2004 Jezthomp, The queries in the sql script should all have a semi-colon at the end, from your above post I couldn't see one on the second query but not sure whether that was a posting issue etc... CCGV, I just had a quick look, it seems that some of these statements need to be in the checkout updateProducts class function; At the moment I don't want to make suggestions without the ability to test etc, and also I have asked 2 others who are more in know about CCGV to make a more formal response to this matter since I don't have the time at present to figure it out etc... Hopefully one of them will respond soon....... Regards, Greg. Quote "Any fool can know. The point is to understand." -- Albert Einstein Link to comment Share on other sites More sharing options...
dr_lucas Posted October 6, 2004 Share Posted October 6, 2004 Hopefully one of them will respond soon....... <{POST_SNAPBACK}> Hopefully... :rolleyes: Quote Did I help you? Click "Like" or "Thanks"! It's free of charge. :)My contributions:Total Configuration (newly updated 07/2018, for both osC 2.2 and 2.3.4.1 BS Frozen CE)User Tracking with Admin 1.0 (newly updated 07/2018)FedEx - Web Services v9, FAQ System , Who's Online Enhancement, Order Editor, MoneyBookers IPN, Ship in Cart (MS2), Admin Products Paging, Margin Report v1.00, 2Checkout INS / IPN (Instant Notification System) for MS2.2, Visitor Web Stats, Time Zone Offset - Adjust to match your location, Category Meta Tags Link to comment Share on other sites More sharing options...
Jezthomp Posted October 7, 2004 Share Posted October 7, 2004 It did have a semi-colon. Taken from sql #ALTER TABLE orders ADD payment_id INT( 11 ) DEFAULT '0' NOT NULL; ALTER TABLE orders_products_attributes ADD products_options_id INT( 11 ) DEFAULT '0' NOT NULL; ALTER TABLE orders_products_attributes ADD products_options_values_id INT( 11 ) DEFAULT '0' NOT NULL; What does the Sql error mean then? :( Thankyou for you help greg Quote Link to comment Share on other sites More sharing options...
Jezthomp Posted October 7, 2004 Share Posted October 7, 2004 Well couldnt get that to work so used the upgrade from v2.8 sql even though i was on v2.7 and seems to work ok. But it still doesnt transfer the cart amount to the paypal side????? Doesny anybody know how or if it even can be done to transfer the cart contents so user doesnt have to input it themselfs??? Thankyou for any help, getting desperate now :( Quote Link to comment Share on other sites More sharing options...
Jezthomp Posted October 7, 2004 Share Posted October 7, 2004 Oh i know cannot test the IPN now either. I just get a page cannot be displayed at this address http://uvproducts.co.uk/catalog/catalog/ipn.php I have only changed the files that come with v2.9 no actualy code changes cause they all looked to same from what i did in v2.7 like the payment module 'paypal' etc Quote Link to comment Share on other sites More sharing options...
♥devosc Posted October 7, 2004 Author Share Posted October 7, 2004 there's an extra /catalog/ reference in the above url, check your admin config somethings wrong. Go for v2.9, have a quick look between the sql script between that of v2.8 and v2.9, if there is any syntax error should be easy to spot. v2.9 will give you the best results... Quote "Any fool can know. The point is to understand." -- Albert Einstein Link to comment Share on other sites More sharing options...
Jezthomp Posted October 8, 2004 Share Posted October 8, 2004 I'm sorry to be stupid but not sure how to do either of what you suggested. I never know how to look at the sql in phpmyadmin. Thankyou :) Quote Link to comment Share on other sites More sharing options...
blucollarguy Posted October 9, 2004 Share Posted October 9, 2004 Okay folks, I apologize if this has already been covered in this thread, I really have tried to solve my own problem. I have installed v2.8 in a clean environment and been testing now. All seems to work as far as actually processing all orders, all totals are correct. When I run a test with IPN test panel, I end up seeing a blank page and no information gets passed. When I place an order, I receive PP's payment email and such but no IPN's are posting back at my website. I must have a config problem somewhere, but I can't find it. During the test, I do get sent to correct address(catalog/ipn.php) but nothing happens, just blank page, no post, no update. This is a great peice of work and I really need it for this client, I am using v2.6 on several other sites, but figured I should upgrade since I am also going to install CC/GV. Any ideas or posts where this has been dealt with? Craig :) Quote Happy Coding! Craig Garrison Sr Anything worth having, is worth working for. Multi Vendor Shipping V1.1 Demo Catalog 3 Vendors, each category, "buy" a product from each category to see how MVS works during checkout. Multi Vendor Shipping V1.1 Demo Admin login: webmaster@blucollarsales.com pass: mvs_demo MVS Thread: Multi-Vendor Shipping My contribs: Download Multi Vendor Shipping V1.1 Vendor Email Vendor Info in easypopulate EZ Price Updater And more to come! Link to comment Share on other sites More sharing options...
blucollarguy Posted October 9, 2004 Share Posted October 9, 2004 Some additional info: the debug emails ------------------------------------------------------Unknown Post ------------------------------------------------------ An unknown POST from ***.***.***.*** was received. Are you running any tests? ------------------------------------------------------ PayPal Response ------------------------------------------------------ ------------------------------------------------------ Connection Type ------------------------------------------------------ curl: 1 transport: domain: www.paypal.com port: ------------------------------------------------------ Email and Business ID config ------------------------------------------------------ Store Configuration Settings Primary PayPal Email Address: MYSTORE@(^&$^&*.net Business ID: info@@$$&^@$%.com ------------------------------------------------------ PayPal Configuration Settings Primary PayPal Email Address: Business ID: PayPal Transaction ID: ------------------------------------------------------ Attention! ------------------------------------------------------ This is email has NOT been sent by PayPal. You have received this email via the osCommerce PayPal_Shopping_Cart_IPN Contribution To discontinue receiving this notice disable 'Debug Email Notifications' in your osCommerce PayPal configuration panel. I notice that there is no info in the "PayPal Configuration Settings", is this normal from the test panel? Does this help anyone? It does not tell me a $@#^ thing. I am beginning to get frustrated. I thought maybe the Digest Key was the issue, but all changes there make no differnce. Have double checked the email addresses, if the Business ID address was wrong, I wouldn't be able to pay anyone anyway right? So if I can send the payment fine and get redirected back to the site fine, then that should mean the email addresses are ok, right? Have gone back through the install and can't find anything missing or not right. Re-uploaded all files to make sure no corruption took place. Installed CC/GV in test environment and still everything works beautifully except for the IPN info not posting at all. What have I done wrong? Craig :( Quote Happy Coding! Craig Garrison Sr Anything worth having, is worth working for. Multi Vendor Shipping V1.1 Demo Catalog 3 Vendors, each category, "buy" a product from each category to see how MVS works during checkout. Multi Vendor Shipping V1.1 Demo Admin login: webmaster@blucollarsales.com pass: mvs_demo MVS Thread: Multi-Vendor Shipping My contribs: Download Multi Vendor Shipping V1.1 Vendor Email Vendor Info in easypopulate EZ Price Updater And more to come! Link to comment Share on other sites More sharing options...
blucollarguy Posted October 9, 2004 Share Posted October 9, 2004 Never mind. what's it I see here from someone's signature,"PEBCAK". That's me! Mixed up code from v2.6 and v2.8. Just plain stupid mistake. Craig :) Quote Happy Coding! Craig Garrison Sr Anything worth having, is worth working for. Multi Vendor Shipping V1.1 Demo Catalog 3 Vendors, each category, "buy" a product from each category to see how MVS works during checkout. Multi Vendor Shipping V1.1 Demo Admin login: webmaster@blucollarsales.com pass: mvs_demo MVS Thread: Multi-Vendor Shipping My contribs: Download Multi Vendor Shipping V1.1 Vendor Email Vendor Info in easypopulate EZ Price Updater And more to come! Link to comment Share on other sites More sharing options...
mijman2 Posted October 9, 2004 Share Posted October 9, 2004 I have gotten an older version of paypal IPN and QTPro working together if anyone is interested... PM me... Quote Link to comment Share on other sites More sharing options...
ppollock Posted October 11, 2004 Share Posted October 11, 2004 Hi, I recently installed 2.8 and it worked wonderfully. I then installed the CCGV contribution, which also seems to work just fine except if the customer tries to pay by PayPal, as they cat passed to paypal, this error occurs: Fatal error: Cannot redeclare class paypal in /usr/local/psa/home/vhosts/day3.co.uk/httpdocs/catalog/includes/modules/payment/paypal.php on line 20 Any ideas what this might be? Many thanks, Peter Quote Link to comment Share on other sites More sharing options...
blucollarguy Posted October 11, 2004 Share Posted October 11, 2004 (edited) Hi, I recently installed 2.8 and it worked wonderfully. I then installed the CCGV contribution, which also seems to work just fine except if the customer tries to pay by PayPal, as they cat passed to paypal, this error occurs: Fatal error: Cannot redeclare class paypal in /usr/local/psa/home/vhosts/day3.co.uk/httpdocs/catalog/includes/modules/payment/paypal.php on line 20 Any ideas what this might be? Many thanks, Peter <{POST_SNAPBACK}> I had this problem with the "order_total" class, check your files for duplicates, mine was in checkout_confirmation.php, a duplicate "requires" like this: require(DIR_WS_CLASSES . 'order_total.php'); delete the extra one and you should be in good shape. Crag :) Edited October 11, 2004 by blucollarguy Quote Happy Coding! Craig Garrison Sr Anything worth having, is worth working for. Multi Vendor Shipping V1.1 Demo Catalog 3 Vendors, each category, "buy" a product from each category to see how MVS works during checkout. Multi Vendor Shipping V1.1 Demo Admin login: webmaster@blucollarsales.com pass: mvs_demo MVS Thread: Multi-Vendor Shipping My contribs: Download Multi Vendor Shipping V1.1 Vendor Email Vendor Info in easypopulate EZ Price Updater And more to come! Link to comment Share on other sites More sharing options...
ppollock Posted October 11, 2004 Share Posted October 11, 2004 delete the extra one and you should be in good shape. Crag :) <{POST_SNAPBACK}> Thanks, I tried looking through all the files and can't seem to see where there is duplication.... the funny thing is, it works OK if the customer trie to pay by Nochex or Check/Money Order, it's just PayPal that doesn't work, although it worked fine before I installed the CCGV contrib. Any suggestions anyone? Peter Quote Link to comment Share on other sites More sharing options...
blucollarguy Posted October 11, 2004 Share Posted October 11, 2004 Thanks, I tried looking through all the files and can't seem to see where there is duplication.... the funny thing is, it works OK if the customer trie to pay by Nochex or Check/Money Order, it's just PayPal that doesn't work, although it worked fine before I installed the CCGV contrib. Any suggestions anyone? Peter <{POST_SNAPBACK}> Your issue must be in either checkout_confirmation.php or checkout_process.php. You need to look very closely for ANY duplicate entries. For instance // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); if ($credit_covers) $payment=''; //ICW added for CREDIT CLASS $payment_modules = new payment($payment); could be duped in either file. Craig :) Quote Happy Coding! Craig Garrison Sr Anything worth having, is worth working for. Multi Vendor Shipping V1.1 Demo Catalog 3 Vendors, each category, "buy" a product from each category to see how MVS works during checkout. Multi Vendor Shipping V1.1 Demo Admin login: webmaster@blucollarsales.com pass: mvs_demo MVS Thread: Multi-Vendor Shipping My contribs: Download Multi Vendor Shipping V1.1 Vendor Email Vendor Info in easypopulate EZ Price Updater And more to come! Link to comment Share on other sites More sharing options...
ppollock Posted October 11, 2004 Share Posted October 11, 2004 Your issue must be in either checkout_confirmation.php or checkout_process.php. You need to look very closely for ANY duplicate entries. For instance could be duped in either file. Craig :) <{POST_SNAPBACK}> My checkout_process.php had: // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($payment); if ($credit_covers) $payment=''; //ICW added for CREDIT CLASS $payment_modules = new payment($payment); When I took out the first $payment_modules = new payment($payment); it magically started working. Thanks for posting the code... I was looking for the wrong thing being duplicated! I appreciate your help, best wishes, Peter Quote Link to comment Share on other sites More sharing options...
blucollarguy Posted October 12, 2004 Share Posted October 12, 2004 My checkout_process.php had: // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($payment); if ($credit_covers) $payment=''; //ICW added for CREDIT CLASS $payment_modules = new payment($payment); When I took out the first $payment_modules = new payment($payment); it magically started working. Thanks for posting the code... I was looking for the wrong thing being duplicated! I appreciate your help, best wishes, Peter <{POST_SNAPBACK}> Glad to help, Craig :) Quote Happy Coding! Craig Garrison Sr Anything worth having, is worth working for. Multi Vendor Shipping V1.1 Demo Catalog 3 Vendors, each category, "buy" a product from each category to see how MVS works during checkout. Multi Vendor Shipping V1.1 Demo Admin login: webmaster@blucollarsales.com pass: mvs_demo MVS Thread: Multi-Vendor Shipping My contribs: Download Multi Vendor Shipping V1.1 Vendor Email Vendor Info in easypopulate EZ Price Updater And more to come! Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.