Results 1 to 4 of 4
  1. #1
    Join Date
    Mar 2009
    Posts
    18
    Plugin Contributions
    0

    Default HELP - Cloning Per Item Shipping. Showing up but one doesn't work!

    Hello all,

    I'm stumped here and could use some help. I'm setting up two kinds of PER ITEM shipping methods for our store.
    1. Standard Shipping, and
    2. Priority/Registered Shipping (with slightly higher rates)

    To do this, I basically copied the Per Item Shipping and changed most of the ITEM to ITEM 2. That was a great idea, and in my checkout page both of them were showing.

    HOWEVER, in my checkout page STEP 2, where you choose your shipping method, if I choose the original Standard Shipping (no mods at all) and click on next to go to STEP 3, the page reloads itself and does not proceed.

    If I choose the new cloned Priority/Registered Shipping, and click to go to STEP 3, it WORKS!

    So why doesn't the first module work anymore? I'm attaching my codes below, please do help this poor soul in need! Thanks!

    Original Per Item Code - item.php
    Code:
    <?php
    /**
     * @package shippingMethod
     * @copyright Copyright 2003-2006 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: item.php 5501 2007-01-01 15:42:54Z ajeh $
     */
    
    
      class ITEM {
        var $code, $title, $description, $icon, $enabled;
    
    // class constructor
        function ITEM() {
          global $order, $db;
    
          $this->code = 'ITEM';
          $this->title = MODULE_SHIPPING_ITEM_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_ITEM_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_ITEM_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_ITEM_TAX_CLASS;
          $this->tax_basis = MODULE_SHIPPING_ITEM_TAX_BASIS;
    
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
            $this->enabled = ((MODULE_SHIPPING_ITEM_STATUS == 'True') ? true : false);
          }
    
          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_ITEM_ZONE > 0) ) {
            $check_flag = false;
            $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_ITEM_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;
            }
          }
        }
    
    // class methods
        function quote($method = '') {
          global $order, $total_count;
    
          // adjusted count for free shipping
          $item_total_count = $total_count - $_SESSION['cart']->free_shipping_items();
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_ITEM_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => MODULE_SHIPPING_ITEM_TEXT_WAY,
                                                         'cost' => (MODULE_SHIPPING_ITEM_COST * $item_total_count) + MODULE_SHIPPING_ITEM_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;
        }
    
        function check() {
          global $db;
          if (!isset($this->_check)) {
            $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_ITEM_STATUS'");
            $this->_check = $check_query->RecordCount();
          }
          return $this->_check;
        }
    
        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 Item Shipping', 'MODULE_SHIPPING_ITEM_STATUS', 'True', 'Do you want to offer per item 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, date_added) values ('Shipping Cost', 'MODULE_SHIPPING_ITEM_COST', '2.50', 'The shipping cost will be multiplied by the number of items in an order that uses 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, date_added) values ('Handling Fee', 'MODULE_SHIPPING_ITEM_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, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_ITEM_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_ITEM_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_ITEM_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_ITEM_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
        }
    
        function remove() {
          global $db;
          $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }
    
        function keys() {
          return array('MODULE_SHIPPING_ITEM_STATUS', 'MODULE_SHIPPING_ITEM_COST', 'MODULE_SHIPPING_ITEM_HANDLING', 'MODULE_SHIPPING_ITEM_TAX_CLASS', 'MODULE_SHIPPING_ITEM_TAX_BASIS', 'MODULE_SHIPPING_ITEM_ZONE', 'MODULE_SHIPPING_ITEM_SORT_ORDER');
        }
      }
    ?>

    CLONED PER ITEM CODE for Priority/Registered Shipping - item2.php
    Code:
    <?php
    /**
     * @package shippingMethod
     * @copyright Copyright 2003-2006 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: item.php 5501 2007-01-01 15:42:54Z ajeh $
     */
    
    
      class item2 {
        var $code, $title, $description, $icon, $enabled;
    
    // class constructor
        function item2() {
          global $order, $db;
    
          $this->code = 'item2';
          $this->title = MODULE_SHIPPING_ITEM2_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_ITEM2_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_ITEM2_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_ITEM2_TAX_CLASS;
          $this->tax_basis = MODULE_SHIPPING_ITEM2_TAX_BASIS;
    
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
            $this->enabled = ((MODULE_SHIPPING_ITEM2_STATUS == 'True') ? true : false);
          }
    
          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_ITEM2_ZONE > 0) ) {
            $check_flag = false;
            $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_ITEM2_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;
            }
          }
        }
    
    // class methods
        function quote($method = '') {
          global $order, $total_count;
    
          // adjusted count for free shipping
          $item_total_count = $total_count - $_SESSION['cart']->free_shipping_items();
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_ITEM2_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => MODULE_SHIPPING_ITEM2_TEXT_WAY,
                                                         'cost' => (MODULE_SHIPPING_ITEM2_COST * $item_total_count) + MODULE_SHIPPING_ITEM2_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;
        }
    
        function check() {
          global $db;
          if (!isset($this->_check)) {
            $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_ITEM2_STATUS'");
            $this->_check = $check_query->RecordCount();
          }
          return $this->_check;
        }
    
        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 Item Shipping', 'MODULE_SHIPPING_ITEM2_STATUS', 'True', 'Do you want to offer per item 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, date_added) values ('Shipping Cost', 'MODULE_SHIPPING_ITEM2_COST', '2.50', 'The shipping cost will be multiplied by the number of items in an order that uses 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, date_added) values ('Handling Fee', 'MODULE_SHIPPING_ITEM2_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, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_ITEM2_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_ITEM2_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_ITEM2_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_ITEM2_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
        }
    
        function remove() {
          global $db;
          $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }
    
        function keys() {
          return array('MODULE_SHIPPING_ITEM2_STATUS', 'MODULE_SHIPPING_ITEM2_COST', 'MODULE_SHIPPING_ITEM2_HANDLING', 'MODULE_SHIPPING_ITEM2_TAX_CLASS', 'MODULE_SHIPPING_ITEM2_TAX_BASIS', 'MODULE_SHIPPING_ITEM2_ZONE', 'MODULE_SHIPPING_ITEM2_SORT_ORDER');
        }
      }
    ?>

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

    Default Re: HELP - Cloning Per Item Shipping. Showing up but one doesn't work!

    You appear to have changed the original code in item.php file ...

    Get a clean copy of it and load it to your server ...
    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: v1.5.5]
    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!

  3. #3
    Join Date
    Mar 2009
    Posts
    18
    Plugin Contributions
    0

    Default Re: HELP - Cloning Per Item Shipping. Showing up but one doesn't work!

    Quote Originally Posted by Ajeh View Post
    You appear to have changed the original code in item.php file ...

    Get a clean copy of it and load it to your server ...
    I don't get it. I thought to clone it we were supposed to change some of the code?

    Like - Item I changed it to Item2?

    Otherwise it won't work, will it?

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

    Default Re: HELP - Cloning Per Item Shipping. Showing up but one doesn't work!

    I am talking about the original file item.php ...

    You have:
    class ITEM

    that is not the original code ...

    Check and see if you accidentally changed the original file item.php from the original code ...
    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: v1.5.5]
    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!

 

 

Similar Threads

  1. Replies: 7
    Last Post: 20 Mar 2013, 02:12 PM
  2. Per Unit or Per Item Shipping Help?
    By JanieDress in forum Built-in Shipping and Payment Modules
    Replies: 39
    Last Post: 1 Nov 2010, 04:14 PM
  3. Only showing shipping method based on per item or weight amount
    By chinook in forum Built-in Shipping and Payment Modules
    Replies: 10
    Last Post: 30 May 2010, 09:54 AM
  4. Individual Shipping Per Item, and reduced cost per extra item
    By canad1an in forum Addon Shipping Modules
    Replies: 7
    Last Post: 6 Feb 2009, 11:41 PM
  5. Per item shipping - Enabled and not showing
    By arielon in forum Built-in Shipping and Payment Modules
    Replies: 13
    Last Post: 22 Oct 2008, 04:33 PM

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