Blogs I’m following

Like many people, I got out of the blog habit when Google killed Google Reader, but I recently started using Reader (with Feedbin) so that I could enjoy blogs once again. Here’s what I’m reading these days:

What are you reading?

Zen Cart 1.5.6 – Upgrade Drivers

There’s a new release of Zen Cart – but why should you upgrade?  I’ll review some of the key reasons in this post.

  • Compatibility with PHP 7.2 and 7.3: PHP is constantly changing, and as new versions are introduced, older ones fall by the wayside.  This means they no longer receive bug fixes or even security patches for issues which are discovered by researchers and hackers.  If you look at the PHP supported versions page, you’ll see that versions prior to PHP7 won’t even receive security patches after January 2019.  To stay secure, you must update your PHP, which means you must update your Zen Cart software.
  • All security patches released in Zen Cart 1.5.5 and before included: if your Zen Cart hasn’t been actively maintained, you may have missed the PHPMailer security patch, the Trustwave patch, or any of the other Zen Cart security patches which has been released in the last few years.  Upgrading to Zen Cart 1.5.6 gets you all those patches without any extra work.
  • All prior bugfixes from ZenCart 1.5.5 and below are included: how many times have you struggled with an issue, only to find that it has been resolved in a newer release? Upgrading means you’re using the latest fixes.
  •  Improved admin appearance: the Zen Cart 1.5.6 admin is much easier on the eyes than the older versions.  Works great on mobile too!  
Mobile product editing in Zen Cart 1.5.6
Product Editor Screen in Zen Cart 1.5.6 on Mobile
Mobile customer edit screen in Zen Cart 1.5.6
Customer Editor Screen in Zen Cart 1.5.6 on Mobile
Zen Cart 1.5.6 Product/Category creation screen
Looks good on the desktop too! 

Google Customer Reviews by Numinix

I recently installed Google Customer Reviews on my Zen Cart plugins store.  I used the Google Customer Reviews integration from Numinix, which I found quite satisfactory.

Google Customer Reviews basically takes over from Trusted Stores (which was sunsetted).  You need to have a Google Merchant Center account to use it, and the threshold for having your reviews show up is pretty high (150 reviews), but I think it could be useful for some web shops.

One change I needed to make because my store is downloads-only: the file


checks the delivery_country field in the orders object.  I changed this to check the billing_country.

If you get prompted to take this Google survey after making a purchase from my store, I would appreciate you filling it out!  Thank you.

CSS Button Fixes for Zen Cart Buy Both Now and Buy The Set

When I created Buy Both Now and Buy The Set for Zen Cart, I never took account of the possibility that templates would use the CSS buttons feature, which is available in Admin->Configuration->Layout Settings.

I have updated the help for these mods to show how they can be adopted to use CSS buttons too.  It’s easy – for Buy Both Now, just modify


and change

$bbn_string_end = '<input type="image" src="' . $button . '" alt="Buy both now" title="Buy both now" /></form>'; 


$bbn_string_end = "  " . zen_image_submit($image, "Buy Both Now") . "</form>"; 

and similarly, for Buy the Set, just modify


and change

$bts_string_end = '<input type="image" src="' . $button . '" alt="Buy the set" title="Buy the set" /></form>'; 


$bts_string_end = "  " . zen_image_submit($image, "Buy the set") . "</form>"; 

Testing out my new WordPress Plugin

I just created a new WordPress plugin called Zen Cart Product Display.  Giving it a try right now with OpenCart Discount Chooser:

OpenCart Discount Chooser

Discount Chooser simplifies the process of creating discounts based on items in the cart. You can create buy one, get one at a discount, buy two get one at a discount, or buy get a choice of at a discount. Item specification may be done by category or by product.

If you want offers involving more than just two items, Discount Chooser is a better option for your OpenCart based store than Better Together. An example of this would be "buy two, get one free."

Better Together for Zen Cart Updates

Back in 2013 I extended the one-to-one linkage concept in Zen Cart Better Together with the One-to-Many feature.  This addition of three new radio buttons in the Zen Cart admin panel effectively tripled the number of permutations of computed discounts.  What could go wrong?

Well, as it turned out, a number of things!  Freed from the classic one-to-one constraint, the configuration


would discount a *single* product 3, because it miscounted the number of items in the cart.  You can see this error in the screenshot above.

This bug is fixed in Better Together 2.5.3 for Zen Cart, which is available in the Plugins area.

Capturing and Filtering on Interests in Mailchimp

If you are willing to send multiple newsletters every month (I think the minimum cadence should be monthly), and you want to do some market segmentation, you may want to try this technique.   It assumes you have already installed my Mailchimp Integration for Zen Cart.

  1. Login to Mailchimp and click the Lists menu at the top.  Then on the right, click the Stats dropdown and select Signup forms.
  2. Click the Select button on Embedded Forms.
  3. Under Manage Contacts, click Groups.
  4. Click the Create Groups button, and add Checkboxes and Radio buttons as need be.  You can add many Groups, so don’t be afraid to partition your questions.
  5. Click Signup Forms and Embedded Forms again.  The code for the form shown in the preview is right below the preview window.  Copy this code and paste it into a new page (or sidebox) on your site.

You can read more about creating groups on the Mailchimp Getting Started with Groups page.

So after a while you’ll (hopefully!) have some newsletter signups, with people identifying as being part of one group or another. How do you utilize this data?

  1. Select Campaigns, name the campaign and make it a regular campaign.
  2. You will be prompted to select Recipients.  Select Group or New Segment.
  3. Use the query-by-example form to select the target group for your campaign.

You can read more about this on the Mailchimp Sending to Groups page.

As a convincer, see the email signup form we are using on