Jump to content

saleem145

Members
  • Content count

    75
  • Joined

  • Last visited

Profile Information

  • Real Name
    Saleem Mukhtar
  1. saleem145

    New UPS XML Shipping Module available

    Do I need an "XML Access Key" or "HTML Access Key". Saleem
  2. Just one question -- Once I have this installed how can I test this without having it send out email to add people who are subsribed already. Saleem
  3. I am a complete newbie to this concept -- I would like to install this module but before I do that I would like to understand what the module does!! 1. Do Discount Coupons have a code on them. And if the customer specifies the code they get the discount associated with the coupon having that code?? Where in the checkout process do clients redeem their coupons?? 2. How do gift vouchers work?? If I buy a gift voucher for my girlfriend, then do I specify her email. When she creates an account will her gift vouchers automatically show up during checkout. Will she be able to select the voucher she would like to use. Where in the checkout process will this happen. Please can someone email me a link to their site which uses both these features. I would like to see how checkout works. Thanks, Saleem
  4. saleem145

    Multi Currency 2checkout Module

    Hello, I notice there have been posts in the past about accepting multi currency payments using 2checkout. However the 2checkout module supplied with osCommerce does not support this functionality even though 2checkout itself can process multi currency payments. I have managed to create a new module. And I have tested it once -- it did work!! I paid myself in GBP. The code is adapted from some 2checkout code written by someone else but not for osCommerce. But it does need to be thoroughly tested and cleant up and documented and written up as a contribution. I would be glad if someone would take this project where I am leaving it for the time being and see it through to the end. Instructions -- 1. Create an empty file called rates in your store directory. In my case I made one in /home/saleem/store. echo "" > /home/saleem/rates would do it!! Next set the permissions on this file. Use chmod a+w /home/saleem/rates 2. Set the return url to http://your.domain.name/store/checkout_process.php by logging into your 2checkout account. 3. Replace your pm2checkout.php file in store/includes/modules/payment by the one below. It should work. Saleem <?php /* $Id: pm2checkout.php,v 1.19 2003/01/29 19:57:15 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ class pm2checkout { var $code, $title, $description, $enabled; // class constructor function pm2checkout() { global $order; $this->code = 'pm2checkout'; $this->title = MODULE_PAYMENT_2CHECKOUT_TEXT_TITLE; $this->description = MODULE_PAYMENT_2CHECKOUT_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_2CHECKOUT_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_2CHECKOUT_STATUS == 'True') ? true : false); if ((int)MODULE_PAYMENT_2CHECKOUT_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_2CHECKOUT_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); $this->form_action_url = 'https://www.2checkout.com/cgi-bin/sbuyers/cartpurchase.2c'; } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_2CHECKOUT_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_2CHECKOUT_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() { return array('id' => $this->code, 'module' => $this->title); } function pre_confirmation_check() { return false; } function confirmation() { return false; } function process_button() { global $order, $currency, $currencies; $my_currency = $currency; if (!in_array($my_currency, array('AUD', 'CAD', 'CHF', 'DKK', 'EUR', 'GBP', 'HKD', 'JPY', 'NOK', 'NZD', 'SEK', 'USD'))) { $my_currency = 'USD'; } $url = "http://www.2checkout.com/cgi-bin/rk_buyers/rates.2c"; $num = file($url); if ($num === FALSE) { $url = "http://www.scylaxonline.com/store/rates"; $num = file($url); } else { $url = "http://www.2checkout.com/cgi-bin/rk_buyers/rates.2c"; $num = file($url); $datafile = fopen("http://www.2checkout.com/cgi-bin/rk_buyers/rates.2c","r"); $contents = fread($datafile,2048); fclose($datafile); $stream = fopen("/home/scylaxon/public_html/store/rates","r+"); fwrite($stream,"$contents"); fclose($stream); } foreach($num as $line=>$data) { if(substr($data,0,3) == "$my_currency") { $line_to_use = $num[$line]; $num = explode(" ","$line_to_use"); $er = $num[1]; $q = $num[2]; $t = round(number_format($order->info['total'] * $currencies->currencies[$my_currency]['value'],$currencies->currencies[$my_currency]['decimal_places']) / $er, 4); if ( in_array ( $my_currency, array ( 'EUR', 'GBP' , 'AUD' , 'CHF' ))) { $t = $t - 0.007;} } } $process_button_string = tep_draw_hidden_field('sid', MODULE_PAYMENT_2CHECKOUT_LOGIN) . tep_draw_hidden_field('total', number_format($t, 2)) . tep_draw_hidden_field('cart_order_id', date('YmdHis')) . tep_draw_hidden_field('quote', $q) . tep_draw_hidden_field('street_address', $order->customer['street_address']) . tep_draw_hidden_field('city', $order->customer['city']) . tep_draw_hidden_field('state', $order->customer['state']) . tep_draw_hidden_field('zip', $order->customer['postcode']) . tep_draw_hidden_field('country', $order->customer['country']['title']) . tep_draw_hidden_field('email', $order->customer['email_address']) . tep_draw_hidden_field('phone', $order->customer['telephone']) . tep_draw_hidden_field('demo', ((MODULE_PAYMENT_2CHECKOUT_TESTMODE == 'Test') ? 'Y' : 'N')) . tep_draw_hidden_field('acc_can', 'Y') . tep_draw_hidden_field('acc_int', 'Y'); return $process_button_string; } function before_process() { return false; } function after_process() { return false; } function output_error() { return false; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_2CHECKOUT_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { 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 2CheckOut Module', 'MODULE_PAYMENT_2CHECKOUT_STATUS', 'True', 'Do you want to accept 2CheckOut payments?', '6', '0', '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 ('Login/Store Number', 'MODULE_PAYMENT_2CHECKOUT_LOGIN', '18157', 'Login/Store Number used for the 2CheckOut service', '6', '0', 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 ('Transaction Mode', 'MODULE_PAYMENT_2CHECKOUT_TESTMODE', 'Test', 'Transaction mode used for the 2Checkout service', '6', '0', 'tep_cfg_select_option(array(\'Test\', \'Production\'), ', 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 ('Merchant Notifications', 'MODULE_PAYMENT_2CHECKOUT_EMAIL_MERCHANT', 'True', 'Should 2CheckOut e-mail a receipt to the store owner?', '6', '0', '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 ('Sort order of display.', 'MODULE_PAYMENT_2CHECKOUT_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', 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_2CHECKOUT_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', '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 Order Status', 'MODULE_PAYMENT_2CHECKOUT_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_2CHECKOUT_STATUS', 'MODULE_PAYMENT_2CHECKOUT_LOGIN', 'MODULE_PAYMENT_2CHECKOUT_TESTMODE', 'MODULE_PAYMENT_2CHECKOUT_EMAIL_MERCHANT', 'MODULE_PAYMENT_2CHECKOUT_ZONE', 'MODULE_PAYMENT_2CHECKOUT_ORDER_STATUS_ID', 'MODULE_PAYMENT_2CHECKOUT_SORT_ORDER'); } } ?>
  5. Hello, Also one suggestion -- instead of popping up a seperate window can it be made to work in the same oscommerce window, like the other payment modules like PayPal, Nochex and 2checkout. It looks more professional that way. Haven't tested it yet though. I hear there are problems with totaling. Thanks, Saleem
  6. Hey, I am glad to see there is a Paymate module and am looking forward to integrating it into my web store. I notice that due to the inadequacies of the old Paymate API it could not be fully integrated to osCommerce. However, lately, Paymate has upgraded their API which will make full integration possible. My question is should I install the current module or wait a little longer for a new and improved version?? Thanks in advance, Saleem
×