Free Shipping is built into Zen Cart to manage shipping by item, weight or total ...
If you are using add-on shipping modules, you should check that they also include these features utilizing:
$_SESSION['cart']->free_shipping_prices()
$_SESSION['cart']->free_shipping_items()
weight is handled automatically by virtue of 0 weight ...
NOTE: Products must be setup correctly for these to work ...
EXAMPLE: Downloads are NOT Virtual Products and NOT Always Free Shipping they are managed based on the download existing on the attribute ...
EXAMPLE: Gift Certificates are ALWAYS Virtual Products and NOT Always Free Shipping and must have a products_model that starts with:
GIFTanything_else_can_be_here
NOTE: how the function is used in each of the shipping modules on the $this->enable ...
EXAMPLE, in the Item Rate item shipping module this function manages when to turn on/off the shipping module as when Free Shipping freeshipper shows, the other shipping modules automatically turn off and when it is not Free Shipping then the other shipping modules turn on and Free Shipping freeshipper turns off:
PHP Code:
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_ITEM_STATUS == 'True') ? true : false);
}