Results 1 to 4 of 4
  1. #1
    Join Date
    May 2007
    Posts
    18
    Plugin Contributions
    0

    application error Cloned Shipping Module not working

    Hi guys,

    I want to set up 4 flat rate shipping modules, and assign each one to a zone (2 flat fees for UK (Express and Standard), another for Europe, another for the rest of the world). I've created the appropriate zones and now need to clone the flat.php module 4 times and assign a zone to each one. I did so, following the tutorials and it doesn't work.

    Here is an example (my flat_uk_express.php module):

    File: /includes/modules/shipping/flat_uk_express.php
    Code:
    <?php
    //
    // +----------------------------------------------------------------------+
    // |zen-cart Open Source E-commerce                                       |
    // +----------------------------------------------------------------------+
    // | Copyright (c) 2004 The zen-cart developers                           |
    // |                                                                      |
    // | http://www.zen-cart.com/index.php                                    |
    // |                                                                      |
    // | 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: flat_uk_express.php 1969 2005-09-13 06:57:21Z drbyte $
    //
    
      class flat_uk_express {
        var $code, $title, $description, $icon, $enabled;
    
    // class constructor
        function flat_uk_express() {
          global $order, $db;
    
          $this->code = 'flat_uk_express';
          $this->title = MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_FLAT_UK_EXPRESS_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_FLAT_UK_EXPRESS_TAX_CLASS;
          $this->tax_basis = MODULE_SHIPPING_FLAT_UK_EXPRESS_TAX_BASIS;
    
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
            $this->enabled = ((MODULE_SHIPPING_FLAT_UK_EXPRESS_STATUS == 'True') ? true : false);
          }
    
          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLAT_UK_EXPRESS_ZONE > 0) ) {
            $check_flag = false;
            $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FLAT_UK_EXPRESS_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;
    
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_WAY,
                                                         'cost' => MODULE_SHIPPING_FLAT_UK_EXPRESS_COST)));
          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_FLAT_UK_EXPRESS_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 Flat Shipping', 'MODULE_SHIPPING_FLAT_UK_EXPRESS_STATUS', 'True', 'Do you want to offer flat_uk_express 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_FLAT_UK_EXPRESS_COST', '5.00', 'The shipping cost for all orders using 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_FLAT_UK_EXPRESS_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_FLAT_UK_EXPRESS_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_FLAT_UK_EXPRESS_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_FLAT_UK_EXPRESS_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_FLAT_UK_EXPRESS_STATUS', 'MODULE_SHIPPING_FLAT_UK_EXPRESS_COST', 'MODULE_SHIPPING_FLAT_UK_EXPRESS_TAX_CLASS', 'MODULE_SHIPPING_FLAT_UK_EXPRESS_TAX_BASIS', 'MODULE_SHIPPING_FLAT_UK_EXPRESS_ZONE', 'MODULE_SHIPPING_FLAT_UK_EXPRESS_SORT_ORDER');
        }
      }
    ?>
    /includs/languages/english/module/shipping/flat_uk_express.php:

    Code:
    <?php
    //
    // +----------------------------------------------------------------------+
    // |zen-cart Open Source E-commerce                                       |
    // +----------------------------------------------------------------------+
    // | Copyright (c) 2003 The zen-cart developers                           |
    // |                                                                      |   
    // | http://www.zen-cart.com/index.php                                    |   
    // |                                                                      |   
    // | 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: flat_uk_express.php 1969 2005-09-13 06:57:21Z drbyte $
    //
    
    
    define('MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_TITLE', 'Express shipping within UK');
    define('MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_DESCRIPTION', 'Express UK Flat Rate');
    define('MODULE_SHIPPING_FLAT_UK_EXPRESS_TEXT_WAY', 'Total Shipping Cost');
    ?>
    Now, when I enable it in my shipping module config, the status icon goes green, but when I purchase something and choose "Express UK Flat Rate" on "Step 1 of 3 - Delivery options", it just submits back to the same page (Step 1 of 3 - Delivery options). If I then assign a zone to this shipping module, the status icon goes to orange and it still doesn't work.

    I have tried just the standard flat shipping rate module and it works fine, but none of these cloned ones seem to work. Have I done something wrong?

    Please ask questions if anything from my situation is unclear.

    Thanks again for your help!

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

    Default Re: Cloned Shipping Module not working

    I'd try uninstalling this and install the regular flat ... set your zone ... does it work?

    If not, check your zone settings ...

    If it does work, then try changing your naming method from:

    flat_uk_express to flatukexpress
    FLAT_UK_EXPRESS FLATUKEXPRESS

    and rename the modules to match ...
    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!

  3. #3
    Join Date
    May 2007
    Posts
    18
    Plugin Contributions
    0

    Default Re: Cloned Shipping Module not working

    Yea, that fixed the problem. Turns out the underscores don't work in the module name. I renamed them all without underscores and it worked perfectly. Thanks!

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

    Default Re: Cloned Shipping Module not working

    flat is part of flat_uk_something but not part of flatuksomething or flatuk_something ...

    I just as soon skip the confusion and not use the underscores ...
    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!

 

 

Similar Threads

  1. v151 Cloned table shipping module not showing zone selector
    By earmsby in forum Built-in Shipping and Payment Modules
    Replies: 4
    Last Post: 17 Oct 2013, 06:29 PM
  2. v150 Cloned Shipping Module not appearing in Admin
    By sbloomer in forum Built-in Shipping and Payment Modules
    Replies: 3
    Last Post: 25 Jun 2012, 02:18 PM
  3. Cloned Shipping Module problem?
    By slannesh in forum Built-in Shipping and Payment Modules
    Replies: 3
    Last Post: 19 Jun 2009, 04:18 PM
  4. cloned shipping module does not appear in checkout
    By I Like Ham in forum Built-in Shipping and Payment Modules
    Replies: 6
    Last Post: 20 Feb 2009, 10:37 PM
  5. Cloned shipping module problem
    By psr racing in forum Built-in Shipping and Payment Modules
    Replies: 22
    Last Post: 6 Mar 2008, 12:04 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