Documentation Home

# Welcome to Zen Cart®

Dear Zen Cart® User,

Zen Cart® is made available to you for your use, addition, changes, modification, etc. without charge, under Version 2 of the GNU General Public License.

While we do not charge for this software, donations are greatly appreciated, each time you install a new version, to help cover the expenses of maintenance, upgrades, updates, the free support forum and the continued development of this software for your online E-Commerce store.

Donations can be made on the Zen Cart® Team Page

We appreciate your support.
The Zen Cart® Team

# About PHP versions

Zen Cart® v1.5.6 is designed for PHP 5.6 to 7.3, with MySQL 5.1 to 5.7 (or MariaDB 10.0-10.2) and Apache 2.2/2.4

While it is compatible with PHP 5.4.9 through PHP 7.3 for backward-compatibility while upgrading your site, you should be using a newer version whenever possible. As of the time of writing this, PHP 5.6 is considered obsolete. and you should be using PHP 7.1 or greater.

# Upgrade Instructions

This document only mentions the actual changes specific to v1.5.6 since v1.5.5.

## From v1.5.5

If you are already using v1.5.5 and *have NOT customized or altered* any of the files listed in the changed_files-v1-5-6.html document, then simply replace those files with the new files as listed.

If you have *have customized or altered* certain files, simply re-do your customizations in the new version of those particular files by making the same changes needed.

If you are using Addons/Plugins that have made alterations to those files, it is best to compare those changed files against the original Zen Cart files for the version those plugins were built for, and see what changes were there ... and then re-build those changes in the v1.5.6 file.

## To v1.5.6 from v1.5.4 or older

If you are upgrading from a version OLDER than v1.5.5, then please do a standard site upgrade. Be sure to review all the links in this article, including tips on staging the upgrade in a separate directory/folder.

# CHANGELOG - List of Changed Files

For a list of files that have been changed since v1.5.5, see the changed_files-v1-5-6.html document.

# A Note About Upgrading to the New Responsive Classic Template Added in v1.5.5

While Zen Cart® v1.5.5/v1.5.6 contains a newer "responsive_classic" template, we STRONGLY recommend that upgraders first upgrade the site using everything (including template_default) EXCEPT the contents of responsive_classic template.

Then once the upgraded site is working properly you can consider what changes you might want to make to your own active template.

(Important notes about template_default are shown below)

AGAIN: The responsive_classic template should NOT be implemented immediately as part of an upgrade; it should be a separate step ... if it is even used at all.

It is not NECESSARY to use responsive_classic ON YOUR EXISTING SITE, and you should UPGRADE THE REST OF YOUR SITE FIRST before attempting to convert/adapt it for use.

# Upgrader Notes About Changes to template_default

Upgraders should make sure they update *BOTH* template_default *AND* their custom templates as described here

In Zen Cart the template_default directory contains the master copy of all storefront page templates.

The normal procedure for customizing template files for use in your own personalized template is to make a copy of the corresponding file from template_default, put it into your own template folder (and matching folder structure), and make your customizations in that copy of the file.

This way the only files you need in your personalized template folder are those that you have altered in some way from template_default.

With that explained, it is important that whenever you upgrade your site, you should also inspect ALL the template_default files to determine which changes in those files need to be replicated in your customized files.

Often a tool like Beyond Compare or Araxis Merge or GnuDiff can be helpful for this.

The process is simple: compare the template_default directory files from your *old* version against the template_default files in the *new* version, and use those results as a reference to copy those updated changes into each of the files you have customized in your custom/personalized template in your store.

Then, and only after you have done all those comparisons and updated your customized files in your custom template folder, you will copy the template_default files from the new version into the template_default directory of your store. This way you will be left with updated personalized files *and* updated template_default files.

This way you will be left with updated personalized files *and* updated template_default files.

# What's New ... Changes from prior versions

## The fixes/changes in v1.5.6c since v1.5.6b include:

- Security Patch to prevent malicious SQL abuse
- Fix regression error from 156a/b where PHP errors would occur during PayPal processing
- Bugfix: functions_osh_update had a typo, causing errors
- Bugfix: download-by-redirect problem fixed when store is in a subdirectory
- Bugfix: duplicate (linked) products appeared during manufacturer filtering
- Bugfix: undefined TEXT_NO_PROD_SALES for coupons
- Ez-pages: fix lookup errors during multilingual use
- Reduce copy/paste errors during customer password reset
- Improvements to anti-spam for account creation and contact-us forms
- Improve DOB handling on account pages
- Fix tax-related errors in situations where no tax applies
- Tighter controls to prevent order tampering or spoofing
- Admin: Geo-Zone editor screen now displays the current zone name
- Admin: Recipient count accuracy fixed if some group emails fail
- Admin Keepalive tab stops flashing after expiration
- Dozens of small updates to prevent HTML errors and PHP error/notices under PHP 7.2+

## The fixes/changes in v1.5.6b since v1.5.6a include:

- zc_install: FIXED BUG: Now updates zero-date records in all tables before attempting to do required schema updates for newer MySQL versions
- Numerous notifier hooks added for compatibility with various plugins
- Language Files: Moved admin-side GV-related language defines to separate file for easier translation support and less duplication
- Language Files: Moved admin-side audience.php language file to catalog-side instead
- Admin: Fixed various page/template/markup errors
- Admin: Fixed some category/product/metatag editing bugs and price-manager date-display bugs
- Refactored catalog-side index_filters files for easier customizing
- Checkout - Fixed situation where customer shipping address choice could be lost when restarting checkout
- Authorize.Net - Reworked AIM and SIM modules to use SHA verification instead of deprecated MD5 responses
- PayPal - updated Express Checkout and Payments Pro to support recent changes to DoCapture API
- Square - updated to use specific API version instead of a moving target
- Template now shares template_default/jscript/jscript_framework.php unless overridden
- Updated Admin and Catalog jQuery and Admin Bootstrap versions
- Dozens of code updates for stricter PHP rules for PHP 7.2 and 7.3, and a few for older PHP 5 support for upgraders' benefit

## The bugfixes in v1.5.6a since original v1.5.6 include:

- Admin: Fix problem with creating coupons with percent off
- Admin: Fix broken attribute-copy-to-whole-category
- Admin: Improve whos-online session_decoding
- Admin: Fix deletion of multilingual ez-pages when deleting a language
- Admin: Fix validation of products_url in collect_info
- Admin: Add notifier for categories-products-listing, allowing an observer to insert an additional status-type icon.
- Admin: Fix geo-zones editor: wasn't saving inserts/edits due to wrong parameter
- Admin: Fix Spiffycal issues in Products Price Manager
- Admin: On config pages, only show the first 40 chars of a long config value so screen won't get messed up
- Modify notifier for zen_get_products_stock
- Prevent error: Cannot change session id when session is active
- Show default quantity of 1 in products_quantity_discounts if product doesn't have a discount quantity.
- Fix missing EMAIL_TEXT_TELEPHONE in email
- Avoid errors when restoring cart while cart has product with attributes without a text attribute.
- Clear strict notifications based around shipping and shipping estimates.
- Update and consolidate error handler code
- Prevent ezpages "countable" warnings in logs
- Fix error in perweightunit module
- Added missing 'zen_updated_by_admin' function
- Tax: Additional tax-handling notifications
- Tax: Allow override of zen_get_tax_rate return value.
- ot_coupon.php: Let an observer know that the coupon has been removed.
- ot_coupon.php: Indicate that the coupon processing is starting and then, for each product, notify whether/not the product qualifies for the discount.
- ot_shipping.php: Allow override of the shipping tax, since it can vary from one location to another.
- Template: Auto scroll-to-top on ajax confirmation page
- Template: Update the EN flag icon (previous gif was bad)
- Template: Added back language define which will be used by older templates
- zc_install: Handle old date_added zero dates
- zc_install: handle ezpages migration to multilingual where table-prefixes are used
- and a number of additional tweaks for PHP 7.2+ compatibility

## The most notable improvements and bugfixes in v1.5.6 since v1.5.5 include:

- Core - Updated dozens of files for compatibility with PHP 7.2, and 7.3
- Admin - Sales Report with Graphs added to reports list
- Admin - Admin session timeout and password expiry can now be configured via the admin
- Checkout - customer confirmation emails now include customer delivery telephone number
- Checkout - customer confirmation emails now include language-file defined message
- Checkout - Square Payment support is now built-in. Start taking credit card payments in just 5 minutes! See www.zen-cart.com/partners/square_setup
- Checkout - permit downloads from AWS as well as traditional methods
- Admin - Reworded "in stock"/"out of stock" to "enabled"/"disabled" on product-edit pages due to popular request
- Admin - Most of the Admin pages have been recreated using Twitter Bootstrap. These styling updates provide greater consistency and improved support for smaller screens (credits @Zen4All)
- Admin - Most buttons have been converted from images to CSS buttons (credits @Zen4All).
- Admin - Visitor history shown in graphical format on admin dashboard
- Admin - Monthly sales graph shown on Admin dashboard
- Admin - Admin pages now show their name in browser tabs, instead of generic "Admin"
- Admin - Order pages now have some observer hooks to allow plugins to display "more data" with less code-changes
- Admin - GV Queue indicator in Admin Header bar can be enabled/disabled in GV Module settings
- Coupon new features added: search, export, reactivate, delete duplicates, clone existing coupons
- Coupons can now be restricted to amount of an order or of a specific product
- Coupons can now be restricted to customers having a specified number of previous purchases
- Coupons can now be restricted to products not on sale
- Coupon restrictions can now be bulk-added via manufacturer filter
- Coupons can now optionally be used on Gift Certificates
- Coupon Usage Report added
- Template - CSS spans added around product-qty min/max/unit output, so that these items can be selectively hidden if needed. (Credits @lat9)
- Template - Compatibility updates to accommodate OnePageCheckout plugin integration
- Core: Added language-change notifier hooks
- Enhancement - Updated database to store more order-related data for easier order-reconstruction. This can help allow plugins to do more with completed order details.
- Enhancement - File-Uploading now gives more detailed feedback about failures related to invalid file types.
- Fixed - date display on Admin warning about log data is now formatted with store's default date format
- Mobile - Updated embedded MobileDetect to latest version
- Email - Updated embedded PHPMailer to latest version
- Utility - CurlTester has more links to external diagnostic tools, including TLS Testing verification
- Utility - Plugin version-check utility optimized to allow specific version-comparisons, and adapt to timeouts more quickly.
- DB: Remove unused basket 'final_price' field from database
- Structure query result to facilitate looping through results with "foreach" instead of "MoveNext".
- Removed old sagepay_form payment module, and old authorizenet_echeck payment module.
- All known v1.5.5 bugfixes and security fixes are included in v1.5.6
- ... and numerous other small improvements to make things work faster, sleeker, smarter and be easier to use

A detailed list of all edits to all files can be seen on Github at: v1.5.5f...v1.5.6a
And a full list for just v1.5.6-to-v1.5.6a on Github at: v1.5.6...v1.5.6a

^^ Back to Top ^^

# Help and Support

For additional help and support, visit the Zen Cart® Docs and the Zen Cart® Support Forum.

Zen Cart® is derived from: Copyright 2003 osCommerce
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
and is redistributable under Version 2 of the GNU General Public License.

This software is OSI Certified Open Source Software.
OSI Certified is a certification mark of the Open Source Initiative.

Copyright 2003 - 2019 Zen Ventures, LLC
Zen Cart®
www.zen-cart.com