Search Helper Admin for Zen Cart

My Search Helper plugin can improve search performance by fixing typos and handling product name synonyms – but it is configured using code, which is not practical for many storeowners.

To solve this problem, I created Search Helper Admin. It allows you to enter the mappings from old keyword to new keyword right in your Zen Cart admin. It even allows you to specify strings: for example, search for “Sinatra” when a customer types in “Old Blue Eyes.”

How Amazon broke my little book club site

Warning: this is a tale of woe.

My book group site is

I created and maintained this site just by editing plain HTML for many years. I wanted to do something more sophisticated, but never seemed to get around to it. One day, though, I noticed that some of my old Amazon-generated links were no longer working. Rather than going through and testing them all, I decided to completely rebuild the site using Amazon’s API, so I could be guaranteed of getting good URLs.

What technology to use? I could build it with Rails, but having a database seemed like overkill for such a small site. A Static Site Generator was a much better fit for something like this which changes infrequently – a half dozen times per year or so, as the group’s reading choices are made. So I just had to select between the SSGs that I was familiar with – Hugo and Jekyll. I had wanted to learn more Ruby, and was already a Ruby gem to query Amazon, so I chose Jekyll.

So I rebuilt the site using Jekyll, which made updating it faster – MUCH faster in fact. This worked really well for several years.

Then Amazon limited access to their Advertising API. . And things completely stopped working, with mysterious messages about API limits.

After a bunch of searching, I finally found an explanation on StackOverflow of the Amazon change and the likely impact it would have on sites like mine. I stalled for several months on doing anything, thinking they would see the error of their ways. HAH! No such luck.

I then wrote an appeal letter to Amazon, suggesting they grant an exception to non-profits like my site, which they did not accept.

So I had to take the Jekyll generated pages and extract the common parts so they could be consolidated and loaded using server side includes, and start hand editing the pages again.

And now I’m back where I started. It’s a shame, but there you are.

Zen Cart Documentation

The Zen Cart documentation site was refreshed as part of the 1.5.7 development process.

The big changes are:

  • Migration from phpBB syntax to Markdown.
  • Documentation now stored in Github for easier collaboration. Everyone is welcome to join the fun – see Contributing to Zen Cart Documentation to get started.
  • Documentation structure and presentation managed by the Hugo static site generator, using the Docsy template. The site is continuously deployed from Github by the Netlify platform.
  • Deprecation of old Wiki documentation.
  • Deprecation of old content from the Tutorials link on the Zen Cart forum.

There are sub-sites for Zen Cart storeowner documentation and Zen Cart developer documentation. The storeowner documentation is linked from the Admin Page (for on-screen help) in Zen Cart 1.5.7.

Here’s what the old help looked like:

And here’s the new.

Zen Cart 1.5.7

Zen Cart 1.5.7 was released on 6/23/20, and you can see from this Github graph all the work that went into it. The grayed out region at the top right shows the period during which 1.5.7 was developed and released.

The X axis is time, of course. The Y axis is “number of commits,” which is a term that means changes, additions or deletions someone has made to the software repository. It’s exciting to me to see that the project has never been more active, and has never had more collaborators.

So what exactly does a commit look like?

Here’s one of mine that went into 1.5.7: built in help for admin. I added a help button to each screen in the admin, and linked it to the relevant page on the new Zen Cart help site (also a 1.5.7 effort). So now, the product has onscreen help directly linked from each admin page. (The Zen Cart help updates are described in this blog post.)

So how do you go from software commits to a user friendly format for delivering the information on what’s in the release? There’s a what’s new document that lists user-facing features in bullet form, so people can see the release content and find their favorite feature and start planning to upgrade.

So that’s the scoop on Zen Cart 1.57! The Zen Cart project has never been more active, and I’ve never been more excited about it.

Zen Cart Loyalty Reward Points – Better than Discounts?

I just published Zen Cart Reward Points, a new mod that allows stores to assign loyalty points to transactions, which can be redeemed later for merchandise. Unlike discounts, which reduce the bottom line right away, reward points offer a way to incentivize customers to stay with you, but deferred the costs.

The Reward Points mod is a custom software installation, configured according to your request. One of the implementation models involves using Frequency Discounts to compute reward points, so a customer would only earn reward points if purchases exceed a certain amount during a specific look-back window (say 90 days or 1 year).

Other implementation models are possible; just let me know your needs.

Zen Cart Changed Files Report now highlights 0 byte files

I just made a change to the Zen Cart Changed Files mod to highlight 0 byte files.

Zero byte files are produced when an FTP of a large number of files fails or times out. Obviously this can cause a lot of problems and take time to debug, so it’s best to know quickly if this is a problem you are having.

The zero byte files are colored in red for easy identification.

Responsive Fallback for Zen Cart

A lot of long-time users of Zen Cart have a template that was developed before mobile devices became so popular. These store owners have a difficult decision: give up the template they have grown to love, and start again with something responsive? Or just not worry about mobile traffic?

Now there’s a third choice. With my Zen Cart Responsive Fallback mod, you can keep your desktop template, but if a user visits on a mobile device, the template automatically switches to the built-in responsive_classic template, which was introduced in Zen Cart 1.5.5. It’s the best of both worlds!

Here’s a page rendered in a non-responsive desktop template:

Zen Cart Responsive Fallback - Desktop

and here’s the same page when viewed on a mobile device:

Zen Cart Responsive Fallback - Mobile

Zen Cart Missing Images

Everyone knows that images help sell products. But if you are uploading or creating a bunch of products all at once, it’s very easy to accidentally miss a product image here or there. So what’s a storeowner to do?

If you use my Missing Images for Zen Cart mod, you can quickly find and resolve those problems! Missing Images builds a report that shows you which products don’t have images (either because they were deleted or never uploaded in the first place), and provides a clickable edit link so you can quickly fix them. It’s a must for busy shops!

Automatically adding a downloadable product to the cart

People are using Zen Cart Auto Add to add bonus products to the cart when specific high value products are bought. But what if the bonus product is a downloadable? Since downloadables have attributes, this won’t work, right?

Wrong! All you need to do is install my free Default Attribute contribution, and you’ll be able to do this.

osCommerce Phoenix Discounting

The following discounting modules are now available for Phoenix:

Better Together

Quantity Discounts

Discount Chooser

and also

Discount Preview

The free modules are in the osCommerce App Marketplace, with links on the help page on my site; the commercial modules are in my store (linked on the help page).

There is no Better Together Admin for Phoenix yet; if there is sufficient interest, I’ll create one. But Discount Chooser provides most of the functionality, so you’re covered.