Page 1 of 2 12 LastLast
Results 1 to 10 of 15
  1. #1

    Default Payment type discount.

    I had this installed fine and it was working no problem, then today when i go to checkout at step 3

    Fatal error: Cannot use object of type queryFactoryResult as array in /home/freerang/public_html/shop/includes/modules/order_total/ot_payment.php on line 97

    I had installed the Mod hole version, and it worked great before I added other stuff. I have removed the gift voucher option, but this doesn't cure it.

    this is the code that line

    if (ereg('^GIFT', addslashes($gv_result['products_model']))) {

    Thanks I really need a discount option at checkout for Zen Cart 1.2.7.

  2. #2

    Default Re: Payment type discount.

    Got this answered by Langer if anyone needs it:

    change the line to read.

    if (ereg('^GIFT', addslashes($gv_result->fields['products_model']))) {

    Thanks

  3. #3
    Join Date
    Feb 2006
    Posts
    70
    Plugin Contributions
    0

    Default Payment Type Discount

    I've seen references to the Payment Type Discount module but can't seem to find it. There was a link to it in another thread but I get a 404 error.

    Can someone point me in the right direction?

    Also wondering if I can apply this discount to a specific credit card? (ie. Amex users get a dicount on purchases).

    Cheers!

  4. #4
    Join Date
    Mar 2004
    Posts
    16,042
    Plugin Contributions
    5

    Default Re: Payment Type Discount

    Its in the archived downloads,

    and no it works with a payment type not with a certain card
    Zen cart PCI compliant Hosting

  5. #5
    Join Date
    Feb 2006
    Posts
    70
    Plugin Contributions
    0

    Default Re: Payment Type Discount

    Thanks! I can't find the archived downloads, can you please point me in the right direction?

    ... So, that module won't do it but can anyone think of another approach that would allow for a discount on a specific credit card or does it sound totally impossible?

  6. #6
    Join Date
    Sep 2005
    Location
    Austria
    Posts
    104
    Plugin Contributions
    6

    Default Re: Payment Type Discount

    This module is using a percentage discount or fee.
    Is there a way to change from a percentage to a flat (absolute) discount or fee?

  7. #7

    Default Re: Payment Type Discount

    does this work with 1.38a?


    Mack32

  8. #8

    Default Re: Payment Type Discount

    Hi,
    For anyone who is interested, I got the Payment Type Discount working with 1.3.8a with the following code.

    Replace entire code from /includes/modules/order_total/ot_payment.php
    with:

    Code:
    <?php
    //
    // +----------------------------------------------------------------------+
    // |zen-cart Open Source E-commerce                                       |
    // +----------------------------------------------------------------------+
    // | Hacked by [email protected]                                         |
    // |                                                                      |
    // | http://www.modhole.com/                                              |
    // |                                                                      |
    // | Portions Copyright (c) 2003 osCommerce                               |
    // +----------------------------------------------------------------------+
    // | This source file is subject to version 2.0 of the GPL license,       |
    // | that is bundled with this package in the file LICENSE, and is        |
    // | available through the world-wide-web at the following url:           |
    // | http://www.zen-cart.com/license/2_0.txt.                             |
    // | If you did not receive a copy of the zen-cart license and are unable |
    // | to obtain it through the world-wide-web, please send a note to       |
    // | [email protected] so we can mail you a copy immediately.          |
    // +----------------------------------------------------------------------+
    // $Id: ot_payment.php 2006-02-28 langer $
    //
    
      class ot_payment {
        var $title, $output;
    
        function ot_payment() {
          $this->code = 'ot_payment';
          $this->title = MODULE_PAYMENT_DISC_TITLE;
          $this->description = MODULE_PAYMENT_DISC_DESCRIPTION;
          $this->enabled = MODULE_PAYMENT_DISC_STATUS;
          $this->sort_order = MODULE_PAYMENT_DISC_SORT_ORDER;
          $this->include_shipping = MODULE_PAYMENT_DISC_INC_SHIPPING;
          $this->include_tax = MODULE_PAYMENT_DISC_INC_TAX;
          $this->percentage = MODULE_PAYMENT_DISC_PERCENTAGE;
          $this->minimum = MODULE_PAYMENT_DISC_MINIMUM;
          $this->calculate_tax = MODULE_PAYMENT_DISC_CALC_TAX;
    //      $this->credit_class = true;
          $this->output = array();
        }
    
        function process() {
         global $order, $currencies;
    
          $od_amount = $this->calculate_credit($this->get_order_total());
          if ($od_amount>0) {
          $this->deduction = $od_amount;
          $this->output[] = array('title' => '<b>' . $this->title . ':</b>',
                                  'text' => '-' . $currencies->format($od_amount),
                                  'value' => $od_amount);
        $order->info['total'] = $order->info['total'] - $od_amount;
    			}
        }
    
    
      function calculate_credit($amount) {
        global $order, $customer_id;
        $od_amount=0;
        $od_pc = $this->percentage;
        $do = false;
        if ($amount > $this->minimum) {
        $table = split("[,]" , MODULE_PAYMENT_DISC_TYPE);
        for ($i = 0; $i < count($table); $i++) {
            if ($_SESSION['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;
        $od_amount = $od_amount - $tod_amount;
        }
        }
        return $od_amount;
      }
    
    
      function get_order_total() {
        global  $order, $db;
        $order_total = $order->info['total'];
        // Check if gift voucher is in cart and adjust total
        //$products = $cart->get_products();
        if (is_object($_SESSION['cart'])) {
          $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 . "'");
          //$gv_result = zen_db_fetch_array($gv_query);
          if (ereg('^GIFT', addslashes($gv_result->fields['products_model']))) {
              $qty = $_SESSION['cart']->get_quantity($t_prid);
            $products_tax = zen_get_tax_rate($gv_result->fields['products_tax_class_id']);
            if ($this->include_tax =='false') {
               $gv_amount = $gv_result->fields['products_price'] * $qty;
            } else {
              $gv_amount = ($gv_result->fields['products_price'] + zen_calculate_tax($gv_result->fields['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'];
        // echo $order_total.' - order total<br />';
        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_DISC_STATUS'");
            $this->check = $check_query->RecordCount();
          }
    
          return $this->check;
        }
    
        function keys() {
          return array('MODULE_PAYMENT_DISC_STATUS', 'MODULE_PAYMENT_DISC_SORT_ORDER','MODULE_PAYMENT_DISC_PERCENTAGE','MODULE_PAYMENT_DISC_MINIMUM', 'MODULE_PAYMENT_DISC_TYPE', 'MODULE_PAYMENT_DISC_INC_SHIPPING', 'MODULE_PAYMENT_DISC_INC_TAX', 'MODULE_PAYMENT_DISC_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_DISC_STATUS', 'true', 'Do you want to enable the Order Discount?', '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_DISC_SORT_ORDER', '999', '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_DISC_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_DISC_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 ('Discount Percentage', 'MODULE_PAYMENT_DISC_PERCENTAGE', '2', 'Amount of Discount(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_DISC_CALC_TAX', 'false', 'Re-calculate Tax on discounted 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_DISC_MINIMUM', '100', 'Minimum order before discount', '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_DISC_TYPE', 'COD', 'Payment Type to get discount', '6', '2', now())");
        }
    
        function remove() {
        global $db;
          $keys = '';
          $keys_array = $this->keys();
          for ($i=0; $i<sizeof($keys_array); $i++) {
            $keys .= "'" . $keys_array[$i] . "',";
          }
          $keys = substr($keys, 0, -1);
    
          $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")");
        }
      }
    ?>

  9. #9
    Join Date
    Nov 2005
    Posts
    157
    Plugin Contributions
    0

    Default Re: Payment Type Discount

    i never got it work...

    i am trying to offer 3% off for Western Union and Check payment. but no idea how to make it work.

  10. #10
    Join Date
    May 2009
    Posts
    1
    Plugin Contributions
    0

    Default Re: Payment Type Discount

    Thanks nsanford, you give the right answer.

 

 
Page 1 of 2 12 LastLast

Similar Threads

  1. v151 Payment type discount
    By dionidis in forum All Other Contributions/Addons
    Replies: 1
    Last Post: 24 Oct 2012, 06:34 PM
  2. Payment type discount with v1.3.9h ?
    By OldNGrey in forum Addon Payment Modules
    Replies: 0
    Last Post: 14 Dec 2011, 04:19 AM
  3. need to define payment type per discount group
    By igofresh in forum Managing Customers and Orders
    Replies: 1
    Last Post: 27 May 2011, 09:32 PM

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