Giter VIP home page Giter VIP logo

documentation's Introduction

Zen Cart® - The Art of E-Commerce

Zen Cart® was the first Open Source e-Commerce web application to be fully PA-DSS Certified.

Zen Cart v2.0.0 is the latest major update to the project. It contains bugfixes and updates for PHP8 applied on top of the PA-DSS Certified version v1.5.4.

Zen Cart is free and open source software, with free community-driven support available 24/7 on the Zen Cart® Support Site forums at zen-cart.com/forum


Zen Cart® v2.1.0-dev

Compatibility

Zen Cart v2.1.0 is designed for:

  • PHP 8.0 to PHP 8.4
  • MySQL 5.7.8+ or MariaDB 10.2.7+
  • Apache 2.2 and 2.4

Refer to compatibility requirements for additional details.

Installation

Installation is simple:

  1. Download Zen Cart
  2. Ensure you check that the md5/sha1 hash of the Zip matches those publicly posted.
  1. Unzip the downloaded zip file
  2. Everything inside the folder you unzipped needs to be uploaded to your webserver … for example, into your public_html or www or html folder (the folder will already exist on your webserver)
  3. In your browser, enter the address to your site, such as: www.example.com (or if you uploaded it into another subdirectory such as foldername use www.example.com/foldername)
  4. Rename the /includes/dist-configure.php and /admin/includes/dist-configure.php files to "configure.php" and make the files writable (so the install process can write your configuration information into them after you answer a few questions in the following steps).
  5. Also make the /cache and /logs folders writable. (You will be prompted about making other folders writable during installation)
  6. Follow the instructions that appear in your browser for installation.

If some of the terms used in these brief instructions are things you don't understand, there is a much more detailed set of instructions in the /docs/Implementation-Guide PDF.

Upgrading

Recommended reading related to upgrading: https://docs.zen-cart.com/user/upgrading/

Guidance for Secure Installations

The Implementation Guide document is provided to give detailed instructions on how to install and secure your site in accordance with PCI Compliance requirements. Whether your site "needs" PCI Compliance or not is up to you to decide, but you should still follow the documented principles to maximize your site's resilience against troublesome access attempted by any undesired/unauthorized visitors.

Documentation

Use your browser to open the /docs/index.html page for links to release documentation and the Implementation Guide. A storeowner documentation repository also exists at docs.zen-cart.com/user/.

Developer Documentation

Developers wishing to contribute to the Zen Cart® core code may fork the zencart/zencart repository on github and issue Pull Requests from their own feature branches. Please see CONTRIBUTING.

Visit docs.zen-cart.com/dev/ for guidance on issues relevant to developers. This documentation site is very new, but content will be added over time.

Developers wishing to contribute documentation should fork zencart/documentation and contribute PRs. Please see CONTRIBUTING to documentation.

Source

The Zen Cart source code is available at: https://github.com/zencart/zencart

Support

For free community-driven support with Zen Cart, visit our support site: https://www.zen-cart.com/forum.php

Donations/Sponsorship

Sponsorship through GitHub is a simple and convenient way to say "thank you" to Zen Cart's maintainers and contributors, and to help fund its ongoing development.

Just click the "Sponsor" button on the Zen Cart page on GitHub.

If your company uses Zen Cart, note that sponsorship and donations to the project are a valid regular business expense.

You may also donate via our website at https://www.zen-cart.com/donate

Security

We take security very seriously.

If you have discovered a critical security bug in Zen Cart, please email security [at] zen-cart [.] com with the details of the problem and how to trigger it. Issues will be responded to in a timely manner.

Follow Us

For news and updates about Zen Cart®, follow us on Twitter and Facebook

Sign up for our free Newsletter

Subscribe to Critical News Updates And Release Announcements

 

This project is supported by:

 

©Copyright 2003-2024, Zen Cart®. All rights reserved.

documentation's People

Contributors

barco57 avatar brittainmark avatar dbltoe avatar dependabot[bot] avatar drbyte avatar lat9 avatar marco-pm avatar mc12345678 avatar neekfenwick avatar prosela avatar retched avatar scottcwilson avatar simon1066 avatar tboyadjian avatar torvista avatar wiztechinc avatar zcwilt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

documentation's Issues

Sidebar menu generates invalid HTML

Submitted an issue to docsy about this and believe I have a solution, but proof of application requires breaking off from that branch and incorporating the suggested changes which affects two files (not currently included in the ZC docs partials).

There actually are a few things, but the first was to address the items generated in the list.

