Edit - 01/31/2006: This post was updated to include instructions for versions 2.0.0 and newer.
Edit - 12/09/2009: This procedure is not necessary in versions 3 and newer. Squirrelcart automatically skips the shipping step when no shipping rates are available for a given order in version 3.
If you are selling a product that does not have a shipping charge, you may have added a shipping rule that charges $0 for any order. The cart still thinks it needs to calculate shipping, so during checkout, you will see a page where the shipping amount reads "TBD" and the bottom of the page asks the customer to click "continue" to choose their shipping method. When you click continue, it appears as if nothing has happened, but the shipping method has been updated to indicate $0, and the name you gave your shipping method. This may be confusing to the customer, and is an extra step that is not needed. To eliminate this extra click, do the following:
In versions prior to v2.0.0:
In "squirrelcart/functions/show_cart.func":
Find line number 9, which should be right below the line that starts with "global...".
Right at line 9, paste this code:
PHP Code:
// custom code eliminate extra screen at checkout that calculates shipping method
$SC['order']['shipping']['courier'] = "Service - ";
$SC['order']['shipping']['method'] = "no shipping charges apply";
$SC['order']['shipping']['cost'] = 0;
// end of custom code ------------------------------------------------------------------------------//
Then, save the file.
In versions v2.0.0 and newer:
1. Disable all Shipping Couriers in your control panel
2. Create a new courier, and name it "none". Uncheck the checkbox in the "Services" field and save the record.
3. Open your storefront page (store.php by default). In the default store.php, you will find this code:
PHP Code:
<?php
if ($SC['show_home_page']) {
include "home.php";
} else {
?>
<table width="100%" border="0">
<tr>
<td style="padding-bottom: 3; padding-top: 0">
<?php include "$cart_isp_root/crumb_navigation.php" ?>
</td>
</tr>
<tr>
<td class="content">
<?php
// Cart Content section
include "$cart_isp_root/cart_content.php" ;
?>
</td>
</tr>
</table>
<?php } ?>
The last line "<?php } ?>" above is at line #51 as of v2.1.3. If you are using versions 2.0.0 - 2.1.4, replace that line with this:
PHP Code:
<?php
}
$SC['order']['shipping']['courier'] = "none";
?>
If you are using version 2.2.0 or newer (not released as of this writing), replace that line with this:
PHP Code:
<?php
}
$SC['bypass_shipping'] = 'not required';
?>
4. Save the file