Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 21
  1. #11
    Join Date
    Nov 2007
    Location
    Sunny Coast, Australia
    Posts
    3,378
    Plugin Contributions
    9

    Default Re: Zone Rates: maximum shipping weight exceeded

    Quote Originally Posted by Ajeh View Post
    My bad ...

    Use the code:
    Code:
          global $total_weight;
          if ($total_weight > 2) {
            $this->enabled = false;
          }
    Thanks - that worked a treat. Only thing is that the radio button for this method does not show as enabled, the customer needs to click it ....

  2. #12
    Join Date
    Nov 2007
    Location
    Sunny Coast, Australia
    Posts
    3,378
    Plugin Contributions
    9

    Default Re: Zone Rates: maximum shipping weight exceeded

    Quote Originally Posted by frank18 View Post
    Thanks - that worked a treat. Only thing is that the radio button for this method does not show as enabled, the customer needs to click it ....
    Fixed the radio button issue. Simply configured zones2 (domestic Express Post) to skip all countries BUT Australia

    Enable for AU
    Skip Countries: 00

    Thanks again

  3. #13
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Zone Rates: maximum shipping weight exceeded

    Thanks for the update that you have this working now ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  4. #14
    Join Date
    May 2006
    Location
    Montana
    Posts
    291
    Plugin Contributions
    20

    Default Re: Zone Rates: maximum shipping weight exceeded

    Linda,

    I am needing something similar for a customer who is using zone rates and a zone rate clone. We have a Priority Mail zone rate and a clone of zone rate set up for First Class Zone. She does not want orders over $20 to be able to go out on the first class zone and for Priority mail zone to be the only available selection.

    In admin under zone rate 2 (clone) we have 19.99:3.65

    in includes/modules/shipping/zones2.php I added:

    // disable only when entire cart is free shipping
    if (zen_get_shipping_enabled($this->code)) {
    $this->enabled = ((MODULE_SHIPPING_ZONES2_STATUS == 'True') ? true : false);
    }
    // JG added to disable only when entire cart price is over 20 dollars
    global $order_total_amount;
    if ($order_total_amount > 19.99) {
    $this->enabled = false;
    }

    But the cart still shows the First Class shipping SELECTED and it says:
    First Class Rate 3-4 days
    $0.00
    The shipping rate cannot be determined at this time

    Am I using the wrong coding to get it to not show when the total cart is $20 or over?


    Quote Originally Posted by Ajeh View Post
    My bad ...

    Use the code:
    Code:
          global $total_weight;
          if ($total_weight > 2) {
            $this->enabled = false;
          }

  5. #15
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Zone Rates: maximum shipping weight exceeded

    To make the Zone2 not show over $20.00 you have to use the right variable ...

    This code needs to be changed:
    Code:
    // JG added to disable only when entire cart price is over 20 dollars
    global $order_total_amount;
          if ($order_total_amount > 19.99) {
            $this->enabled = false;
          }
    Try using instead of:
    Code:
    global $order_total_amount;
          if ($order_total_amount > 19.99) {
    Use the setting $_SESSION['cart']->show_total() such as:
    Code:
    if ($_SESSION['cart']->show_total() >= 20.00) {
    NOTE: You should not need a global on this.

    See if that does it for you, as I have not tested the results, but see if now Zone2 will stop showing when the order is >= 20.00 ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  6. #16
    Join Date
    May 2006
    Location
    Montana
    Posts
    291
    Plugin Contributions
    20

    Default Re: Zone Rates: maximum shipping weight exceeded

    Linda - because of the way this customer has her zones set up and the minimums, I had to create a table rate for US First Class Shipping. I was HOPING that I would still be able to use the code you gave above without any problems. (Some days I wish I were a coder instead of a designer! LOL) It WORKS great on the front end of the site - BUT... when I go into the admin to modules>shipping, I cannot edit the shipping modules and logs show an error of:

    [11-Dec-2014 17:33:04 UTC] PHP Fatal error: Call to a member function show_total() on a non-object in /home/sojewelc/public_html/includes/modules/shipping/table.php on line 67

    I have tried moving the code around to different spots, but no joy. Here is includes/modules/shipping/table.php coding with what I added highlighted in red. Like I said, it works perfectly on the cart - just not in the admin.

    Code:
    <?php
    
    
    /**
     * @package shippingMethod
     * @copyright Copyright 2003-2009 Zen Cart Development Team
     * @copyright Portions Copyright 2003 osCommerce
     * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
     * @version $Id: table.php 14498 2009-10-01 20:16:16Z ajeh $
     */
    /**
     * Enter description here...
     *
     */
    class table extends base {
      /**
       * Enter description here...
       *
       * @var unknown_type
       */
      var $code;
      /**
       * Enter description here...
       *
       * @var unknown_type
       */
      var $title;
      /**
       * Enter description here...
       *
       * @var unknown_type
       */
      var $description;
      /**
       * Enter description here...
       *
       * @var unknown_type
       */
      var $icon;
      /**
       * Enter description here...
       *
       * @var unknown_type
       */
      var $enabled;
      /**
       * Enter description here...
       *
       * @return table
       */
      function table() {
        global $order, $db;
    
        $this->code = 'table';
        $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE;
        $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION;
        $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER;
        $this->icon = '';
        $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS;
        $this->tax_basis = MODULE_SHIPPING_TABLE_TAX_BASIS;
    	
        // disable only when entire cart is free shipping
        if (zen_get_shipping_enabled($this->code)) {
          $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);
        }
    // JG added to disable only when entire cart price is over 20 dollars
    if ($_SESSION['cart']->show_total() >= 20.00) {
     $this->enabled = false;
          }
    	  if ($this->enabled) {
          // check MODULE_SHIPPING_TABLE_HANDLING_METHOD is in
          $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_HANDLING_METHOD'");
          if ($check_query->EOF) {
            $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Handling Per Order or Per Box', 'MODULE_SHIPPING_TABLE_HANDLING_METHOD', 'Order', 'Do you want to charge Handling Fee Per Order or Per Box?', '6', '0', 'zen_cfg_select_option(array(\'Order\', \'Box\'), ', now())");
          }
        }
    
        if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_ZONE > 0) ) {
          $check_flag = false;
          $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
          while (!$check->EOF) {
            if ($check->fields['zone_id'] < 1) {
              $check_flag = true;
              break;
            } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
              $check_flag = true;
              break;
            }
            $check->MoveNext();
          }
    
          if ($check_flag == false) {
            $this->enabled = false;
          }
        }
      }
      /**
       * Enter description here...
       *
       * @param unknown_type $method
       * @return unknown
       */
      function quote($method = '') {
        global $order, $shipping_weight, $shipping_num_boxes, $total_count;
    
        // shipping adjustment
        switch (MODULE_SHIPPING_TABLE_MODE) {
          case ('price'):
            $order_total = $_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices() ;
            break;
          case ('weight'):
            $order_total = $shipping_weight;
            break;
          case ('item'):
            $order_total = $total_count - $_SESSION['cart']->free_shipping_items();
            break;
        }
    
        $order_total_amount = $_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices() ;
    
        $table_cost = preg_split("/[:,]/" , MODULE_SHIPPING_TABLE_COST);
        $size = sizeof($table_cost);
        for ($i=0, $n=$size; $i<$n; $i+=2) {
          if (round($order_total,9) <= $table_cost[$i]) {
            if (strstr($table_cost[$i+1], '%')) {
              $shipping = ($table_cost[$i+1]/100) * $order_total_amount;
            } else {
              $shipping = $table_cost[$i+1];
            }
            break;
          }
        }
    
    	  
        if (MODULE_SHIPPING_TABLE_MODE == 'weight') {
          $shipping = $shipping * $shipping_num_boxes;
          // show boxes if weight
          switch (SHIPPING_BOX_WEIGHT_DISPLAY) {
            case (0):
            $show_box_weight = '';
            break;
            case (1):
            $show_box_weight = ' (' . $shipping_num_boxes . ' ' . TEXT_SHIPPING_BOXES . ')';
            break;
            case (2):
            $show_box_weight = ' (' . number_format($shipping_weight * $shipping_num_boxes,2) . TEXT_SHIPPING_WEIGHT . ')';
            break;
            default:
            $show_box_weight = ' (' . $shipping_num_boxes . ' x ' . number_format($shipping_weight,2) . TEXT_SHIPPING_WEIGHT . ')';
            break;
          }
        }
    
        $this->quotes = array('id' => $this->code,
        'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE . $show_box_weight,
        'methods' => array(array('id' => $this->code,
        'title' => MODULE_SHIPPING_TABLE_TEXT_WAY,
        'cost' => $shipping + (MODULE_SHIPPING_TABLE_HANDLING_METHOD == 'Box' ? MODULE_SHIPPING_TABLE_HANDLING * $shipping_num_boxes : MODULE_SHIPPING_TABLE_HANDLING) ) ));
    
        if ($this->tax_class > 0) {
          $this->quotes['tax'] = zen_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
        }
    
        if (zen_not_null($this->icon)) $this->quotes['icon'] = zen_image($this->icon, $this->title);
    
        return $this->quotes;
      }
      /**
       * Enter description here...
       *
       * @return unknown
       */
      function check() {
        global $db;
        if (!isset($this->_check)) {
          $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_STATUS'");
          $this->_check = $check_query->RecordCount();
        }
        return $this->_check;
      }
      /**
       * Enter description here...
       *
       */
      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 ('Enable Table Method', 'MODULE_SHIPPING_TABLE_STATUS', 'True', 'Do you want to offer table rate shipping?', '6', '0', '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 ('Shipping Table', 'MODULE_SHIPPING_TABLE_COST', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items or count of the items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc<br />You can also use percentage amounts, such 25:8.50,35:5%,40:9.50,10000:7% to charge a percentage value of the Order Total', '6', '0', 'zen_cfg_textarea(', 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 ('Table Method', 'MODULE_SHIPPING_TABLE_MODE', 'weight', 'The shipping cost is based on the order total or the total weight of the items ordered or the total number of items orderd.', '6', '0', 'zen_cfg_select_option(array(\'weight\', \'price\', \'item\'), ', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Handling Fee', 'MODULE_SHIPPING_TABLE_HANDLING', '0', 'Handling fee for this shipping method.', '6', '0', 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 ('Handling Per Order or Per Box', 'MODULE_SHIPPING_TABLE_HANDLING_METHOD', 'Order', 'Do you want to charge Handling Fee Per Order or Per Box?', '6', '0', 'zen_cfg_select_option(array(\'Order\', \'Box\'), ', now())");
    
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_TABLE_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'zen_get_tax_class_title', 'zen_cfg_pull_down_tax_classes(', 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 ('Tax Basis', 'MODULE_SHIPPING_TABLE_TAX_BASIS', 'Shipping', 'On what basis is Shipping Tax calculated. Options are<br />Shipping - Based on customers Shipping Address<br />Billing Based on customers Billing address<br />Store - Based on Store address if Billing/Shipping Zone equals Store zone', '6', '0', 'zen_cfg_select_option(array(\'Shipping\', \'Billing\', \'Store\'), ', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Shipping Zone', 'MODULE_SHIPPING_TABLE_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', 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_SHIPPING_TABLE_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
      }
      /**
       * Enter description here...
       *
       */
        function remove() {
          global $db;
          $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE\_SHIPPING\_TABLE\_%'");
        }
    
      /**
       * Enter description here...
       *
       * @return unknown
       */
      function keys() {
        return array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_COST', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING', 'MODULE_SHIPPING_TABLE_HANDLING_METHOD', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_TAX_BASIS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER');
      }
    }
    ?>

  7. #17
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Zone Rates: maximum shipping weight exceeded

    What version Zen Cart are you using?

    Just above the IF for the show_total, add and change the IF to:
    Code:
    if (!IS_ADMIN_FLAG && $_SESSION['cart']->show_total() >= 20.00) {
    If still a problem, then add above the IF the code:
    global $cart;
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  8. #18
    Join Date
    May 2006
    Location
    Montana
    Posts
    291
    Plugin Contributions
    20

    Default Re: Zone Rates: maximum shipping weight exceeded

    Quote Originally Posted by Ajeh View Post
    What version Zen Cart are you using?

    Just above the IF for the show_total, add and change the IF to:
    Code:
    if (!IS_ADMIN_FLAG && $_SESSION['cart']->show_total() >= 20.00) {
    If still a problem, then add above the IF the code:
    global $cart;
    She is on Zen Cart version 1.5.3. Your solution worked PERFECTLY!! Thanks so much Linda!

  9. #19
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Zone Rates: maximum shipping weight exceeded

    You are most welcome ...

    Thanks for the update that this is working for you ...

    Remember the Zen Cart Team when you are rich and famous ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  10. #20
    Join Date
    Nov 2014
    Location
    United States
    Posts
    8
    Plugin Contributions
    0

    Default Re: Zone Rates: maximum shipping weight exceeded

    Quote Originally Posted by Ajeh View Post
    You are most welcome ...

    Thanks for the update that this is working for you ...

    Remember the Zen Cart Team when you are rich and famous ...
    Hello, sorry to jump into this conversation uninvited. Ajeh, I sent you a private message. Did you receive it?
    I just checked my "sent" folder and it doesn't show anything there.
    I was wondering if you could help with a mod you wrote, please see:
    http://www.zen-cart.com/showthread.p...Delete)/page14

    Thank you in advance.

 

 
Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. v150 Zone Rates - calculate shipping by total weight not per product
    By mattys in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 30 Jul 2012, 02:52 PM
  2. zone rates configuring by price and not weight
    By giftsandwhatnot in forum Built-in Shipping and Payment Modules
    Replies: 11
    Last Post: 19 Aug 2011, 08:28 PM
  3. Multiple Shipping rates depending on zone and weight
    By buffy in forum Built-in Shipping and Payment Modules
    Replies: 0
    Last Post: 18 Dec 2009, 03:08 PM
  4. Mixing Per Weight Unit and Zone Table Rates
    By thomasharding in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 2 Sep 2009, 10:07 PM
  5. Zone Rates Problem with weight lbs to kgs
    By bookwise in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 11 Mar 2009, 04:38 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