For at least the <ul> tag issue, see:
google/docsy#271

There may also still be an issue with links within the menu that had to be captured the same way as the above was corrected.

Configuration Settings help vs auto-generated script

You keep saying doc info is generated automatically by a script. Will the script need to be run again if changes occur? Does the script create the pages? If we edit the docs.zencart, does that make a permanent change that will not be overwritten by running the script again? I can definitely get started adding info into the docs. I just need clarity here.
I'm just trying to figure out what's going on.

Originally posted by @wiztechinc in zencart/zencart#3293 (comment)

Images

I am currently formulating an addition to the Image Preparation - how to Page but think we need to address the line up of this page first.

IMHO, the lineup should be as close to actual operation as possible. i.e., you wouldn't talk about adding attributes until you had covered the addition of products that might have those attributes.

What about swapping 1 & 2 to the 3 & 4 position which would make it:

Image Preparation- how to
Images -multiple image problems (and changing to Images - Preparing for Additional Images)
Additional Images - adding
Additional Images - disabling

Notifier parameter handling

I thought it was incredibly clever how EditOrdersAdminObserver.php uses generic names for the formal parameters of the update function, and then describes them in comments for each event type.

Would you please update

https://docs.zen-cart.com/dev/code/notifiers/

and describe this technique?

(While you're there, it would be great to give that article a scrub and improve the examples.)

Thank you!

Feedback widget use of JS arrow function

Initiated a post in the forum: https://www.zen-cart.com/showthread.php?226626-Display-and-operation-issues-with-docs-zen-cart-com

Where I identified that there was an issue accessing the docs.zen-cart.com site. One of the issues identified was a javascript issue that I believe I have tracked down, the question is how to obtain resolution (if it is to be resolved). It appears that the feedback.html partial file (apparently from docsy) uses a short form of javascript function assignment to a variable:

const disableButtons = () => {

and

const sendFeedback = (value) => {

While I can not comment on this being "appropriate" use or not, but in independent testing from my device, I have been able to confirm that if those lines had been written as:

const disableButtons = function() => {

and

const sendFeedback = function(value) => {

then they would execute successfully or at least not error at those line(s)...

I have found through other review that at least one file/location where this is contained in docsy is at:
google/docsy@65c93da

Where the feedback element was first incorporated.

I am making a note at that site/location about this issue as I suspect (since not finding the partial file feedback.html on this site) that the package is used/drawn from to provide the docs site. Therefore it seems that for it to be corrected it has to go through a third party and not through the ZC community.

Custom Sanitizing Methods

Can you add PRODUCT_URL_REGEX as one of the custom methods of sanitizing?

I need it for off site image retrieval (I know...it's not the best practice but the off site images will act as IMG_ALT eventually).

I am making it work at the moment by modifying init_sanitize.php:

//MIKE REMOVED FROM ARRAY BELOW - 'products_previous_image',
$group = array('img_dir', 'products_image_manual', 'products_attributes_filename', 'manufacturers_image_manual');
$sanitizer->addSimpleSanitization('FILE_DIR_REGEX', $group);

//MIKE ADDED TO THE ARRAY BELOW 'products_previous_image'
$group = array('products_url', 'products_previous_image', 'manufacturers_url');
$sanitizer->addSimpleSanitization('PRODUCT_URL_REGEX', $group);

I have added a custom sanitize file to extra_datafiles but can't, for the life of me, figure out how to obtain the same results as changing the init_santitize file.

Thanks.

Problem after installation

After installation I see my new menu items, they link to the pages I have created. But, if I close the browser/open and try to log back in I get a blank screen. I have to remove the files eg. new_tool_filenames.php to get back in. Then I have to upload the new_tool_filename.php again to see it in the menu.

Clearly, the files are writen correctly otherwise it wouldn't install.

I have tried many way. I tried removing the autoloaders and the init files but this makes no difference. I realise I am missing something, can you assist me in this matter.

Regards

title tag used twice in head

In review of the html validation for the docs site, specifically using: https://docs.zen-cart.com/user/about_us/in_memoriam/ as a basis, the <title> tag is used twice. Apparently once in the partial head.html (as part of the pulled in software) and then again it is added here:

<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}{{ end }}</title>

This causes an error in html validation. The code of this line is already incorporated into the head.html partial as found here: https://github.com/google/docsy/blob/8b786354829536454688df1e63b9cad792f68562/layouts/partials/head.html#L13

Removal from baseof.html would resolve that html validation error.

What are the Server Requirements for running Zen Cart?

Don't have time to work it just yet, but I was thinking this should be worded so we don't have to come back every 30 days to edit the file due to a PHP or MySQL change.

We are currently recommending PHP 7.0 with an EOL of over a year ago.

A healthy balance between providing information and providing a link to current information is always best IMHO

Improve frontmatter descriptions

title and description are two fields in a page's front matter -the block at the top of the file.

Many pages have a description which is just a restatements of the title. As you are changing a file, please try to improve this by using other keywords from the file, to help people scanning the category page determine if this article is the one they want.

  • Users (top level)
  • First Steps
  • New User Topics
  • About
  • Admin System
  • Customizing your Site
  • EZ-Pages
  • Email
  • Images
  • Installing
  • Localization
  • Locations
  • Miscellaneous
  • Order Total
  • Orders
  • Payment
  • Performance
  • Plugins
  • Products
  • Running
  • Security
  • Shipping
  • Sideboxes
  • Template System
  • Troubleshooting
  • Upgrading
  • Zen Cart Forum

Adding Sanitisation to existing page

I would like to know how i would add sanitisation for a field that I add to say product details. So i add a field called product location which i want to be SIMPLE_ALPHANUM_PLUS.
should I create a file in /admin/includes/extra_datafiles/ say called product_details.php
and include the code.
$sanitizer = AdminRequestSanitizer::getInstance();
$group = array(
'id' => array('sanitizerType' => 'SIMPLE_ALPHANUM_PLUS', 'method' => 'both', 'pages' => array('products_details'), 'params' => array()),
);
$sanitizer->addComplexSanitization($group);

is it really that simple?
I assume that I would also have to include some validation in the updateproduct module etc. or is it ok to just assume that the sanitiser has done the job?

I have also added fields into shipping/and packing gID=7 at the moment they contain html and are altered to < etc so i update via database. but was wondering if this routine could be used in the future versions of zen cart to do the sanitisation?

Creating a new Admin menu item

https://github.com/zencart/documentation/blob/master/content/dev/code/creating_menu.md

item #4 has nothing to do with creating an admin menu item. creating a new tool, yes, but not creating a new admin menu item.

in addition, it seems like the notes is a second way to install a menu; and not really notes on installing. i think less is more, and i'm not sure if there is a page on creating a tool (which this pages has a lot of), and this page which, IMO should be ONLY about getting a menu item onto one of the menus.

How do I Install Zen Cart?

Not an issue, just a thought for all to ponder in Item B, Upload the Zen Cart fileset to your webserver.

With the continuing problem of FTP failures from slow or intermittent connections, what we tell folks (especially for upgrading) is to FTP the fileset zip. Then, use your cPanel file manager to unzip the file, change the folder name from zen-cart-v1.5.6c-#### to test, store, tryout, whatever....

Regardless whether installing or upgrading, the danger of bad FTP is gone. It's certainly faster to work on the server than over FTP. Initial site setup can be done without prying eyes. And, when ready for prime time, either a 301 or a move to the root.

To me, the move to the root is "safer" than extracting the files and then uploading.

To date, we've not experienced problems with this method and we have a few out there that are "challenged".

I can see both sides, but I'm kinda 70/30 toward the zip upload.

Thoughts?

Upgrading - Detailed Instructions

https://github.com/zencart/documentation/blob/master/content/user/upgrading/detailed_upgrading.md

Are we not doing the folks a grave injustice by sending them into the "what did I use before" jungle rather than just load and add the current mods they might need?

Working in spite of a dead desktop or I would have submitted a change to this already. But, I have personally seen the horror created by trying to use what was there before. I wish there were some way to just use products/customers/orders from a db on upgrade. The leftover/half-deleted/incorrectly upgraded files from the past are stifling.

Plus, 146 mods have been touched since the release of 1.5.6c. Touched, in some cases, includes multiple upgrades. The 146 is just the number of mods created since 1.5.6c. It does not include how many times thee mod has been updated.

With the inclusion of several prior-mods, things can get dicey. Zen non captcha was just one of the carryovers that took us off track with an upgrade from an original 1.5.0 to 1.5.6c that we upgraded to 1.5.7 for beta test. Admittedly ZNC was small but, add five or so of those and things get squirrelly. One of them was the reason for taking so long on the Whoops error.

Am I completely off-base with suggesting that the store owner just load a test site, add mods (Checked for currency), products, and move on? I know that's somewhat simplistic but, I hope you get my reasoning.

reset admin password DOC missing pre-1.5.x SQL

https://docs.zen-cart.com/user/troubleshooting/reset_admin_password/

Does not address password reset for versions of Zen Cart pre-1.5.x, meanwhile there are still those upgrading from those pre-1.5.x versions that no longer appear to have access to the admin password reset option. A previous FAQ link: http://tutorials.zen-cart.com/index.php?article=2 found at: https://www.zen-cart.com/content.php?126-i-cant-login-to-the-admin-after-installing-zen-cart points to the root of the docs site...

But then, a FAQ that I have linked (and am not providing here as I expect it too will get redirected and made unavailable without an adequate replacement) still works and DOES still have the necessary information to accomplish the desired task.

guidance for congrats/welcome vs Accessibility vs being left blank

https://github.com/zencart/documentation/blob/master/content/user/new_user_topics/new_misc.md

If left blank (undefined or ''), both the Congratulations (h1) and Welcome (h2) defines will cause an Accessibility error as the system still displays the tags but, as empty.

Until we can come up with a way for the store to ignore the two if they are undefined, perhaps add a NOTE: just before the "Save" statement.

Something like:

NOTE: Leaving this define blank ('') will result in an Accessibility validation error.

Order Total Modules, a discussion

I'm in the process of creating an order_total_modules.md and have come across a conundrum that is slowing me down.

Each of the order_total modules includes a function named pre_confirmation_check that is (to my old eyes) never called! My read on the pre_confirmation_check method is that it's totally (pun kind of intended) handled by the order_total class file.

My current thought is to document the fact that many of the order_total modules include this unused method and leave it at that. There are, additionally, some order-total simplifications that can occur!

Document use of AWS for downloads

Further to #218

  • update user/products/download_delivery_methods with specifics on using AWS.
  • cross link this content from brief discussion in content/user/products/downloadable.md

Manifest Files

https://github.com/zencart/documentation/blob/master/content/dev/plugins/encapsulated_plugins/manifests.md
"PluginId
The id number assigned by the Zen Cart forum site when submitting the plugin for review. e.g. https://www.zen-cart.com/downloads.php?do=file&id=1583 This is used to do call home checking for new versions"

The first time you submit a plugin you will not know the PluginId. Therefore is it ok to leave it blank(or assign a default no check value 0 maybe) or will you have to submit the plugin. get the id when assigned and resubmit the plugin with the id filled?

Customer & Admin Passwords both should be 16 minimum & complex including reset

I am surprised to see v1.5.6 still using simple 6 character passwords for customer reset passwords, which most customers will not change.

Even Zen-cart's own documentation recommends long complex passwords, so why are your Password Resets not adhering to Zen-Cart's own recommendations?
Plus customers are not forced to choose a new password after the reset email is used.

Please at least allow Admins to control password length + complexity requirements for customers to remain PCI Compliant.

After all, our customers save their credit card info so a hacker could easily guess their 6-character password, hack into customer's account, buy merchandise and change the shipping addresses to himself. Not cool!

Customer passwords should be just as strict as admin passwords

Template Default - what is it?

Is it not time to starting talking about template_default as what it really is versus a viable template to be used for a store?

IMHO, template_basefiles, master_templatefiles, or something similar would stop a lot of confusion for new users.

Since 1.5.5 and the inclusion of responsive_classic as the true "default", I see constant confusion as to which template goes where, what files need to be where, etc.

As this doc states, template_default is the master set of template files -- Don't touch. Then, we are told that ZC comes with two other templates. Again, confusing.

Under Can I use template_default?, it's second paragraph even implies that template_default can be reached in the Tools >> Template Selection option. This is not an option as template_default
does not appear a a possible choice in Template Selection.

And, "pedagogic"?!? That will certainly drive some learning as folks drastically Google to see what this new command does in PHP or CSS. ;-)

I can already here the cries of "This is going to screw up sooo many mods." But, aren't we supposed to put overrides elsewhere in the first place?

To Do: remove the word "mods"

mod, mods, modders and other variants of the word are slang that isn't part of actual Zen Cart code.

The term should be changed to something descriptive such as "your own customizations" or "installed addons" or "installed contributions" or "plugin" or "plugin author" depending on context. Each case will be unique.

What are the Server Requirements for running Zen Cart?

scott,
i think this page should not be dug in as far as it is. at a minimum, i think it should at least be on the all time favorite list. i refer to it constantly (mostly because i can not remember anything), and it would be nice if i did not have to dig to find it all the time.

just my thoughts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.