Jump to content


  • Content count

  • Joined

  • Last visited

Posts posted by wazu

  1. After comparing your post to a few of our stores, it appears you are missing some tables (you have 7) here are the 11 we have:

     insert into configuration (configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function)


    Hope this helps

    wazu :thumbsup:

  2. Simple,

    1 - Offer a product and assign a price, ?Assorted 6 bottle box?

    2 - Add options, ?bottle1, bottle2, bottle3, etc.?

    3 ? Add attributes to each ?bottle? option (with no dollar value) 1 Red wine, 1 White wine, 1 Blue wine, etc.

    Customer will click on product (Assorted 6 bottle box) then see 6 drop downs each containing all the choices for selection to total the 6 bottles.


    wazu :thumbsup:

  3. Greetings,

    I hope this is the correct place to ask -

    When I set "use cashe" to "true" in the admin panel.

    Surf the store, the category links disappear, reset "use cashe" to "false" in the admin panel, they all re-appear?


    Categories Box

    Manufacturers Box

    Also Purchased Module

    All show up in "cashe control"


    :blink: chmod cashe tried 755 / 666 , Is this a permissions problem?


    Thanks in advance -



  4. Try this


    In admin>includes>functions.php around line 22, check this

     if ($filename != FILENAME_DEFAULT && $filename != FILENAME_FORBIDEN && $filename != FILENAME_LOGOFF && $filename != FILENAME_ADMIN_ACCOUNT && $filename != FILENAME_POPUP_IMAGE && $filename != 'packingslip.php' && $filename != 'invoice.php' && $filename != 'purchase.php' && $filename != 'confirm.php' && $filename != 'echo_result.php') {

    and make sure this


    is listed, Then, in admin>admin_files.php around line 238, check this

     if ((substr("$file", -4) == '.php') && $file != FILENAME_DEFAULT && $file != FILENAME_LOGIN && $file != FILENAME_LOGOFF && $file != FILENAME_FORBIDEN && $file != FILENAME_POPUP_IMAGE && $file != FILENAME_PASSWORD_FORGOTTEN && $file != FILENAME_ADMIN_ACCOUNT && $file != 'invoice.php' && $file != 'packingslip.php' && $file != 'purchase.php' && $file != 'confirm.php && $file != 'echo_result.php') {

    and again, see if this


    is in there. You might also confirm in admin>includes>filenames.php, you have this line

      define('FILENAME_ECHO_RESULT', 'echo_result.php'); // ECHO


    Hope you find this useful

    :thumbsup: wazu

  5. angi

    Fatal error: Cannot redeclare class echo_cc in /home/kasali3/public_html/cart/includes/modules/payment/echo_cc.php on line 14

    Sounds like echo is not being seen as a payment mod, check your install, or try it over.

    Make sure you enter the echo pin# in all (i think 4) places.



    Not sure why you would want to proces orders later... ?? I guess you could have this running on a laptop and take orders offline and then process later ??

    once a customer places an order, the "echo processing" can be used for that customer in the future to process additional orders maybe by telephone, snailmail.



  6. I've been using Echo, no mothly charge if no transactions for that month (seasonal stores), you can proccess through your store, or by hand on their site. The rate starts high at sign up (free), but if you call in a few months and ask for a "rate review" they drop it. Works for me.



  7. Greetings,


    This sounds slightly similar to what I am looking to do,


    Except, I need to identify the products attributes id and charge once for each occasion, and you, need only identify the product and charge every occasion. Both would be identified at check out, so you may start with ot_loworderfee.php and try hacking it.




    Or add one attribute (option) to that product with the description "handling fee" charging what you want. If there is only one, it will appear in the drop down with no other choice but to accept the charge as part of the purchase.


    :thumbsup: wazu

  8. This mod would also prove useful for services -

    You sell blinds and have an install fee

    You sell stationary and have a logo setup charge

    You sell wood moldings by the foot and have a setup charge

    You do mail order repair or modifications and have a trouble shoot (look at) fee

    You sell gold chain by the inch and charge a clasp and assemble fee

    You sell photography and you charge a matte or frame fee

    You are a plastic mold injector and you charge a setup fee

    You sell re-manufactured parts (auto, appliance, computer) and charge a core (old part to replace your stock) fee

    I?m sure there are dozens of other uses.


    Just a thought??.

    :-" wazu

  9. I stated with a ot_loworderfee.php. The thought was to run a re-named

    version of the hacked script for each color. Looked for and did not/

    cannot find any reference in ?classes? or modules.php regarding

    ot_loworderfee.php. I eliminated all the statements regarding minimum

    values and renamed ot_forestgreen_colorfee.php. Then added the color

    forestgreen to the color option menu.

    Running ot_loworderfee.php and ot_forestgreen_colorfee.php together did

    not seem to pose a problem, both worked in many combinations. However, a

    setup fee was assigned to EVERY order of forestgreen. Here is the hack

     $Id: ot_forestgreen_colorfee.php,v 1.11 2003/02/14 06:03:32 hpdl Exp $
     osCommerce, Open Source E-Commerce Solutions
     Copyright (c) 2003 osCommerce
     Released under the GNU General Public License
     class ot_forestgreen_colorfee {
       var $title, $output;
       function ot_forestgreen_colorfee() {
         $this->code = 'ot_forestgreen_colorfee';
         $this->enabled = ((MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_STATUS == 'true') ? true : false);
         $this->output = array();
       function process() {
         global $order, $currencies;
             case 'national':
               if ($order->delivery['country_id'] == STORE_COUNTRY) $pass = true; break;
             case 'international':
               if ($order->delivery['country_id'] != STORE_COUNTRY) $pass = true; break;
             case 'both':
               $pass = true; break;
               $pass = false; break;
           if ( ($pass == true) && ($order->info['products_options_values'] == '(optional color)Forest green') ){
             $tax = tep_get_tax_rate(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_TAX_CLASS, $order->delivery['country']['id'], $order->delivery['zone_id']);
             $tax_description = tep_get_tax_description(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_TAX_CLASS, $order->delivery['country']['id'], $order->delivery['zone_id']);
             $order->info['tax'] += tep_calculate_tax(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE, $tax);
             $order->info['tax_groups']["$tax_description"] += tep_calculate_tax(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE, $tax);
             $order->info['total'] += MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE + tep_calculate_tax(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE, $tax);
             $this->output[] = array('title' => $this->title . ':',
                                     'text' => $currencies->format(tep_add_tax(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE, $tax), true, $order->info['currency'], $order->info['currency_value']),
                                     'value' => tep_add_tax(MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE, $tax));
       function check() {
         if (!isset($this->_check)) {
           $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_STATUS'");
           $this->_check = tep_db_num_rows($check_query);
         return $this->_check;
       function keys() {
       function install() {
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Display FORESTGREEN_COLORFEE', 'MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_STATUS', 'true', 'Do you want to display the FORESTGREEN_COLORFEE?', '6', '1','tep_cfg_select_option(array(\'true\', \'false\'), ', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_SORT_ORDER', '4', 'Sort order of display.', '6', '2', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Allow FORESTGREEN_COLORFEE', 'MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_LOW_ORDER_FEE', 'false', 'Do you want to allow FORESTGREEN_COLORFEE?', '6', '3', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, date_added) values ('FORESTGREEN_COLORFEE', 'MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_FEE', '5', 'Low order fee.', '6', '5', 'currencies->format', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Attach FORESTGREEN_COLORFEE On Orders Made', 'MODULE_ORDER_TOTAL_FORESTGREEN_COLORFEE_DESTINATION', 'both', 'Attach FORESTGREEN_COLORFEE for orders sent to the set destination.', '6', '6', 'tep_cfg_select_option(array(\'national\', \'international\', \'both\'), ', now())");
         tep_db_query("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_ORDER_TOTAL_FORESTGREEN_COLORFEE_TAX_CLASS', '0', 'Use the following tax class on the FORESTGREEN_COLORFEE.', '6', '7', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())");
       function remove() {
         tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");


    I have also tried

      if ( ($pass == true) && ($order->info['products_options_values_id'] == '('108') ){

    with the same results. Anybody, any ideas? Once this was figured out correctly, it would have the ability to apply a one time fee (setup fee) to any attribute associated with a product (color, size, material, lettering, grafix, etc.)



  10. No Luck.

    It appears that the ot_loworderfee.php -

    looks for the required information (the color) :: products_options_value_id

    from the order :: $order->info['xxx_xxx_xxx']

    However, it appears, at this point, the required information (the color) has been merged with other information about the order and the format has been changed by the shopping cart for security :: $this->cartID = $this->generate_cart_id();


    Does anyone know how to extract the required information (the color):: products_options_value_id

    at this point? Maybe we can read it from the HTML source from boxes>shopping_cart.php at checkout confirmation (the point that loworderfee is introduced) using something like ::

    $cart_contents = $HTTP_POST_VARS['products_options_values_id'];


    $cart_contents = $HTTP_POST_VARS['products_options_values_name'];


    :'( I am obviously code?en in the dark (no clue). Any response will be appreciated.



  11. :thumbsup: Thank you very much sir.

    I apologize, if I?ve given you the impression ?I do not have the time?. The fact is, I thought it was a much simpler task and could learn enough to implement in a timely fashion. Based on our discussions, and my current (lack of) php knowledge, I cannot do this in a timely manner. I believe, I have investigated almost all 2500 available contributions, which led me to the current path. The working store currently has a required choice of 2 options of color (stainless steel and white) for all products. Stainless steel is the ?no up charge? default. White is the ?up charge ? option; we do not need a setup fee for white. We propose to add 21 additional ?up charge? colors to this option field and charge (only once per unique color) a setup fee for any of the 21 additional colors that are chosen. I believe this is the "functional spec" you described? I am not clear if posting the url is allowed, or if I emailed it to you if you would find it helpful.


    You have been most helpful; I will continue to explore the world of PHP.



  12. We considered alternatives to incorporate the additional costs of the color option, with no feasible solution. After reevaluating this color setup fee, we have determined it has to be implemented. For the short term, we will offer it as ?custom? requiring the customer to fill out a request. This may adversely impact online sales (for those purchasing color). In the long term, my inturpation of your valuable logic leads me to believe, you might lean towards adding additional values to track the ?color fee? or ?no color fee? approach. You suggested this is based on the limited consideration you gave to date and there may be simpler alternatives. May I ask you to briefly consider the following?


    A hack of the ?agree to terms mod?

    Customer will purchase the setup fee before gaining access to the color options. (As you are pointing out, it may make navigation sloppy and restricted.) This will solve the color fee, but generate how much more work for navigation clean up?


    Color popup

    Purchasing the color setup fee implements a popup for the available colors. Will it be simpler to get the java based ?popup choice? recognized by the cart?


    New setup

    The store is setup with 22 main color categories, shopping a unique category assigns its color fee (back to loworder fee hack). Another navigation nightmare.


    Any feedback would be immensely valuable, as we need to commit to a direction and are presently not qualified to do so.



  13. Dave, are you saying there is no way to call from the data stored in it's current form?




    71item id


    91color id


    81size id


    83mount id


    88diameter id


    If so, I am headed in the wrong direction. That would put this beyond me newbe.


    RE- group, RE- think, RE- drink?


  14. This is how the cart seams to be storing the product



    71item id


    91color id


    81size id


    83mount id


    88diameter id


    If the color information is already being stored, can we :

    from checkout?

    ($order->info['products_options_value_id'] == '91')

    or from in the cart?

    ($this->contents['products_options_value_id'] == '91')


    :blush: Am i gettin closer?

    thanks wazu

  15. Okay, back from dinner shopping.  Sorry about the shorthand.


    For the <pre> tags, if its inside php, you will have to say

    echo "<pre>";

    var_dump(array name);

    echo "</pre>";


    you have to echo the pre's because they are really html tags, but the var_dump goes right to the screen.


    I would take a good, hard look at that array that holds the color values and products.  Then I would figure out how to sort it by colors.  You might want to add an extra element to the array to track the setup fee ($0 or $X for setup).  Then, when you have collected all the data nicely, sorted, and lined it up in the array, you can figure out how to write it to the db table, if needed.


    Then you can make sure it comes out okay with the shopping cart screen, etc.  Setup just sounds like an extra price attribute that is calculated above after you do the array manipulation.




    Thank you VERY much. I'm going to do some (more) php schooling. Quick question, Am I trying to write the color data to the base?. as it is set up now, we have an attribute "color" with 22 options of colors. these colors are already being stored in the base as products_options_values_id right? That said would i simply have to identify the unique id number at the checkout ?


    thanks again,


  16. If there is not a contribution that can do this, I would just tend to dig into the php code myself.  I would think you would have to do that, because this is a special circumstance.



    I am brand new to PHP, am i headed in the right direction?

    It seems when the cart collects the content, it merges it and asigns a unique cart_id(classes>shopping_cart).

    Or is it pushed back at chekout?


  17. :blink: Greetings,

    We sell several items that are offered with many combinations of options. We can also sell any combination of any items we offer, in 22 different colors. However, setting up and cleaning down the spray equipment (after each color), forces us to charge a one time 'SETUP FEE' for each unique color ordered.




    (1) x model AAA (red) = $1.00 + $.50 (setup)

    (5) x model DDD (red)= $2.00






    (1) x model AAA (red) = $1.00 + $.50 (red setup)

    (5) x model DDD (red)= $2.00

    (2) x model AAA (blue) = $1.00 + $.50 (blue setup)

    (1) x model AAA (green)= $1.00 + $.50 (green setup)




    Because the setup fee need only apply once (after total number of unique colors have been calculated), it seems logical to be a ot_loworderrfee hack. The problem (as you were about to point out) is ot_loworderrfee calls from

    if ( ($pass == true) && ( ($order->info['total'] - $order->info['shipping_cost']) < MODULE_ORDER_TOTAL_LOWORDERFEE_ORDER_UNDER) ) {

    Assuming our colors are an option value, maybe we need

    if ( ($pass == true) && ( ($order->info['options_values_id'] == 107) ) {

    Unless, (as you were pointing out again) we are calling from the cart, maybe?

    if ( ($pass == true) && ($this->contents['products_options_value_id'] == '107') ){

    Am I re-inventing the wheel, maybe ot_loworderrfee is not the way to go. I looked at the CC (build custom computer mod) and it seems over kill. Any direction would be extremely appreciated.