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, we greatly appreciate donations 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. Please consider making a donation each time you install a new version.

Donations can be made on the Zen Cart Team Page

We appreciate your support.
The Zen Cart Team

About PHP versions

Zen Cart v2.0.x is designed for PHP 8.0 to 8.3, with MySQL 5.7.8+ (or MariaDB 10.2.7+) and Apache 2.2/2.4.

Upgrade Instructions

See the online docs for upgrading advice, including Release-Specific considerations to note regarding this version. https://docs.zen-cart.com/user/upgrading/

This document only mentions the actual changes specific to v2.0.x since v1.5.8a.

All Versions

If you are upgrading from the prior release, please do a standard site upgrade.

If you are upgrading from a release which is older than the prior release, you may wish to consider starting again using a database only upgrade.

Many older templates are going to be difficult to bring forward. If you are using an older template - especially one that is not responsive - you may wish to consider migrating to Responsive Classic or Bootstrap.

Be sure to review all the links in this article, including tips on staging the upgrade in a separate directory/folder.

If you are using Addons/Plugins that use modified versions of core Zen Cart files, you must compare those plugin files to the original Zen Cart files of the version for which those plugins were built, to identify the modifications. Subsequently you must replicate those modifications in the release version of the file. Be sure to check the plugin's support thread to see if a new version has been released since the one you installed before.

Always review the Release Specific Upgrade Considerations for the release you are upgrading to all the way back to the release you are upgrading from.

CHANGELOG - List of Changed Files

For a list of files that have been changed since v1.5.8a, see the changed_files-v2.0.0.html document.

Upgrading to a Responsive Template

If your site doesn't look good on a mobile phone or a tablet, it's likely because it's using an older non-responsive template. You can read about Responsive Templates on the help site to learn more.

If you are upgrading an older site, we recommend that you use a responsive template (rather than template_default or any older non-responsive template) as the starting point for your upgraded site. Both the Responsive Classic and Bootstrap templates are good candidates.

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. Comparison/Merging Tools are essential for this process; see the Zen Cart Developer Tools for recommendations.

The process is simple: compare the template_default directory files from your *old* version to the template_default files in the *new* version, and replicate any differences in the files in your custom/personalized template in your store. If you based your template on responsive_classic, you should also compare and merge any changes from that template.

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.

Language Files in Zen Cart 1.5.8 and above

Upgraders from prior versions of Zen Cart will notice a signficant change to the language files in this version. Because of new stricter PHP standards, simply doing a define on language file constants (with multiple define operations being done when overrides were present) was not an approach that could be used.

Zen Cart now uses Array based language files. For plugins with language files which are not overridden, the older style may still be used.

If you're doing an upgrade from a pre-1.5.8 Zen Cart version and are worried about all the language file changes you'll have to figure out, there is another option. Rather than porting *all* your customizations, you may want to start small and add customizations as they are needed. Many older templates made unnecessary changes which you will not want to carry forward. See basic language file customizations for a minimal starting list.

For developers with language skills wishing to provide a translation, developer information on Array based language files is provided.

What's New ... Changes from prior versions

The improvements in v2.0.1 since 2.0.0 include:

  • (Note: no database changes between 2.0.0/2.0.1, so no need to run zc_install again if 2.0.0 is already installed.)
  • Admin: NOTIFY_ADMIN_CUSTOMERS_LISTING_ELEMENT notifier enhanced to pass entire customer query result.
  • Admin: For stores with large numbers of coupons, selecting coupons on page 2+ can wind up showing a blank infoBox and the wrong coupon records.
  • Admin: Allow customization of dashboard widget display; see Admin Dashboard - Customizing.
  • Admin: Show two whois links if two IP addresses associated with an order.
  • Core: Improve encapsulated plugin management.
  • Core: Many PHP8 logs have been fixed.
  • Storefront: Fix template HTML issues.
  • Storefront: New Products listing now shows new products as configured.
  • Storefront: Shopping Cart class in_cart_check() function fixed.
  • Storefront: Notifiers added to shipping modules so storeowners can implement their own exception rules. See this page.
  • Storefront: Notifier added to coupon module so storeowners can implement their own exception rules (disabling specific coupons under certain conditions).
  • Storefront: Notifiers added so storeowners can add to Information, More Information and EZ-Pages sideboxes. See this page.

The improvements in v2.0.0 since v1.5.8a include:

  • New Feature: Wholesale pricing is now built-in (based on the Dual Pricing plugin). This feature allows storeowners to set price tiers on products, and assign customers to those tiers. See Wholesale Pricing.
  • New Feature: Coupons can be added to URLs and automatically applied. This feature allows storeowners to advertise URLs that automatically result in discounts for the customer. See Coupon Referrers.
  • New Feature: Responsive Classic template product images (main and additional) now shown in a modal dialog rather than a popup when clicked. This feature modernizes the display of images. See Popups.
  • Admin: All Products, New Products, Featured Products and Specials pages are now configured the same way as product listing pages. See New/Featured/All Listing Configuration Settings. (Note: this means the menu items "All Listing," "New Listing" and "Featured Listing" under the Configuration Menu are no longer there; go to the Configuration > Product Listing menu instead.)
  • Admin: Product pages now have a show/hide image option.
  • Admin: Consolidated product-type modules to reduce code duplication. Now, per-product-type specific files are only required if they differ from the main file.
  • Admin: Corrected display of Who's Online.
  • Admin: Corrected handling of salemaker start date/end date.
  • Admin: Coupon Restrict dropdown only shows products not already selected.
  • Admin: Customers default address id bug fix.
  • Admin: Customers list will now show registration IP. This behavior may also be disabled; see admin specific overrides.
  • Admin: Delete product checks to ensure product exists first.
  • Admin: Developers now have a [template settings](/dev/code/template_settings/) file to facilitate template switching.
  • Admin: Orders listing sidebox provides direct link to customer account.
  • Admin: Order details page provides a direct link to customer account.
  • Admin: Handle emails with embedded '+' signs.
  • Admin: Improve layout of search box.
  • Admin: Manufacturers page now has insert button when list is empty.
  • Admin: Manufacturers image is now properly scaled when displayed.
  • Admin: More pages converted to HTML5.
  • Admin: Orders screen now uses ipdata.co for IP Address information retrieval.
  • Admin: Order details page shows currency value for orders placed in non-default currency.
  • Admin: Order details page shows weight for each product in an order.
  • Admin: Order details page allows the user to copy addresses to the clipboard.
  • Admin: Payment module "retirement" allows storeowners to continue using older payment modules for processing existing orders but not offer them for new orders. See Payment Module Retirement for details.
  • Admin: PCI defined constants consolidated in a single file.
  • Admin: Deprecated files superceded by admin/includes/admin_html_head.php. Plugin authors please see Admin Head Content for details.
  • Admin: Search improvements for customers, coupons, developer's toolkit.
  • Admin: Shipping modules may now access per-product dimension information. See Shipping Dimensions.
  • Admin: Sort improvements for Specials and Featured pages.
  • Admin: Zero valued database server settings were displayed as blanks on Admin > Version > "View the database configuration variables". They are now shown as zeroes.
  • Core: Addition of manufacturer's part number (MPN) to the products table.
  • Core: Addition of shipping tax rate to the orders table.
  • Core: CrowdIn support for language translations.
  • Core: Updates to international zones and country names.
  • Core: Numerous updates for PHP 8.1 and 8.2 to resolve debug logs created by those newer PHP versions.
  • Core: Dependency update - Updating to Font Awesome 6 (from 4.7). See Font Awesome for details.
  • Core: Improved tax calculation accuracy throughout the cart.
  • Core: When $db connection is down, generate fewer logs.
  • Core: Performance improvements for stores with large databases.
  • Core: Improve multi-currency handling throughout cart.
  • Core: Fixes for PayPal constant MODULE_PAYMENT_PAYPALDP_MERCHANT_COUNTRY undefined.
  • Database: Correction of known issues with zones.
  • Storefront: Ability to compute category counts by distinct products, to avoid double-counting linked products. Users wishing this behavior should see site specific overrides.
  • Storefront: Accessibility improvements.
  • Storefront: An Accessibility page for storeowners to talk about what they have done to make their store accessible.
  • Storefront: Additional Images are only shown if there is a main image. Users of the Additional Product Images plugin who wish to disable this behavior, see site specific overrides.
  • Storefront: All Products, New Products, Featured Products and Specials pages are now laid out the same way as product listing pages. See New/Featured/All Listing Configuration Settings.
  • Storefront: Category pages now support fluid listing format. See Columnar Layout for Category Listing pages.
  • Storefront: Group Discount tax calculation fixes.
  • Storefront: Coupon with excluded products tax calculation fixes.
  • Storefront: Manufacturers sidebox shows scaled images.
  • Storefront: PayPal date handling standardized.
  • Storefront: PayPal Express Checkout zone and country correctly set for tax handling.
  • Storefront: Shipping modules now visible in Shipping Estimator when zone restriction and non-pulldown state setting is used.
  • Storefront: State dropdowns are now sorted alphabetically for all countries.
  • System: All "extra" folders are now loaded alphabetically. In prior releases, they were loaded in filesystem order, which would sometimes result in system-dependent issues.
  • System: The issue that caused the Uncaught IntlException: datefmt_create: invalid locale: U_ILLEGAL_ARGUMENT_ERROR problem for users running PHP 8.1/8.2 no longer requires configure.php changes.
  • Upgrade: Improved UI and progress reporting in zc_install.
  • All known v1.5.8/v1.5.8a bugfixes and security fixes are included in v2.0.0.
  • ... and many other incremental improvements to make Zen Cart more efficient, more robust and easier to use.

A detailed list of all edits to all files can be seen on Github at: v1.5.8a...v2.0.0

^^ 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.

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

Copyright 2003 - 2024 Zen Ventures, LLC

Zen Cart