Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[contribution] individual product shipping prices


Recommended Posts

Has anyone had the problem where the Individual Shipping Price, and Each Additional Shipping price are not getting saved in the Edit of a Product? Despite changing the value, preview/update it, the value remains 0.0000 for both in the database.

Link to comment
Share on other sites

  • 2 weeks later...

I installed this contrib tonight...

 

Individual Product Shipping Prices - v3.1

http://www.oscommerce.com/community/contri...ons,1333/page,3

 

BUT I am confused on a few extra files in the zip. In your readme.txt you only mention/instruct us to edit 2 files. /includes/classes/shopping_cart.php & /admin/categories.php

 

But in the zip file you have other files that you do not refer to in the Readme. I did not do anything to the following files & this contrib works fine for me. Do I NEED to make any changes to the below files & if so what problems/errors will I see by not making the changes?

 

/checkout_shipping.php

/includes/classes/general.php

/includes/functions/shipping.php

Knowledge is Power!

Link to comment
Share on other sites

I installed this contribution a couple times unsuccessfully. I get the following error message on the admin categories:

1064 - You have an error in your SQL syntax near 'select p.products_id, pd.products_name, p.products_quantity, p.products_image, p' at line 1

 

This is the error message when you try and access the index.php:

Warning: main(includes/classes/shopping_cart.php) [function.main]: failed to create stream: No such file or directory in /usr/home/sites/www.veedubdesign.com/web/test/catalog/includes/application_top.php on line 123

 

admin/categories.php

 

CODE:

<?php

