I believe it is potentially confusing to show the shopping cart sidebox on pages which already display the shopping cart contents. Zen Cart has a built in feature to turn off the shopping cart sidebox on the shopping cart page (Go to Admin->Configuration->Layout Settings->Shopping Cart Box Status, and set this value to 2.). However, turning it off on additional pages is not difficult, and I recommend doing so. Here are the steps:
If you do not have a includes/modules/sideboxes/YOUR_TEMPLATE/shopping_cart.php file, create one by copying the file includes/modules/sideboxes/shopping_cart.php.
What if just some of the products in your Zen Cart can be added as fractional quantities? This is the issue I faced. I wanted my services to be able to be purchased fractionally, so someone could purchase (say) 2.5 hours of support. Here are the required steps, with the categories to be supported for fractional products being 10 and 11, with units of 0.25 being the increments. You should start by making a complete backup of your database.
In PHPMyAdmin, run the commands
UPDATE products SET products_quantity_order_units = 0.25 where master_categories_id in (10,11);
UPDATE products SET products_qty_box_status = 1 where master_categories_id in (10,11);
In Zen Admin, set Configuration->Stock->Product Quantity Decimals to 2. This allows quantities to be set to 2 decimal places, which units of 0.25 requires.
In Zen Admin, set Configuration->Product Listing->Display Product Add to Cart Button to 1. This allows people to add to cart from the listing page, but without adjusting quantity. You may skip this step if you wish to add the logic in the next step to the file includes/modules/YOUR_TEMPLATE/product_listing.php.
In includes/templates/YOUR_TEMPLATE/templates/tpl_product_info_display.php, right before the if statement that checks $products_qty_box_status, add this line of code:
$products_qty_box_status = product_has_decimal_units($_GET[‘products_id’]);
Create a function in includes/functions/extra_functions that implements product_has_decimal_units() by checking the product master category id for the specified product (and returns true if it’s 10 or 11).
If your template uses the HTML5 input type=”number” option for quantity, you’ll need to add step=”0.25″ to the input element.
This video shows Discount Preview in action, revealing an order total discount on the shopping cart page. (Normally, your customers have to wait until the second page of checkout to see their discounts.)
If you are using Better Together Admin (Zen Cart or osCommerce) and getting a log message that looks like this:
Only variables should be assigned by reference in YOUR_ADMIN/includes/xajax/xajax_core/xajaxPluginManager.inc.php on line 268
PHP Strict Standards: Non-static method xajaxPluginManager::getInstance() should not be called statically, assuming $this from incompatible context in YOUR_ADMIN/includes/xajax/xajax_core/xajax.inc.php on line 269
Zen Cart Squash Taxes allows you to compress local taxes (computed by the Local Sales Tax mod) and state taxes into a single record. This is useful for systems which require a single tax record, such as Paypal and Cartspan.