Why plugins?

Why does Zen Cart use plugins?

“Why isn’t plugin X part of the Zen Cart core?” is a question that comes up frequently.
Although the reasons are complicated and varied, here are some common explanations:

The functionality is not universally needed

Although a specific modification may seem vital to you, many people are successfully running online stores without it. Such a modification would be rejected for inclusion into the core for that reason.

The functionality is OS dependent

A plugin like Backup MySQL requires extensive logic to check various OS-specific settings. This is difficult to maintain and subject to change outside the release schedule for Zen Cart, so it’s not a candidate for inclusion into the core. Similar logic applies to URL rewriting plugins, which are often tied to a particular web server such as Apache.

The plugin is an integration with an external system

As an example, consider the USPS shipping module.

The USPS shipping module is not bundled with Zen Cart because it changes on a schedule set by USPS, not Zen Cart. Thus, any particular release of Zen Cart which included USPS could be shipping an obsolete version of the software.

For this reason, USPS functionality is provided by a plugin.

The same is true for UPS and many other modules.

Desire to keep the core small

The smaller Zen Cart is, the easier it is to maintain, for both the developers on the core team and for individual store owners.
For this reason, even very powerful and popular plugins are often rejected for inclusion into the core.




Still have questions? No problem! Just head over to the Zen Cart support forum and ask there in the appropriate subforum. In your post, please include your Zen Cart and PHP versions, and a link to your site.

Is there an error or omission on this page? Please post to General Questions on the support forum. Or, if you'd like to open a pull request, just review the guidelines and get started. You can even PR right here.
Last modified September 4, 2020 by Chris Brown (6a40a8c).