/*

  $Id: categories.php,v 1.146 2003/07/11 14:40:27 hpdl Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  Copyright © 2003 osCommerce

 

  Released under the GNU General Public License

*/

 

  require('includes/application_top.php');

 

  require(DIR_WS_CLASSES . 'currencies.php');

  $currencies = new currencies();

 

  $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

 

  if (tep_not_null($action)) {

    switch ($action) {

      case 'setflag':

        if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {

          if (isset($HTTP_GET_VARS['pID'])) {

            tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);

          }

 

          if (USE_CACHE == 'true') {

            tep_reset_cache_block('categories');

            tep_reset_cache_block('also_purchased');

          }

        }

 

        tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $HTTP_GET_VARS['cPath'] . '&pID=' . $HTTP_GET_VARS['pID']));

        break;

      case 'insert_category':

      case 'update_category':

        if (isset($HTTP_POST_VARS['categories_id'])) $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

        $sort_order = tep_db_prepare_input($HTTP_POST_VARS['sort_order']);

 

        $sql_data_array = array('sort_order' => $sort_order);

 

        if ($action == 'insert_category') {

          $insert_sql_data = array('parent_id' => $current_category_id,

                                  'date_added' => 'now()');

 

          $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

 

          tep_db_perform(TABLE_CATEGORIES, $sql_data_array);

 

          $categories_id = tep_db_insert_id();

        } elseif ($action == 'update_category') {

          $update_sql_data = array('last_modified' => 'now()');

 

          $sql_data_array = array_merge($sql_data_array, $update_sql_data);

 

          tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "'");

        }

 

        $languages = tep_get_languages();

        for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

          $categories_name_array = $HTTP_POST_VARS['categories_name'];

 

          $language_id = $languages[$i]['id'];

 

          $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]));

 

          if ($action == 'insert_category') {

            $insert_sql_data = array('categories_id' => $categories_id,

                                    'language_id' => $languages[$i]['id']);

 

            $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

 

            tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array);

          } elseif ($action == 'update_category') {

            tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'");

          }

        }

 

        if ($categories_image = new upload('categories_image', DIR_FS_CATALOG_IMAGES)) {

          tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id . "'");

        }

 

        if (USE_CACHE == 'true') {

          tep_reset_cache_block('categories');

          tep_reset_cache_block('also_purchased');

        }

 

        tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id));

        break;

      case 'delete_category_confirm':

        if (isset($HTTP_POST_VARS['categories_id'])) {

          $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

 

          $categories = tep_get_category_tree($categories_id, '', '0', '', true);

          $products = array();

          $products_delete = array();

 

          for ($i=0, $n=sizeof($categories); $i<$n; $i++) {

            $product_ids_query = tep_db_query("select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$categories[$i]['id'] . "'");

 

            while ($product_ids = tep_db_fetch_array($product_ids_query)) {

              $products[$product_ids['products_id']]['categories'][] = $categories[$i]['id'];

            }

          }

 

          reset($products);

          while (list($key, $value) = each($products)) {

            $category_ids = '';

 

            for ($i=0, $n=sizeof($value['categories']); $i<$n; $i++) {

              $category_ids .= "'" . (int)$value['categories'][$i] . "', ";

            }

            $category_ids = substr($category_ids, 0, -2);

 

            $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$key . "' and categories_id not in (" . $category_ids . ")");

            $check = tep_db_fetch_array($check_query);

            if ($check['total'] < '1') {

              $products_delete[$key] = $key;

            }

          }

 

// removing categories can be a lengthy process

          tep_set_time_limit(0);

          for ($i=0, $n=sizeof($categories); $i<$n; $i++) {

            tep_remove_category($categories[$i]['id']);

          }

 

          reset($products_delete);

          while (list($key) = each($products_delete)) {

            tep_remove_product($key);

          }

        }

 

        if (USE_CACHE == 'true') {

          tep_reset_cache_block('categories');

          tep_reset_cache_block('also_purchased');

        }

 

        tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));

        break;

      case 'delete_product_confirm':

        if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['product_categories']) && is_array($HTTP_POST_VARS['product_categories'])) {

          $product_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);

          $product_categories = $HTTP_POST_VARS['product_categories'];

 

          for ($i=0, $n=sizeof($product_categories); $i<$n; $i++) {

            tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "' and categories_id = '" . (int)$product_categories[$i] . "'");

          }

 

          $product_categories_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "'");

          $product_categories = tep_db_fetch_array($product_categories_query);

 

          if ($product_categories['total'] == '0') {

            tep_remove_product($product_id);

          }

        }

 

        if (USE_CACHE == 'true') {

          tep_reset_cache_block('categories');

          tep_reset_cache_block('also_purchased');

        }

 

        tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));

        break;

      case 'move_category_confirm':

        if (isset($HTTP_POST_VARS['categories_id']) && ($HTTP_POST_VARS['categories_id'] != $HTTP_POST_VARS['move_to_category_id'])) {

          $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

          $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);

 

          $path = explode('_', tep_get_generated_category_path_ids($new_parent_id));

 

          if (in_array($categories_id, $path)) {

            $messageStack->add_session(ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT, 'error');

 

            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id));

          } else {

            tep_db_query("update " . TABLE_CATEGORIES . " set parent_id = '" . (int)$new_parent_id . "', last_modified = now() where categories_id = '" . (int)$categories_id . "'");

 

            if (USE_CACHE == 'true') {

              tep_reset_cache_block('categories');

              tep_reset_cache_block('also_purchased');

            }

 

            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&cID=' . $categories_id));

          }

        }

 

        break;

      case 'move_product_confirm':

        $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);

        $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);

 

        $duplicate_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$new_parent_id . "'");

        $duplicate_check = tep_db_fetch_array($duplicate_check_query);

        if ($duplicate_check['total'] < 1) tep_db_query("update " . TABLE_PRODUCTS_TO_CATEGORIES . " set categories_id = '" . (int)$new_parent_id . "' where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$current_category_id . "'");

 

        if (USE_CACHE == 'true') {

          tep_reset_cache_block('categories');

          tep_reset_cache_block('also_purchased');

        }

 

        tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&pID=' . $products_id));

        break;

      case 'insert_product':

      case 'update_product':

        if (isset($HTTP_POST_VARS['edit_x']) || isset($HTTP_POST_VARS['edit_y'])) {

          $action = 'new_product';

        } else {

          if (isset($HTTP_GET_VARS['pID'])) $products_id = tep_db_prepare_input($HTTP_GET_VARS['pID']);

          $products_date_available = tep_db_prepare_input($HTTP_POST_VARS['products_date_available']);

 

          $products_date_available = (date('Y-m-d') < $products_date_available) ? $products_date_available : 'null';

 

          $sql_data_array = array('products_quantity' => tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),

                                  // mod indvship

'products_ship_price' => tep_db_prepare_input($HTTP_POST_VARS['products_ship_price']), //indvship

        'products_model' => tep_db_prepare_input($HTTP_POST_VARS['products_model']),

                                  'products_price' => tep_db_prepare_input($HTTP_POST_VARS['products_price']),

                                  'products_date_available' => $products_date_available,

                                  'products_weight' => tep_db_prepare_input($HTTP_POST_VARS['products_weight']),

                                  'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']),

                                  'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']),

                                  'manufacturers_id' => tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));

 

          if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {

            $sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']);

          }

 

          if ($action == 'insert_product') {

            $insert_sql_data = array('products_date_added' => 'now()');

 

            $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

 

            tep_db_perform(TABLE_PRODUCTS, $sql_data_array);

            $products_id = tep_db_insert_id();

 

            tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$current_category_id . "')");

          } elseif ($action == 'update_product') {

            $update_sql_data = array('products_last_modified' => 'now()');

 

            $sql_data_array = array_merge($sql_data_array, $update_sql_data);

 

            tep_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "'");

          }

 

          $languages = tep_get_languages();

          for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

            $language_id = $languages[$i]['id'];

 

            $sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),

                                    'products_description' => tep_db_prepare_input($HTTP_POST_VARS['products_description'][$language_id]),

                                    'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]));

 

            if ($action == 'insert_product') {

              $insert_sql_data = array('products_id' => $products_id,

                                      'language_id' => $language_id);

 

              $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

 

              tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);

            } elseif ($action == 'update_product') {

              tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "'");

            }

          }

 

          if (USE_CACHE == 'true') {

            tep_reset_cache_block('categories');

            tep_reset_cache_block('also_purchased');

          }

 

          tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id));

        }

        break;

      case 'copy_to_confirm':

        if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['categories_id'])) {

          $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);

          $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

 

          if ($HTTP_POST_VARS['copy_as'] == 'link') {

            if ($categories_id != $current_category_id) {

              $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$categories_id . "'");

              $check = tep_db_fetch_array($check_query);

              if ($check['total'] < '1') {

                tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$categories_id . "')");

              }

            } else {

              $messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY, 'error');

            }

          } elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {

            $product_query = tep_db_query("select /*mod indvship*/ products_ship_price, products_quantity, select products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");

            $product = tep_db_fetch_array($product_query);

 

            tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model, products_ship_price, products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" .

tep_db_input($product['products_ship_price']) . "', '".

tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "',  now(), '" . tep_db_input($product['products_date_available']) . "', '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");

 

            $dup_products_id = tep_db_insert_id();

 

            $description_query = tep_db_query("select language_id, products_name, products_description, products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$products_id . "'");

            while ($description = tep_db_fetch_array($description_query)) {

              tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_url']) . "', '0')");

            }

 

            tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$dup_products_id . "', '" . (int)$categories_id . "')");

            $products_id = $dup_products_id;

          }

 

          if (USE_CACHE == 'true') {

            tep_reset_cache_block('categories');

            tep_reset_cache_block('also_purchased');

          }

        }

 

        tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $categories_id . '&pID=' . $products_id));

        break;

      case 'new_product_preview':

