Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 23
  1. #11
    Join Date
    Feb 2007
    Posts
    5
    Plugin Contributions
    0

    Default Re: Help cloning table module

    Ok, I think I have an idea of what to do. I'm looking to set up two table rates for shipping. I made one called table2.php copied from table.php and changed all references in the one in /includes/modules/shipping/

    For some reason (i'm sure it's an eazy fix i'm missing) the module shows up in the list through admin, but when I click install I get "1062 Duplicate entry 'MODULE_SHIPPING_TABLE_STATUS' for key 2
    in:
    [insert into 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())]
    If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields."

    This is what I have for the 2 files. What else could be missing?

    Language file

    <?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: table.php 1969 2005-09-13 06:57:21Z drbyte $
    //

    define('MODULE_SHIPPING_TABLE2_TEXT_TITLE', 'USPS Parcel Post');
    define('MODULE_SHIPPING_TABLE2_TEXT_DESCRIPTION', 'USPS Parcel Post');
    define('MODULE_SHIPPING_TABLE2_TEXT_WAY', 'USPS Parcel Post');
    define('MODULE_SHIPPING_TABLE2_TEXT_WEIGHT', 'Weight');
    define('MODULE_SHIPPING_TABLE2_TEXT_AMOUNT', 'Amount');
    ?>
    Module file

    <?php
    /**
    * @package shippingMethod
    * @copyright Copyright 2003-2005 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 4184 2006-08-21 03:36:36Z ajeh $
    */
    /**
    * Enter description here...
    *
    */
    class table2 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 table2() {
    global $order, $db;

    $this->code = 'table';
    $this->title = MODULE_SHIPPING_TABLE2_TEXT_TITLE;
    $this->description = MODULE_SHIPPING_TABLE2_TEXT_DESCRIPTION;
    $this->sort_order = MODULE_SHIPPING_TABLE2_SORT_ORDER;
    $this->icon = '';
    $this->tax_class = MODULE_SHIPPING_TABLE2_TAX_CLASS;
    $this->tax_basis = MODULE_SHIPPING_TABLE2_TAX_BASIS;
    // disable only when entire cart is free shipping
    if (zen_get_shipping_enabled($this->code)) {
    $this->enabled = ((MODULE_SHIPPING_TABLE2_STATUS == 'True') ? true : false);
    }

    if ( ($this->enabled == true) && ((int)MODULE_SHIPPING2_TABLE_ZONE > 0) ) {
    $check_flag = false;
    $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE2_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_TABLE2_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;
    }

    $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE2_COST);
    $size = sizeof($table_cost);
    for ($i=0, $n=$size; $i<$n; $i+=2) {
    if (round($order_total,9) <= $table_cost[$i]) {
    $shipping = $table_cost[$i+1];
    break;
    }
    }

    if (MODULE_SHIPPING_TABLE2_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_TABLE2_TEXT_TITLE . $show_box_weight,
    'methods' => array(array('id' => $this->code,
    'title' => MODULE_SHIPPING_TABLE2_TEXT_WAY,
    'cost' => $shipping + MODULE_SHIPPING_TABLE2_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_TABLE2_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_TABLE2_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_TABLE2_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', '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_TABLE2_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_TABLE2_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_TABLE2_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_TAX2_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_TABLE2_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_TABLE2_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 in ('" . implode("', '", $this->keys()) . "')");
    }
    /**
    * Enter description here...
    *
    * @return unknown
    */
    function keys() {
    return array('MODULE_SHIPPING_TABLE2_STATUS', 'MODULE_SHIPPING_TABLE2_COST', 'MODULE_SHIPPING_TABLE2_MODE', 'MODULE_SHIPPING_TABLE2_HANDLING', 'MODULE_SHIPPING_TABLE2_TAX_CLASS', 'MODULE_SHIPPING_TABLE2_TAX_BASIS', 'MODULE_SHIPPING_TABLE2_ZONE', 'MODULE_SHIPPING_TABLE2_SORT_ORDER');
    }
    }
    ?>
    Thanks in advance for the help

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

    Default Re: Help cloning table module

    This line:
    $this->code = 'table';

    Needs to be:
    $this->code = 'table2';
    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. #13
    Join Date
    Feb 2007
    Posts
    5
    Plugin Contributions
    0

    Default Re: Help cloning table module

    Worked perfect. Thank you very much.

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

    Default Re: Help cloning table module

    You are most welcome ... thanks for posting back the results ...
    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!

  5. #15
    Join Date
    Jan 2007
    Posts
    9
    Plugin Contributions
    0

    Default Re: Help cloning table module

    I'm using the above code and have managed to clone table once successfully.

    I'd like to clone it again, so that I have 3 table shipping modules. However trying the 3rd clone gives me the following error message:

    Code:
    1062 Duplicate entry 'MODULE_SHIPPING_TABLE_TAX2_BASIS' for key 2
    in:
    [insert into zen_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Tax Basis', 'MODULE_SHIPPING_TABLE_TAX2_BASIS', 'Shipping', 'On what basis is Shipping Tax calculated. Options are
    Shipping - Based on customers Shipping Address
    Billing Based on customers Billing address
    Store - Based on Store address if Billing/Shipping Zone equals Store zone', '6', '0', 'zen_cfg_select_option(array(\'Shipping\', \'Billing\', \'Store\'), ', now())]
    If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
    This appears after I click "Install" in the admin page on the new cloned table module.

    Help?????

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

    Default Re: Help cloning table module

    The constants are named as:
    MODULE_SHIPPING_TABLE_TEXT_TITLE

    The clone needs to use:
    MODULE_SHIPPING_TABLESOMETHING_TEXT_TITLE

    You are using:
    MODULE_SHIPPING_TABLE_SOMETHING_TEXT_TITLE

    So what happens is there is a conflict on table vs table_something as the table is within table_table

    but ...

    tablesomething is not within table_table

    or TABLESOMETHING_ is not within TABLE_

    So ... you need to use a naming convention without the conflict ...

    Just as if you cloned flat.php ...

    flatsomething not flat_something
    FLATSOMETHING not FLAT_SOMETHING

    Got all that?
    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!

  7. #17
    Join Date
    Jan 2007
    Posts
    9
    Plugin Contributions
    0

    Default Re: Help cloning table module

    Dammit!

    It's so obvious when I look at it, I don't know why I didn't fix it on my own. Its the only place I didn't use the right naming convention.

    Thanks!

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

    Default Re: Help cloning table module

    Most welcome ... glad that this could help you ...
    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!

  9. #19
    Join Date
    Feb 2007
    Posts
    37
    Plugin Contributions
    0

    Default Re: Help cloning table module

    I'm dumb apparently. I made sure the case sensitive thing was ok and now it loads the shipping mods table, until it gets to the new one. Now I get this:

    1146 Table 'lecart.OVERNIGHT_CONFIGURATION' doesn't exist
    in:
    [select configuration_value from OVERNIGHT_CONFIGURATION where configuration_key = 'MODULE_SHIPPING_OVERNIGHT_STATUS']
    If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.

    Any help would be appreciated.

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

    Default Re: Help cloning table module

    Looks like you replaced a few too many TABLE ...

    There are also references to the database tables which use the word TABLE in them ... and those do not get changed ...
    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!

 

 
Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. Tips on cloning Table Rate shipping module
    By shirster in forum Built-in Shipping and Payment Modules
    Replies: 88
    Last Post: 2 Dec 2010, 10:41 AM
  2. Problem cloning table shipping
    By earmsby in forum Built-in Shipping and Payment Modules
    Replies: 1
    Last Post: 11 Mar 2010, 08:21 PM
  3. Help building/cloning Shipping module for API
    By danstever in forum Built-in Shipping and Payment Modules
    Replies: 1
    Last Post: 29 Feb 2008, 04:17 PM
  4. cloning table module problems
    By recordshow in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 28 Nov 2006, 02:10 AM
  5. cloning the shipping module - table
    By drmad in forum Built-in Shipping and Payment Modules
    Replies: 5
    Last Post: 20 Oct 2006, 08:11 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