Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

radhavallabh

Members
  • Posts

    711
  • Joined

  • Last visited

Everything posted by radhavallabh

  1. Hi, Thanks for this great contribution- I am using Smart Suggest it seems to work perfectly; Just one small issue - That if someone searches for example 'dresses' and i have products listed by name of 'dress' the results appear as 0; Similarly like 'crown' results in 10 products but 'crowns' results in 0 Could you please help me sort it that even if a partial part of the word that is 'dress' from 'dresses' is included in product name then the search results are displayed for the customers. Awaiting your earliest help and response....
  2. Hi, Thanks for this contribution- I am using Site Search Plus and smart suggest it seems to work perfectly; Just one small issue - That if someone searches for example 'dresses' and i have products listed by name of 'dress' , the results appear as 0; Could you please help me sort it that even if a part of the word that is 'dress' from 'dresses' is included in product name then the search results are displayed for the customers. Awaiting your earliest help and response....
  3. I have installed this addon on oscommerce 2.3.4 It is working perfectly I am new to KISS Error reporting But please could you help me figure out how to debug a particular URL like below any special code of the KISSerror contribution to be added to shopping_cart.php...... ............../shopping_cart.php?products_id=1906{2}83{13}144{14}145{23}119{38}250{43}343{36}241{50}430{51}450&action=remove_product Awaiting an earliest response...
  4. @@Supertex Thanx that code will surely help get them returning for now ..... :)
  5. Hi Using oscommerce 2.3.4 and Paypal 3.2 I am having same issue as 4c -but slightly variation 4c) They return to the store - Order status in admin order list remains "Pending." - Order status within the order itself shows "PayPal [Transactions]" with comment PayPal IPN Verified. - No stock is deducted - No emails are sent. -Shopping Cart not empty Could you please help me too... On how can this be resolved
  6. Does this updated file fix the issue for oscommerce 2.3.4 desktops also- for customers and admin not receiving the Order Process emails (after paying through Paypal) or not removing items from shopping cart after succesful transaction and checkout on store?? I am using oscommerce 2.3.4 Paypal Standard 3.2 version Awaiting your early response.... :)
  7. Hi everyone Using Paypal Official 3.2 version on oscommerce 2.3.4- I am using checkout_process.php on Autoreturn URL on Paypal When a customer pays with Paypal it is not getting transferred to the order process email??? Whereas the other modules work fine.... Could you help me on this please.. Thanx in advance...
  8. Hi everyone Using Paypal Official 3.2 version on oscommerce 2.3.4- I am using checkout_process.php on Autoreturn URL I am facing same issue below like greasemonkey- Could anyone help on this....
  9. Pasting my product info.php Code here- <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2014 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); if (!isset($HTTP_GET_VARS['products_id'])) { tep_redirect(tep_href_link(FILENAME_DEFAULT)); } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); // Start Products Specifications require_once (DIR_WS_FUNCTIONS . 'products_specifications.php'); // Process data from the on-page forms require_once( DIR_WS_MODULES . 'product_info_process.php' ); // End Products Specifications //$product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); //on/off if (!empty($hiddencats)) { $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and p.products_id = p2c.products_id and (not (p2c.categories_id in (" . implode(',', $hiddencats) . "))) and pd.language_id = '" . (int)$languages_id . "'"); } else { $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); } $product_check = tep_db_fetch_array($product_check_query); // Start Products Specifications if (SPECIFICATIONS_BOX_FRAME_STYLE == 'Tabs') { // Insert the javascript for the tabs $head_javascript = ' <script language="javascript" type="text/javascript">' . PHP_EOL; $head_javascript .= ' $(document).ready(function(){' . PHP_EOL; $head_javascript .= ' initTabs();' . PHP_EOL; $head_javascript .= ' });' . PHP_EOL; $head_javascript .= ' function initTabs() {' . PHP_EOL; $head_javascript .= " $('#tabMenu a').bind('click',function(e) {" . PHP_EOL; $head_javascript .= ' e.preventDefault();' . PHP_EOL; $head_javascript .= ' var thref = $(this).attr("href").replace(/#/, "");' . PHP_EOL; $head_javascript .= " $('#tabMenu a').removeClass('active');" . PHP_EOL; $head_javascript .= " $(this).addClass('active');" . PHP_EOL; $head_javascript .= " $('#tabContent div.content').removeClass('active');" . PHP_EOL; $head_javascript .= " $('#'+thref).addClass('active');" . PHP_EOL; $head_javascript .= ' });' . PHP_EOL; $head_javascript .= ' }' . PHP_EOL; $head_javascript .= ' </script>' . PHP_EOL; $head_javascript .= ' <script src="ext/jquery/star_rating/jquery.rating.pack.js" type="text/javascript" language="javascript"></script>' . PHP_EOL; $head_javascript .= ' <link href="ext/jquery/star_rating/jquery.rating.css" type="text/css" rel="stylesheet"/>' . PHP_EOL; $oscTemplate->addBlock( $head_javascript, 'header_tags' ); } require( DIR_WS_INCLUDES . 'template_top.php' ); // echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?> <?php if ($product_check['total'] < 1) { ?> <div class="contentContainer"> <div class="contentText"> <?php echo TEXT_PRODUCT_NOT_FOUND; ?> </div> <div style="float: right;"> <?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?> </div> </div> <?php } else { // Products Specifications /*require(DIR_WS_INCLUDES . 'template_top.php'); if ($product_check['total'] < 1) { ?> <div class="contentContainer"> <div class="contentText"> <?php echo TEXT_PRODUCT_NOT_FOUND; ?> </div> <div style="float: right;"> <?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?> </div> </div> <?php } else {*/ $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info = tep_db_fetch_array($product_info_query); tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); if ($new_price = tep_get_products_special_price($product_info['products_id'])) { $products_price = '<del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])); } if (tep_not_null($product_info['products_model'])) { $products_name = $product_info['products_name'] . '<br /><span class="smallText">[' . $product_info['products_model'] . ']</span>'; } else { $products_name = $product_info['products_name']; } ?> <?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?> <div> <h1 style="float: right;"><?php echo $products_price; ?></h1> <h1><?php echo $products_name; ?></h1> </div> <div class="contentContainer"> <div class="contentText"> <?php if (tep_not_null($product_info['products_image'])) { $photoset_layout = '1'; $pi_query = tep_db_query("select image, htmlcontent from " . TABLE_PRODUCTS_IMAGES . " where products_id = '" . (int)$product_info['products_id'] . "' order by sort_order"); $pi_total = tep_db_num_rows($pi_query); if ($pi_total > 0) { $pi_sub = $pi_total-1; while ($pi_sub > 5) { $photoset_layout .= 5; $pi_sub = $pi_sub-5; } if ($pi_sub > 0) { $photoset_layout .= ($pi_total > 5) ? 5 : $pi_sub; } ?> <div id="piGal"> <?php if (tep_session_is_registered('customer_id') || (ALLOW_ASK_A_QUESTION == 'true')) { echo tep_draw_button(TEXT_ASK_QUESTION, 'help', tep_href_link(FILENAME_ASK_QUESTION, 'products_id='.$product_info['products_id'])); } $pi_counter = 0; $pi_html = array(); while ($pi = tep_db_fetch_array($pi_query)) { $pi_counter++; if (tep_not_null($pi['htmlcontent'])) { $pi_html[] = '<div id="piGalDiv_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div>'; } echo tep_image(DIR_WS_IMAGES . $pi['image'], '', '', '', 'id="piGalImg_' . $pi_counter . '"'); } ?> </div> <?php if ( !empty($pi_html) ) { echo ' <div style="display: none;">' . implode('', $pi_html) . '</div>'; } } else { ?> <div id="piGal"> <?php echo tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name'])); ?> </div> <?php } } ?> <script type="text/javascript"> $(function() { $('#piGal').css({ 'visibility': 'hidden' }); $('#piGal').photosetGrid({ layout: '<?php echo $photoset_layout; ?>', width: '250px', highresLinks: true, rel: 'pigallery', onComplete: function() { $('#piGal').css({ 'visibility': 'visible'}); $('#piGal a').colorbox({ maxHeight: '90%', maxWidth: '90%', rel: 'pigallery' }); $('#piGal img').each(function() { var imgid = $(this).attr('id').substring(9); if ( $('#piGalDiv_' + imgid).length ) { $(this).parent().colorbox({ inline: true, href: "#piGalDiv_" + imgid }); } }); } }); }); </script> <?php //echo stripslashes($product_info['products_description']); ?> <?php $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { ?> <p><?php echo TEXT_PRODUCT_OPTIONS; ?></p> <p> <?php $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); //<!-- AJAX Attribute Manager More Product weight--> // $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); // $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "' order by pa.products_options_sort_order"); //<!-- AJAX Attribute Manager end --> // while ($products_options = tep_db_fetch_array($products_options_query)) { // $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); // if ($products_options['options_values_price'] != '0') { // $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; // } // } $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix, pa.options_values_weight, pa.weight_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'order by pa.products_options_sort_order"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); $products_options_infotext = ''; if ($products_options['options_values_price'] != '0') { $products_options_infotext = $products_options['price_prefix'] . strip_tags($currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id']))); } if (PRODUCT_LIST_WEIGHT > 0) { if ($products_options['options_values_weight'] != '0') { if (!empty($products_options_infotext)) { $products_options_infotext .= '; '; } $products_options_infotext .= $products_options['weight_prefix'] . $products_options['options_values_weight'] . TEXT_PRODUCT_WEIGHT_UNIT; } } if (!empty($products_options_infotext)) { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options_infotext . ')'; } } // END: More Product Weight if (is_string($HTTP_GET_VARS['products_id']) && isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) { $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]; } else { $selected_attribute = false; } ?> <strong><?php echo $products_options_name['products_options_name'] . ':'; ?></strong><br /><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br /> <?php } ?> </p> <?php } ?><br /> <div class="buttonSet"> <span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span> <?php echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params())); if (tep_session_is_registered('customer_id') || (ALLOW_ASK_A_QUESTION == 'true')) { echo tep_draw_button(TEXT_ASK_QUESTION, 'help', tep_href_link(FILENAME_ASK_QUESTION, 'products_id='.$product_info['products_id'])); } ?> </div> <?php include_once (DIR_WS_MODULES . FILENAME_PRODUCTS_TABS); // End Products Specifications ?> <div style="clear: both;"></div> <?php if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <p style="text-align: center;"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></p> <?php } ?> </div> <?php $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "' and reviews_status = 1"); $reviews = tep_db_fetch_array($reviews_query); ?> <?php if ((USE_CACHE == 'true') && empty($SID)) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } ?> </div> </form> <?php } require(DIR_WS_INCLUDES . 'template_bottom.php'); require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Please could you help check the bug....
  10. No I did not use any addon with Tabs currently other than product specifications
  11. How to upload screen shots need to show you the admin area so as you could guide me if I have any setting done incorrectly...
  12. Okay back once again- The above error now gone I updated application_top.php for the same But still same issue- Product filters box shows not enough filters Alignment broken- http://www.radhavallabh.com/radhakrishnastore/exotica-saree-wrap-devimata-dress-p-790.html Pls advice....
  13. I looked at a previous post you posted on this terms and modified accordingly- But it did not solve the issue Now getting- Fatal error: Call to undefined function tep_clean_get__recursive() in ....includes/classes/specifications.php on line 80
  14. After updating the files- Error on catalog side where the category is assigned with filter- Fatal error: Call to a member function get_filter_data()on a non-object in ....../includes/modules/boxes/bm_products_filter.php on line 92 On index page showing Not enough filters though I have set Minimum filters to 1
  15. @@kymation Hi, Did you mean this post- The link redirects me to this same page when I click on version.....
  16. In reference to above post:- The Filter box displays in grey with no specification showing- http://www.radhavallabh.com/radhakrishnastore/deity-dresses-c-25.html The column layout broke on http://www.radhavallabh.com/radhakrishnastore/exotica-saree-wrap-devimata-dress-p-790.html Please guide what has to be done.....
  17. Hi Once again finally completely installed the addon- Problems I am facing The Product Specification Box on the right for product filtering does not display. I am trying to create a Color group So I created below for test- Specifications Group: Dress Color Specifications in Group: Color Specifications Value: Red, Blue Added it to a product and the whole layout broke- Nothing displayed on the specifications tab... and columns misaligned I have Screenshot of admin configration and product info. Please help.... (I need to show screenshots how to do so....) No option to upload
  18. Hi, Cannot find these files in my catalog- In Package as mentioned for modification- catalog/ext/jquery/star_rating/jquery.rating.css catalog/ext/jquery/star_rating/jquery.rating.pack.js
  19. I have 'ask a question' module installed already so can i skip the one included in package
  20. Thanks just one question before I go ahead with the install; Is it working with 2.3.4 and On admin side How is each specification assigned to the products... As in Category filters I was suppose to choose a for each filter value a area from where it should be searched- Like when I took Red as my filter value I did not have a option for choosing it as a productattribute- It gave options in Product Column like pd.products_description, p.products_price .... etc. which were of no use. Hence complete addon when to waste. Sorry for questions but I need to check this very much as I need Colors, Price, Size, Casual, Formal as my main search criteria which are majorly related to my attributes for filtering Awaiting your response.... :)
  21. Hi, I am using oscommerce 2.3.4 for my store I used Category Filters but I am pretty confused on using it - Hence Planning to add this addon for the filtering purpose- But I had a query Does this addon provide a filter box on the side, Show the current specifications product is related too Along with multiple product filtering specifications on catalog side. Awaiting an early response :) Thank you in advance.....
  22. Is there any screenshot where we can view the look of the Product Specification Addon on catalog side before installation???
  23. Even I am looking for a similar addon solution to my website http://www.krishnastores.com , hope we get a good solution soon........
  24. Hi, Pls could someone help me debug this CCavenue payment integration module I tried to re-craft out of the basic one by Praful Kumar available on oscommerce addon section; It is returning Checksum error on ccavenue gateway page all the mechant id and working key are perfect; <?php /* $Id: cavenue.php,v 1.25 2002/11/01 05:04:31 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url] Copyright © 2002 osCommerce */ class cavenue { var $code, $title, $description, $enabled; // class constructor function cavenue() { $this->code = 'cavenue'; $this->title = MODULE_PAYMENT_CCAVENUE_TEXT_TITLE; $this->description = MODULE_PAYMENT_CCAVENUE_TEXT_DESCRIPTION; $this->enabled = MODULE_PAYMENT_CCAVENUE_STATUS; $this->sort_order = MODULE_PAYMENT_CCAVENUE_SORT_ORDER; if ((int)MODULE_PAYMENT_CCAVENUE_PREPARE_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_CCAVENUE_PREPARE_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); $this->form_action_url = 'https://www.ccavenue.com/shopzone/cc_details.jsp'; } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_CCAVENUE_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_CCAVENUE_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->billing['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } function javascript_validation() { return false; } function selection() { global $cart_cavenue_ID; if (tep_session_is_registered('cart_cavenue_ID')) { $order_id = substr($cart_cavenue_ID, strpos($cart_cavenue_ID, '-')+1); $check_query = tep_db_query('select orders_id from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '" limit 1'); if (tep_db_num_rows($check_query) < 1) { tep_db_query('delete from ' . TABLE_ORDERS . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_TOTAL . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_DOWNLOAD . ' where orders_id = "' . (int)$order_id . '"'); tep_session_unregister('cart_cavenue_ID'); } } return array('id' => $this->code, 'module' => $this->public_title); } //{ // return array('id' => $this->code, // 'module' => $this->title); // } function pre_confirmation_check() { global $cartID, $cart; if (empty($cart->cartID)) { $cartID = $cart->cartID = $cart->generate_cart_id(); } if (!tep_session_is_registered('cartID')) { tep_session_register('cartID'); } } function confirmation() { global $cartID, $cart_cavenue_ID, $customer_id, $languages_id, $order, $order_total_modules; if (tep_session_is_registered('cartID')) { $insert_order = false; if (tep_session_is_registered('cart_cavenue_ID')) { $order_id = substr($cart_cavenue_ID, strpos($cart_cavenue_ID, '-')+1); $curr_check = tep_db_query("select currency from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'"); $curr = tep_db_fetch_array($curr_check); if ( ($curr['currency'] != $order->info['currency']) || ($cartID != substr($cart_cavenue_ID, 0, strlen($cartID))) ) { $check_query = tep_db_query('select orders_id from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '" limit 1'); if (tep_db_num_rows($check_query) < 1) { tep_db_query('delete from ' . TABLE_ORDERS . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_TOTAL . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . ' where orders_id = "' . (int)$order_id . '"'); tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_DOWNLOAD . ' where orders_id = "' . (int)$order_id . '"'); } $insert_order = true; } } else { $insert_order = true; } if ($insert_order == true) { $order_totals = array(); if (is_array($order_total_modules->modules)) { reset($order_total_modules->modules); while (list(, $value) = each($order_total_modules->modules)) { $class = substr($value, 0, strrpos($value, '.')); if ($GLOBALS[$class]->enabled) { for ($i=0, $n=sizeof($GLOBALS[$class]->output); $i<$n; $i++) { if (tep_not_null($GLOBALS[$class]->output[$i]['title']) && tep_not_null($GLOBALS[$class]->output[$i]['text'])) { $order_totals[] = array('code' => $GLOBALS[$class]->code, 'title' => $GLOBALS[$class]->output[$i]['title'], 'text' => $GLOBALS[$class]->output[$i]['text'], 'value' => $GLOBALS[$class]->output[$i]['value'], 'sort_order' => $GLOBALS[$class]->sort_order); } } } } } $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); } for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { $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(); $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' => $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); } } } } $cart_cavenue_ID = $cartID . '-' . $insert_id; tep_session_register('cart_cavenue_ID'); } } return false; } function process_button() { global $order, $currencies,$customer_id, $MerchantId, $shipping, $Amount, $OrderId, $Url, $WorkingKey, $Checksum ; global $sendto, $currency, $cart_cavenue_ID; $MerchantId = MODULE_PAYMENT_CCAVENUE_LOGIN; $Amount = $order->info['total']; $OrderId = $customer_id . '-' . date('Ymdhis'); $Url = tep_href_link(FILENAME_CHECKOUT_PROCESS,'','SSL',false); $pattern='http://www\.'; $process_button_string = ''; if(!(Eregi($pattern,$Url,$reg))) eregi_replace('http://', $pattern, $Url); $WorkingKey = MODULE_PAYMENT_CCAVENUE_WORKING_KEY; $str ="$MerchantId|$OrderId|$Amount|$Url|$WorkingKey"; $adler = 1; $BASE = 65521 ; $s1 = $adler & 0xffff ; $s2 = ($adler >> 16) & 0xffff; for($i = 0 ; $i < strlen($str) ; $i++) { $s1 = ($s1 + Ord($str[$i])) % $BASE ; $s2 = ($s2 + $s1) % $BASE ; //echo "s1 : $s1 <BR> s2 : $s2 <BR>"; } $str = $s2; $num = 16; $str = DecBin($str); for( $i = 0 ; $i < (64 - strlen($str)) ; $i++) $str = "0".$str ; for($i = 0 ; $i < $num ; $i++) { $str = $str."0"; $str = substr($str , 1 ) ; //echo "str : $str <BR>"; } $num=$str; for ($n = 0 ; $n < strlen($num) ; $n++) { $temp = $num[$n] ; $dec = $dec + $temp*pow(2 , strlen($num) - $n - 1); } $Checksum = $dec + $s1; $AuthDesc = 'N'; ///// want to bypass customer billing info to the CCAvenue page. $addQuery = tep_db_query("select ab.customers_id, ab.entry_postcode, ab.entry_city, ab.entry_state, ab.entry_country_id, c.countries_name, cu.customers_telephone from " . TABLE_COUNTRIES . " c, " . TABLE_CUSTOMERS . " cu, " . TABLE_ADDRESS_BOOK . " ab where c.countries_id = ab.entry_country_id and cu.customers_id = ab.customers_id and cu.customers_id = " . $customer_id ); $addRow = tep_db_fetch_array($addQuery); //echo $addResult . " <br>" . $addRow; $cust_city = $addRow['entry_city']; $cust_tele = $addRow['customers_telephone']; $cust_state = $addRow['entry_state']; $cust_zip = $addRow['entry_postcode']; $cust_country = $addRow['countries_name']; //echo "<br>Return URL: " . $Url; /// $process_button_string = tep_draw_hidden_field('cmd', '_s-xclick') . tep_draw_hidden_field('Merchant_Id', $MerchantId) . tep_draw_hidden_field('Order_Id', $OrderId) . tep_draw_hidden_field('Amount', $Amount) . tep_draw_hidden_field('billing_cust_name', $order->customer['firstname'].' '. $order->customer['lastname']) . tep_draw_hidden_field('billing_cust_address', $order->billing['street_address']) . tep_draw_hidden_field('billing_cust_country', $cust_country) . tep_draw_hidden_field('billing_cust_email', $order->customer['email_address']) . tep_draw_hidden_field('billing_cust_city', $cust_city) . tep_draw_hidden_field('billing_cust_tel', $cust_tele) . tep_draw_hidden_field('billing_cust_state', $cust_state) . tep_draw_hidden_field('billing_zip_code', $cust_zip) . tep_draw_hidden_field('billing_cust_notes', $order->info['comments']) . tep_draw_hidden_field('Checksum',$Checksum) . tep_draw_hidden_field('delivery_cust_name', $order->delivery['firstname'].' '.$order->delivery['lastname']) . tep_draw_hidden_field('delivery_cust_address', $order->delivery['street_address']) . tep_draw_hidden_field('delivery_cust_country', $cust_country) . tep_draw_hidden_field('Redirect_Url',$Url); return $process_button_string; } function before_process() { global $HTTP_POST_VARS, $customer_id, $MerchantId, $Amount, $OrderId, $WorkingKey, $Checksum,$AuthDesc,$sum ; global $order, $order_totals, $sendto, $billto, $languages_id, $payment, $currencies, $cart, $cart_cavenue_ID; global $$payment; $order_id = substr($cart_cavenue_ID, strpos($cart_cavenue_ID, '-')+1); $check_query = tep_db_query("select orders_status from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'"); if (tep_db_num_rows($check_query)) { $check = tep_db_fetch_array($check_query); if ($check['orders_status'] == MODULE_PAYMENT_CCAVENUE_PREPARE_ORDER_STATUS_ID) { $sql_data_array = array('orders_id' => $order_id, 'orders_status_id' => MODULE_PAYMENT_CCAVENUE_PREPARE_ORDER_STATUS_ID, 'date_added' => 'now()', 'customer_notified' => '0', 'comments' => ''); tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array); } } tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . (MODULE_PAYMENT_CCAVENUE_ORDER_STATUS_ID > 0 ? (int)MODULE_PAYMENT_CCAVENUE_ORDER_STATUS_ID : (int)DEFAULT_ORDERS_STATUS_ID) . "', last_modified = now() where orders_id = '" . (int)$order_id . "'"); $sql_data_array = array('orders_id' => $order_id, 'orders_status_id' => (MODULE_PAYMENT_CCAVENUE_ORDER_STATUS_ID > 0 ? (int)MODULE_PAYMENT_CCAVENUE_ORDER_STATUS_ID : (int)DEFAULT_ORDERS_STATUS_ID), 'date_added' => 'now()', 'customer_notified' => (SEND_EMAILS == 'true') ? '1' : '0', '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']) . "'"); //------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); $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"; } // lets start with the email confirmation $email_order = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $order_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); //Checksum $MerchantId = $HTTP_POST_VARS['Merchant_Id']; $Amount = $HTTP_POST_VARS['Amount']; $OrderId = $HTTP_POST_VARS['Order_Id']; $Checksum = $HTTP_POST_VARS['Checksum']; $AuthDesc = $HTTP_POST_VARS['AuthDesc']; $WorkingKey = MODULE_PAYMENT_CCAVENUE_WORKING_KEY; $str ="$MerchantId|$OrderId|$Amount|$AuthDesc|$WorkingKey"; $adler = 1; $BASE = 65521 ; $s1 = $adler & 0xffff ; $s2 = ($adler >> 16) & 0xffff; for($i = 0 ; $i < strlen($str) ; $i++) { $s1 = ($s1 + Ord($str[$i])) % $BASE ; $s2 = ($s2 + $s1) % $BASE ; //echo "s1 : $s1 <BR> s2 : $s2 <BR>"; } $str = $s2; $num = 16; $str = DecBin($str); for( $i = 0 ; $i < (64 - strlen($str)) ; $i++) $str = "0".$str ; for($i = 0 ; $i < $num ; $i++) { $str = $str."0"; $str = substr($str , 1 ) ; //echo "str : $str <BR>"; } $num=$str; for ($n = 0 ; $n < strlen($num) ; $n++) { $temp = $num[$n] ; $dec = $dec + $temp*pow(2 , strlen($num) - $n - 1); } $sum = $dec + $s1; if($sum == $Checksum) $Checksum = 'true' ; else $Checksum = 'false'; if($Checksum != 'true') { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(MODULE_PAYMENT_CCAVENUE_ALERT_ERROR_MESSAGE), 'SSL', true, false)); } if($Checksum =='true' && $AuthDesc == 'N') { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(MODULE_PAYMENT_CCAVENUE_TEXT_ERROR_MESSAGE), 'SSL', true, false)); } // 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 $this->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'); tep_session_unregister('cart_cavenue_ID'); tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL')); } function after_process() { return false; } function output_error() { global $HTTP_GET_VARS; $output_error_string = '<table border="0" cellspacing="0" cellpadding="0" width="100%">' . "\n" . ' <tr>' . "\n" . ' <td class="main"> <font color="#FF0000"><b>' . MODULE_PAYMENT_CCAVENUE_TEXT_ERROR . '</b></font><br> ' . MODULE_PAYMENT_CCAVENUE_TEXT_ERROR_MESSAGE . ' </td>' . "\n" . ' </tr>' . "\n" . '</table>' . "\n"; return $output_error_string; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_CCAVENUE_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { $check_query = tep_db_query("select orders_status_id from " . TABLE_ORDERS_STATUS . " where orders_status_name = 'Preparing[CCAvenue]' limit 1"); if (tep_db_num_rows($check_query) < 1) { $status_query = tep_db_query("select max(orders_status_id) as status_id from " . TABLE_ORDERS_STATUS); $status = tep_db_fetch_array($status_query); $status_id = $status['status_id']+1; $languages = tep_get_languages(); foreach ($languages as $lang) { tep_db_query("insert into " . TABLE_ORDERS_STATUS . " (orders_status_id, language_id, orders_status_name) values ('" . $status_id . "', '" . $lang['id'] . "', 'Preparing[CCAvenue]')"); } $flags_query = tep_db_query("describe " . TABLE_ORDERS_STATUS . " public_flag"); if (tep_db_num_rows($flags_query) == 1) { tep_db_query("update " . TABLE_ORDERS_STATUS . " set public_flag = 0 and downloads_flag = 0 where orders_status_id = '" . $status_id . "'"); } } else { $check = tep_db_fetch_array($check_query); $status_id = $check['orders_status_id']; } global $db; tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable CCAvenue Module', 'MODULE_PAYMENT_CCAVENUE_STATUS', 'True', 'Do you want to accept CCAvenue payments?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Merchant_Id', 'MODULE_PAYMENT_CCAVENUE_LOGIN', 'Your_CCAVENUE_ID', 'Merchant ID used for the CCAvenue service', '6', '2', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_CCAVENUE_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '5', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_CCAVENUE_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '6', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Preparing Order Status', 'MODULE_PAYMENT_CCAVENUE_PREPARE_ORDER_STATUS_ID', '" . $status_id . "', 'Set the status of prepared orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_CCAVENUE_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '7', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Currency Converter', 'MODULE_PAYMENT_CCAVENUE_CONVERSION', 'Enabled', 'Currency Conversion', '6', '10', 'tep_cfg_select_option(array(\'Enabled\', \'Disable\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Working_Key', 'MODULE_PAYMENT_CCAVENUE_KEY', 'Working_Key', 'put in the alphanumeric key from MARS Panel', '6', '3', now())"); } function remove() { global $db; tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_CCAVENUE_STATUS', 'MODULE_PAYMENT_CCAVENUE_LOGIN','MODULE_PAYMENT_CCAVENUE_KEY', 'MODULE_PAYMENT_CCAVENUE_ZONE','MODULE_PAYMENT_CCAVENUE_PREPARE_ORDER_STATUS_ID','MODULE_PAYMENT_CCAVENUE_ORDER_STATUS_ID', 'MODULE_PAYMENT_CCAVENUE_SORT_ORDER', 'MODULE_PAYMENT_CCAVENUE_CONVERSION'); } } ?>
×
×
  • Create New...