// copy image only if modified

        $products_image = new upload('products_image');

        $products_image->set_destination(DIR_FS_CATALOG_IMAGES);

        if ($products_image->parse() && $products_image->save()) {

          $products_image_name = $products_image->filename;

        } else {

          $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : '');

        }

        break;

    }

  }

 

// check if the catalog image directory exists

  if (is_dir(DIR_FS_CATALOG_IMAGES)) {

    if (!is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error');

  } else {

    $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');

  }

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<title><?php echo TITLE; ?></title>

<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">

<script language="javascript" src="includes/general.js"></script>

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">

<div id="spiffycalendar" class="text"></div>

<!-- header //-->

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->

 

<!-- body //-->

<table border="0" width="100%" cellspacing="2" cellpadding="2">

  <tr>

    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

    </table></td>

<!-- body_text //-->

    <td width="100%" valign="top">

<?php

  if ($action == 'new_product') {

    $parameters = array('products_name' => '',

                      'products_description' => '',

                      'products_url' => '',

                      'products_id' => '',

                      'products_quantity' => '',

                      'products_model' => '',

                      'products_image' => '',

                      'products_price' => '',

                      'products_weight' => '',

                      'products_date_added' => '',

                      'products_last_modified' => '',

                      'products_date_available' => '',

                      'products_status' => '',

                          'products_tax_class_id' => '',

                      'manufacturers_id' => '');

 

    $pInfo = new objectInfo($parameters);

 

    if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {

      $product_query = tep_db_query("select /*changes indvship*/ p.products_ship_price, pd.products_name, select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");

      $product = tep_db_fetch_array($product_query);

 

      $pInfo->objectInfo($product);

    } elseif (tep_not_null($HTTP_POST_VARS)) {

      $pInfo->objectInfo($HTTP_POST_VARS);

      $products_name = $HTTP_POST_VARS['products_name'];

      $products_description = $HTTP_POST_VARS['products_description'];

      $products_url = $HTTP_POST_VARS['products_url'];

    }

 

    $manufacturers_array = array(array('id' => '', 'text' => TEXT_NONE));

    $manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name");

    while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {

      $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'],

                                    'text' => $manufacturers['manufacturers_name']);

    }

 

    $tax_class_array = array(array('id' => '0', 'text' => TEXT_NONE));

    $tax_class_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title");

    while ($tax_class = tep_db_fetch_array($tax_class_query)) {

      $tax_class_array[] = array('id' => $tax_class['tax_class_id'],

                                'text' => $tax_class['tax_class_title']);

    }

 

    $languages = tep_get_languages();

 

    if (!isset($pInfo->products_status)) $pInfo->products_status = '1';

    switch ($pInfo->products_status) {

      case '0': $in_status = false; $out_status = true; break;

      case '1':

      default: $in_status = true; $out_status = false;

    }

?>

<link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">

<script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>

<script language="javascript"><!--

  var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable", "new_product", "products_date_available","btnDate1","<?php echo $pInfo->products_date_available; ?>",scBTNMODE_CUSTOMBLUE);

//--></script>

<script language="javascript"><!--

var tax_rates = new Array();

<?php

    for ($i=0, $n=sizeof($tax_class_array); $i<$n; $i++) {

      if ($tax_class_array[$i]['id'] > 0) {

        echo 'tax_rates["' . $tax_class_array[$i]['id'] . '"] = ' . tep_get_tax_rate_value($tax_class_array[$i]['id']) . ';' . "\n";

      }

    }

?>

 

function doRound(x, places) {

  return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);

}

 

