Results 1 to 5 of 5
  1. #1
    Join Date
    Mar 2005
    Posts
    32
    Plugin Contributions
    0

    Default OT-SURCHARGE for Zencart

    I just installed Zencart and am new to this after using Cre_loaded for several years now. I stopped with Cre because they are stepping off the original code and changed databasefields and now my software that we use for processing orders does not work anymore. I always used the ot_surcharge module that adds up a percentage + a standard fee of 0,35 that i use for Paypal so i get my paypal fee back. It worked perfect!!.
    I noticed that ZEN does not have this contribution and now i am trying to covert the original OSCOMMERCE script to a ZEN contribution but now i am stuck.
    Until now i have the contribution working but the surcharge is not shown on the checkoutpage.

    Maybe someone can have a look at the code and tell me what's wrong?
    Look for the attachement in txt format
    Last edited by Kim; 18 Nov 2006 at 11:58 PM.

  2. #2
    Join Date
    Jun 2003
    Posts
    33,715
    Plugin Contributions
    0

    Default Re: OT-SURCHARGE for Zencart

    There is not a surcharge module for Zen Cart because it doe not comply with the PayPal Terms of Service. (with the exception of Great Britain and then it still needs some disclosure)
    Please do not PM for support issues: a private solution doesn't benefit the community.

    Be careful with unsolicited advice via email or PM - Make sure the person you are talking to is a reliable source.

  3. #3
    Join Date
    Mar 2005
    Posts
    32
    Plugin Contributions
    0

    Default Re: OT-SURCHARGE for Zencart

    It is not only for Paypal but it can be used for any payment type you set in admin.
    I myselve use it for paypal for two years now without a problem.
    Just be shure that the description on the invoice is NOT "Paypal Fee" but Handling Costs or something like it.

    Never had a problem.

    But this module will work but if you want to use it is up to you
    It also works on Credit Card modules and other payment types

  4. #4
    Join Date
    Mar 2005
    Posts
    32
    Plugin Contributions
    0

    Default Re: OT-SURCHARGE for Zencart

    I also posted a txt file as attachement but it is not been shown in the original message above so i will post the code i have here:

    Code:
    <?php
    /*
      $Id: ot_surcharge.php,v 1.0 2003/06/19 01:13:43 hpdl wib $
    
      osCommerce, Open Source E-Commerce Solutions
      http://www.oscommerce.com
    
      Copyright (c) 2002 osCommerce
    
      Released under the GNU General Public License
    */
    
      class ot_surcharge {
        var $title, $output;
    
        function ot_surcharge() {
          $this->code = 'ot_surcharge';
          $this->title = MODULE_PAYMENT_TITLE;
          $this->description = MODULE_PAYMENT_DESCRIPTION;
          $this->enabled = MODULE_PAYMENT_STATUS;
          $this->sort_order = MODULE_PAYMENT_SORT_ORDER;
          $this->include_shipping = MODULE_PAYMENT_INC_SHIPPING;
          $this->include_tax = MODULE_PAYMENT_INC_TAX;
          $this->percentage = MODULE_PAYMENT_PERCENTAGE;
          $this->minimum = MODULE_PAYMENT_MINIMUM;
          $this->calculate_tax = MODULE_PAYMENT_CALC_TAX;
    //      $this->credit_class = true;
          $this->output = array();
        }
    
        function process() {
         global $order, $currencies;
    
          $od_amount = $this->calculate_fee($this->get_order_total());
          if ($od_amount>0) {
          $this->addition = $od_amount;
          $this->output[] = array('title' => $this->title . ':',
                                  'text' => '<b>' . $currencies->format($od_amount) . '</b>',
                                  'value' => $od_amount);
        $order->info['total'] = $order->info['total'] + $od_amount;
    }
        }
    
    
      function calculate_fee($amount) {
        global $order, $customer_id, $payment;
        $od_amount=0;
        $od_pc = $this->percentage; //this is percentage
        $do = false;
        if ($amount > $this->minimum) {
        $table = split("[,]" , MODULE_PAYMENT_TYPE);
        for ($i = 0; $i < count($table); $i++) {
              if ($payment == $table[$i]) $do = true;
            }
        if ($do) {
    // Calculate tax reduction if necessary
        if($this->calculate_tax == 'true') {
    // Calculate main tax reduction
          $tod_amount = round($order->info['tax']*10)/10*$od_pc/100;
          $order->info['tax'] = $order->info['tax'] + $tod_amount;
    // Calculate tax group deductions
          reset($order->info['tax_groups']);
          while (list($key, $value) = each($order->info['tax_groups'])) {
            $god_amount = round($value*10)/10*$od_pc/100;
            $order->info['tax_groups'][$key] = $order->info['tax_groups'][$key] + $god_amount;
          }
        }
        $od_amount = round($amount*10)/10*$od_pc/100 + .35;//percentage plus base fee
        $od_amount = $od_amount + $tod_amount;
        }
        }
        return $od_amount;
      }
    
    
      function get_order_total() {
        global  $db, $order, $cart;
        $order_total = $order->info['total'];
    // Check if gift voucher is in cart and adjust total
        $products = $_SESSION['cart']->get_products();
        for ($i=0; $i<sizeof($products); $i++) {
          $t_prid = zen_get_prid($products[$i]['id']);
          $gv_result = $db->Execute("select products_price, products_tax_class_id, products_model from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'");
          if (ereg('^GIFT', addslashes($gv_result['products_model']))) {
            $qty = $cart->get_quantity($t_prid);
            $products_tax = zen_get_tax_rate($gv_result['products_tax_class_id']);
            if ($this->include_tax =='false') {
               $gv_amount = $gv_result['products_price'] * $qty;
            } else {
              $gv_amount = ($gv_result['products_price'] + zen_calculate_tax($gv_result['products_price'],$products_tax)) * $qty;
            }
            $order_total=$order_total - $gv_amount;
          }
        }
        if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax'];
        if ($this->include_shipping == 'false') $order_total=$order_total-$order->info['shipping_cost'];
        return $order_total;
      }
    
    
        function check() {
          global $db;
          if (!isset($this->_check)) {
            $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_STATUS'");
            $this->_check = $check_query->RecordCount();
          }
    
          return $this->_check;
        }
    
        function keys() {
          return array('MODULE_PAYMENT_STATUS', 'MODULE_PAYMENT_SORT_ORDER','MODULE_PAYMENT_PERCENTAGE','MODULE_PAYMENT_MINIMUM', 'MODULE_PAYMENT_TYPE', 'MODULE_PAYMENT_INC_SHIPPING', 'MODULE_PAYMENT_INC_TAX', 'MODULE_PAYMENT_CALC_TAX');
        }
    
        function install() {
          global $db;
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Display Total', 'MODULE_PAYMENT_STATUS', 'true', 'Do you want to enable the Order Payment Fee?', '6', '1','zen_cfg_select_option(array(\'true\', \'false\'), ', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_PAYMENT_SORT_ORDER', '888', 'Sort order of display.', '6', '2', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Include Shipping', 'MODULE_PAYMENT_INC_SHIPPING', 'true', 'Include Shipping in calculation', '6', '5', 'zen_cfg_select_option(array(\'true\', \'false\'), ', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Include Tax', 'MODULE_PAYMENT_INC_TAX', 'true', 'Include Tax in calculation.', '6', '6','zen_cfg_select_option(array(\'true\', \'false\'), ', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Surcharge Percentage', 'MODULE_PAYMENT_PERCENTAGE', '3', 'Amount of Surcharge(percentage).', '6', '7', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Calculate Tax', 'MODULE_PAYMENT_CALC_TAX', 'false', 'Re-calculate Tax on surcharged amount.', '6', '5','zen_cfg_select_option(array(\'true\', \'false\'), ', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Minimum Amount', 'MODULE_PAYMENT_MINIMUM', '', 'Minimum order before fee', '6', '2', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Payment Type', 'MODULE_PAYMENT_TYPE', 'moneyorder', 'Payment Type to pay surcharge', '6', '2', now())");
        }
    
        function remove() {
          global $db;
          $keys = '';
          $keys_array = $this->keys();
          $keys_size = sizeof($keys_array);
          for ($i=0; $i<$keys_size; $i++) {
            $keys .= "'" . $keys_array[$i] . "',";
          }
          $keys = substr($keys, 0, -1);
    
          $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")");
        }
      }
    ?>
    Just need to know why the amount of this module is not visible in the ordertotals

  5. #5
    Join Date
    Mar 2005
    Posts
    32
    Plugin Contributions
    0

    Default Re: OT-SURCHARGE for Zencart

    Quote Originally Posted by Kim View Post
    There is not a surcharge module for Zen Cart because it doe not comply with the PayPal Terms of Service. (with the exception of Great Britain and then it still needs some disclosure)
    Does this mean that now I have this module working perfectly you do not want me to upload it to the contribution section??

    I uploaded it allready in the Dutch Zencart forum and they where thankfull.

 

 

Similar Threads

  1. Surcharge for certain items shipped Internationally
    By mrmyles in forum Built-in Shipping and Payment Modules
    Replies: 1
    Last Post: 27 Oct 2011, 03:32 PM
  2. Credit Card surcharge for AlertPay
    By aussiedropship in forum Addon Payment Modules
    Replies: 0
    Last Post: 19 Dec 2010, 04:55 PM
  3. FedEx surcharge for international rates
    By gl330k in forum Built-in Shipping and Payment Modules
    Replies: 0
    Last Post: 27 Nov 2007, 07:20 AM
  4. Surcharge for oversized items?
    By lismith in forum Built-in Shipping and Payment Modules
    Replies: 0
    Last Post: 10 Sep 2007, 04:42 PM
  5. Shipping surcharge for a state
    By gonewild in forum Built-in Shipping and Payment Modules
    Replies: 9
    Last Post: 29 Nov 2006, 05:28 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR