from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search


{{#lst:software|navbar}}: web applications: ZenCart

This page is a seed article. You can help HTYP water it: make a request to expand a given page and/or donate to help give us more writing-hours!


ZenCart is a free/open-source application for running an online store. It is a fork of osCommerce.


Related Pages

Differences from osCommerce

  • Plusses
    • Runs with or without register globals on
    • More friendly managing of admin security
    • Supports multiple admin users, with different privilege levels


  • When told to create the configure.php files and make them writeable, do not bother editing them; the web-based install overwrites what is in the file.
  • The "ZenCart" and "Sashbox" banners which appear down the sides and at the bottom can be turned off in the "banner manager" tool. Also, inside the "Layout Boxes Controller" tool are modules named "banner_box.php", "banner_box_all.php", and "banner_box2.php"; these probably/maybe have something to do with how/where banners are displayed (when there are any to display).
  • In the admin section, the username is case-sensitive. (Passwords are usually case-sensitive, but not usernames.)
  • ZenCart seems to have been designed with the assumption that the user would never need to import data from another system. There is no "bulk import" (e.g. using CSV files) facility, and writing one is hampered by the lack of any way to assign arbitrary keys to products or manufacturers (i.e. the data schema has no fields for this). One is left with the choice between a kluge (e.g. using meta tags tables to store the relevant data) or creating a new table for cross-referencing.

Modifying the Admin area

  • admin contains the files which implement the menu actions (i.e. when you click on a menu entry)
  • admin/includes/boxes contains the definitions of the menus and their drop-downs
  • admin/includes/header_navigation.php defines what actually shows up in the menubar: this "include"s all the PHP code which defines the functionality for each of the menus; to add a new/custom menu, create a new PHP file and then add a line including it
  • includes/database_tables.php contains defines for all the database's table names; if you add any new tables, add defines for them here.

Other settings

  • HTML title of store (i.e. the name of the page as displayed in the browser window title bar)
    • There may be some better place to set this, but the only place I could find for setting this is the constants TITLE and SITE_TAGLINE in:
  • The appearance of the top of the page is defined in includes/languages/english/header.php