function getTaxRate() {

  var selected_value = document.forms["new_product"].products_tax_class_id.selectedIndex;

  var parameterVal = document.forms["new_product"].products_tax_class_id[selected_value].value;

 

  if ( (parameterVal > 0) && (tax_rates[parameterVal] > 0) ) {

    return tax_rates[parameterVal];

  } else {

    return 0;

  }

}

 

function updateGross() {

  var taxRate = getTaxRate();

  var grossValue = document.forms["new_product"].products_price.value;

 

  if (taxRate > 0) {

    grossValue = grossValue * ((taxRate / 100) + 1);

  }

 

  document.forms["new_product"].products_price_gross.value = doRound(grossValue, 4);

}

 

function updateNet() {

  var taxRate = getTaxRate();

  var netValue = document.forms["new_product"].products_price_gross.value;

 

  if (taxRate > 0) {

    netValue = netValue / ((taxRate / 100) + 1);

  }

 

  document.forms["new_product"].products_price.value = doRound(netValue, 4);

}

//--></script>

    <?php echo tep_draw_form('new_product', FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=new_product_preview', 'post', 'enctype="multipart/form-data"'); ?>

    <table border="0" width="100%" cellspacing="0" cellpadding="2">

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">

          <tr>

            <td class="pageHeading"><?php echo sprintf(TEXT_NEW_PRODUCT, tep_output_generated_category_path($current_category_id)); ?></td>

            <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

      </tr>

      <tr>

        <td><table border="0" cellspacing="0" cellpadding="2">

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_STATUS; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_radio_field('products_status', '1', $in_status) . ' ' . TEXT_PRODUCT_AVAILABLE . ' ' . tep_draw_radio_field('products_status', '0', $out_status) . ' ' . TEXT_PRODUCT_NOT_AVAILABLE; ?></td>

          </tr>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE; ?><br><small>(YYYY-MM-DD)</small></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' '; ?><script language="javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td>

          </tr>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $pInfo->manufacturers_id); ?></td>

          </tr>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

<?php

    for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

?>

          <tr>

            <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_NAME; ?></td>

            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('products_name[' . $languages[$i]['id'] . ']', (isset($products_name[$languages[$i]['id']]) ? $products_name[$languages[$i]['id']] : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td>

          </tr>

<?php

    }

?>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr bgcolor="#ebebff">

            <td class="main"><?php echo TEXT_PRODUCTS_TAX_CLASS; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_pull_down_menu('products_tax_class_id', $tax_class_array, $pInfo->products_tax_class_id, 'onchange="updateGross()"'); ?></td>

          </tr>

          <tr bgcolor="#ebebff">

            <td class="main"><?php echo TEXT_PRODUCTS_PRICE_NET; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_price', $pInfo->products_price, 'onKeyUp="updateGross()"'); ?></td>

          </tr>

          <tr bgcolor="#ebebff">

            <td class="main"><?php echo TEXT_PRODUCTS_PRICE_GROSS; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_price_gross', $pInfo->products_price, 'OnKeyUp="updateNet()"'); ?></td>

          </tr>

    <!-- mod indvship -->

<tr>

            <td class="main"><?php echo 'Indv. Shipping Price:'; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_ship_price', $pInfo->products_ship_price); ?></td>

          </tr>

<!-- end indvship -->

 

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

<script language="javascript"><!--

updateGross();

//--></script>

<?php

    for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

?>

          <tr>

            <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION; ?></td>

            <td><table border="0" cellspacing="0" cellpadding="0">

              <tr>

                <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>

                <td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? $products_description[$languages[$i]['id']] : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>

              </tr>

            </table></td>

          </tr>

<?php

    }

?>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_QUANTITY; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_quantity', $pInfo->products_quantity); ?></td>

          </tr>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_MODEL; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_model', $pInfo->products_model); ?></td>

          </tr>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?></td>

          </tr>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

<?php

    for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

?>

          <tr>

            <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_URL . '<br><small>' . TEXT_PRODUCTS_URL_WITHOUT_HTTP . '</small>'; ?></td>

            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('products_url[' . $languages[$i]['id'] . ']', (isset($products_url[$languages[$i]['id']]) ? $products_url[$languages[$i]['id']] : tep_get_products_url($pInfo->products_id, $languages[$i]['id']))); ?></td>

          </tr>

<?php

    }

?>

          <tr>

            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

          </tr>

          <tr>

            <td class="main"><?php echo TEXT_PRODUCTS_WEIGHT; ?></td>

            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_weight', $pInfo->products_weight); ?></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

      </tr>

      <tr>

        <td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added : date('Y-m-d'))) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . '  <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>

      </tr>

    </table></form>

<?php

  } elseif ($action == 'new_product_preview') {

    if (tep_not_null($HTTP_POST_VARS)) {

      $pInfo = new objectInfo($HTTP_POST_VARS);

      $products_name = $HTTP_POST_VARS['products_name'];

      $products_description = $HTTP_POST_VARS['products_description'];

      $products_url = $HTTP_POST_VARS['products_url'];

    } else {

      $product_query = tep_db_query("select /*changes indvship*/ p.products_ship_price, p.products_id, select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");

      $product = tep_db_fetch_array($product_query);

 

      $pInfo = new objectInfo($product);

      $products_image_name = $pInfo->products_image;

    }

 

    $form_action = (isset($HTTP_GET_VARS['pID'])) ? 'update_product' : 'insert_product';

 

    echo tep_draw_form($form_action, FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=' . $form_action, 'post', 'enctype="multipart/form-data"');

 

    $languages = tep_get_languages();

    for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

      if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {

        $pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);

        $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);

        $pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);

      } else {

        $pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);

        $pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);

        $pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);

      }

?>

    <table border="0" width="100%" cellspacing="0" cellpadding="2">

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">

          <tr>

            <td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . $pInfo->products_name; ?></td>

            <td class="pageHeading" align="right"><?php echo $currencies->format($pInfo->products_price); ?></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

      </tr>

      <tr>

        <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES . $products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') . $pInfo->products_description; ?></td>

      </tr>

<?php

      if ($pInfo->products_url) {

?>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

      </tr>

      <tr>

        <td class="main"><?php echo sprintf(TEXT_PRODUCT_MORE_INFORMATION, $pInfo->products_url); ?></td>

      </tr>

<?php

      }

?>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

      </tr>

<?php

      if ($pInfo->products_date_available > date('Y-m-d')) {

?>

      <tr>

        <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_AVAILABLE, tep_date_long($pInfo->products_date_available)); ?></td>

      </tr>

<?php

      } else {

?>

      <tr>

        <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_ADDED, tep_date_long($pInfo->products_date_added)); ?></td>

      </tr>

<?php

      }

?>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

      </tr>

<?php

    }

 

    if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {

      if (isset($HTTP_GET_VARS['origin'])) {

        $pos_params = strpos($HTTP_GET_VARS['origin'], '?', 0);

        if ($pos_params != false) {

          $back_url = substr($HTTP_GET_VARS['origin'], 0, $pos_params);

          $back_url_params = substr($HTTP_GET_VARS['origin'], $pos_params + 1);

        } else {

          $back_url = $HTTP_GET_VARS['origin'];

          $back_url_params = '';

        }

      } else {

        $back_url = FILENAME_CATEGORIES;

        $back_url_params = 'cPath=' . $cPath . '&pID=' . $pInfo->products_id;

      }

?>

      <tr>

        <td align="right"><?php echo '<a href="' . tep_href_link($back_url, $back_url_params, 'NONSSL') . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>

      </tr>

<?php

Link to comment
Share on other sites

Can anyone help me out..

 

What would happen if someone bought two items.. one that has individual shipping.. and the other didn't..

 

Could someone explain to me how the shipping would be calculated?

Hi,

 

that anyone have a idea on this?

Link to comment
Share on other sites

Has anyone managed to get this contibution to work with a category. yet..

 

Oh and also anyone managed to include this module in the update list as it would be handy to update the price in that module if you have many products.

Link to comment
Share on other sites

HI dm Gremlin / or anyone who can help

 

need your assistance please...

Basically i am still in search for my first request where i am trying base the shipping by the category rather than by indivial products..

 

But besides that the one i am using above is fine... untill now... my mission was at the time to base it on a product... but now i need to also add international charges..

 

for example if i buy Product A in my store country (UK) then shipping will be 1.00 frist item then additional 0.50 else teh rest of the world would be 2.00 first item then additional 1.00

 

SO if i am in UK buy 2 product A my shipping will be 1.00+0.50 = 1.50

 

Now if i am from the North Pole then my shipping charges would be

 

2 product A my shipping will be 2.00+1.00 = 3.00.

 

Is there anyway i can implement this solution...

 

that's way i was trying to get the shipping based on a category...

i hope you could assist me on this..

many thanks

Link to comment
Share on other sites

Can't find in the last 3 days of searching the forums for this question. We got the basic feature of the contribution to work. How do we display the shipping price with the item info on the product_info.php page? We'd like to try display it somewhere near the product price http://www.hyperrev.com/store/product_info...4&products_id=1

 

We've added the following code on in the product_info.php page and still no luck displaying it.

 

<?php

} else {

$product_info_query = tep_db_query("select p.products_id, p.products_ship_price, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");

$product_info = tep_db_fetch_array($product_info_query);

 

.......

 

<td class="pageHeading" valign="top"><?php echo $products_name; ?></td>

<td class="pageHeading" align="right" valign="top"><?php echo $products_price; ?></td>

<td class="pageHeading" align="right" valign="top"><?php echo $products_ship_price; ?></td>

 

I think a lot of people would find this useful as customers would see the shipping cost on that specific item. Another good place to display the shipping price would be the index.php page where it shows all the products of a search like here: http://www.hyperrev.com/store/index.php?cPath=1_4

Link to comment
Share on other sites

can someone please assist me with the correct code syntax for this....

 

 

    if ($qty > 1 AND shiptotal == $products_ship_price) { 


  $this->shiptotal += ($products_ship_price_two * ($qty-1)); 

   } else { 

    $this->shiptotal += ($products_ship_price * ($qty-1)); 
   }

 

I am trying to say only add the first shipping rate of the highest rate and then just add the second rate for the products.

Link to comment
Share on other sites

A bit closer but still not getting it to work... any ideas

 

 

if ($qty < 2)
{
  $this->shiptotal += ($products_ship_price);
}
else
{
  if ($products_ship_price >=3.50)
  {
    $products_ship_price = ($products_ship_price - 0.90);
  }
  $this->shiptotal = ($products_ship_price); 
  $this->shiptotal += ($products_ship_price_two * ($qty-1)); 
}

 

many thanks

Link to comment
Share on other sites

When I go to my catalog page in the admin panel, I get this error:

 

1054 - Unknown column 'p.products_ship_price_two' in 'field list'

 

select p.products_ship_price, p.products_ship_price_two, p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from products p, products_description pd, products_to_categories p2c where p.products_id = pd.products_id and pd.language_id = '1' and p.products_id = p2c.products_id and p2c.categories_id = '0' order by pd.products_name

 

[TEP STOP]

I've modded the files about 10 times, and every time, I get this error. What's wrong?

I'm having this same problem. Since all of our products have single rate shipping costs, I thought this modification would save us a lot of time adding shipping into the purchase price manually and then into the description to compensate for the price difference.

 

However, after installing, I did a quick test and noticed the above mentioned error when I tried to checkout. I ended up deleting "products_ship_price_two", and that has solved the problem of the error occuring. However, upon setting up a test item using the individual shipping mod, and then attempting to check out, the shipping rate was not added at any phase during the checkout process.

 

How can I get around this error and have the mod working?

Link to comment
Share on other sites

CivicRacingGirl7

 

TO solve your problem, the way you had installed the mod was probably fine, all you needed to do was to make sure you also added that field in your database.. in your case you should have also have products_ship_price_two in yout table.

 

hope that helps.

Link to comment
Share on other sites

Hey people, this is the most labor intensive contribution, if I'm not changing my son's diaper, I'm trying to get this module to work how I want it. But anyway enough jokes ( I know it was corny, no need to reply)

 

How can this module "add" the shipping price to the total without the customer selecting it in the checkout screen. If there are 2 items, one with UPS the other with the indiv shipping they can have the option of both. UPS should be the only one.

 

Please help me out with this one

Link to comment
Share on other sites

CivicRacingGirl7,

 

what do you mean by

 

but the individual s/h isn't showing up in the checkout

 

are you saying when you see the checkout page and it says shipping is So Much .

is the shipping price not showing up or you can see it but you can't see the 2 seperate amounts...

 

Also you may want to check in your admin section that you have enable that module...

Link to comment
Share on other sites

CivicRacingGirl7,

 

what do you mean by

 

but the individual s/h isn't showing up in the checkout

 

are you saying when you see the checkout page and it says shipping is So Much .

is the shipping price not showing up or you can see it but you can't see the 2 seperate amounts...

 

Also you may want to check in your admin section that you have enable that module...

it's set as "true" in the admin panel... but when i use the checkout on a test item which i applied the individual shipping to, no shipping amount appears at any stage throughout the checkout process.

Link to comment
Share on other sites

hmmm....

 

The only think i could think of ... is was the contribution working with just the first individual shipping price... IF it was then i would say have a look at everywhere you have defined 'p.products_ship_price' that you also have 'p.products_ship_price_two' and then check your function code that executes the calculation, that would be in /includes/classes/shopping_cart.php

 

Make sure that in that file you have all the configuration as per the instruction from the original contribution. and also on that file on about line 252 that:

 

after this code:

 

         $this->total += tep_add_tax($products_price, $products_tax) * $qty;

 

and before this code:

 

   $this->shiptotal += ($products_ship_price);

 

 

You have this in between:

 

   // mod indvship ORIGINAL 
  $this->shiptotal += ($products_ship_price);
 if ($qty > 1) { 
  $this->shiptotal += ($products_ship_price_two * ($qty-1)); 
  } 
  // end indvship

 

hope that helps..

Link to comment
Share on other sites

I've installed: First Item $X, Additional Items $Y Shipping

 

A couple of pages back on this thread a few people were saying that all their products were displaying a price of 0.00. I have the same problem.

 

1. How was this fixed? someone referred to some changes at http://www.guarana.org/spectra/Individual-...v3.1-patch.diff - but that just looks gobbledigook to me!

 

2. People keep referring to the instructions of this contrib saying it says to make changes to the database and modify files. The only instructions I have say to upload 2 files...

catalog/includes/modules/shipping/firstitemplus.php

catalog/includes/languages/english/modules/shipping/firstitemplus.php

and that's it! Am I missing something?? :unsure:

 

Any help/advice greatly appreciated!

Link to comment
Share on other sites

I've seen this question asked several times in this forum but never answered. Does anyone have a solution for this?

 

Can this contribution be modified to show several shipping methods per individual product (ie., UPS ground, Fedex 2 day, etc.)?

 

I want each product to have an individual shipping price for different shipping methods. For example each product will have a unique price to be shipped ground, 2 day, or overnight. The customer should be able to decide which shipping method they want.

 

Is this something that is do-able or is there a different contribution that would work better for this?

Link to comment
Share on other sites

jzee123, I solved this problem by adding the shipping options as attributes. It was labor intensive to add, but customers know the prices right away, and I can handle different shipping prices for different vendors.

 

Caroline

Link to comment
Share on other sites

thanks for the info CarrieB but because im using the master-slave contribution i cannot add product attributes.

 

Does anyone know a way to give the customer 3 different individual shipping prices for each item? One price for ground, 2nd day, and overnight.

And have the customer select this when they select the best shipping option on the checkout section?

Link to comment
Share on other sites

Hello, i need help, i wanna enable this shipping module just for one kind of product?s model... can you give a ideia how to do that...

 

i installed alright and everything it?s working rigth, i just wanna give one more condition... thanks

 

souzadavi

Davi S Souza

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...