1001 Postcards Love Love Love Meep Meep ZenZodiac DailyQuotation

To run with the hare and hunt with the hounds.


new in version 1.3b



why cpshop?




installation guide

using cpshop as your site's homepage

using cpshop filters

using cpshop hooks




download area (password required)



cpshopbuy it for $19.77view cart
introducing cpshop 1.3b

Still no search feature, but a whole lot more -- it's taken me three days just to write these release notes alone. If I hadn't just started on 1.3, I'd make this a 1.4. :^)

changes in cpshop 1.3b
(see below for a more involved explanation of these changes)

  • configurable + customizable language-support (French & Spanish so far)
  • store aliases (replace those icky numbers with something useful)
  • global image-swapping (replace CafePress images with your own)
  • support for command line operation (now can be embedded in PHP!)
  • optional breadcrumb prefix link
  • more rigorous config file backup system
  • two new template tags: <[productname]> and <[storename]>
  • option to change color of product image box
  • minor bug fixes
how to upgrade
  1. Be sure you upgrade to or install a full version of cpshop 1.3 before installing this update!
  2. Unzip the contents of
  3. Upload the contents of the zip file to the cpshop directory on your server.
  4. Test your store.
about the changes

configurable language-support

There are several details that need to be pointed out in this feature, so I'll try to be brief:
  • I did not have a professional translator create the language files; most of it was translated with free translation tools available online. So if you happen to be a fluent reader of French or Spanish, please feel free to peruse the language files and point out any obvious errors.
  • If you happen to speak/write in another language besides English, Spanish or French, and would like to contribute a language file in your language, I'd greatly appreciate it.
  • You can customize the language files, but don't customize the default language files. There are special custom language files made explicitly for customizing. Instructions are included inside the files. (Just remember to copy an entry over from the default file before editing it.)
  • Even if you'd like to keep your store in English, you can use the cp_us_custom.lang file to customize the text in your store. So if you'd like to change "Additional Photos" to say "Pics Of Our Stuff" you can go ahead and do it.
  • You can't just add a new entry to the language files and have it change in the script. Everything is hard coded, so don't bother.
store aliases
If you've been trying to setup links to the various categories in your store, you may have been frustrated by the CRC numbers, which change every time you change your store IDs. 1.3b introduces the "Alias" field, which can change these:

into these:

Just set them in each store ID's "Alias" box, and they'll stay the same, no matter what store IDs you use.

global image-swapping
This feature is not for the faint-at-heart; it's a pretty complicated procedure to understand. So if you're having a hard time assimilating it, or just have some questions, we can discuss things on the message board.

There's a new file, called cpshop.cgi.images (change the name to match your cpshop.cgi file, i.e., or whatever). You can use it to replace CafePress' images in your store with your own images. Just edit the file in a text editor, upload it to your cpshop directory, and presto -- you've changed the store images to your own graphics.

The cpshop.cgi.images file takes replacement lines in this format:

[store alias or id]||||[old image URL]||||[new image URL]

The first field is the store alias or ID where the original image appears. This field is here to prevent the script from doing too much unnecessary work. (But...if you want to replace a single image across all stores, use a * as the store alias.)

The second field is the original image URL. You can get this from right clicking on the image in your store and choosing "Properties" (or, in Netscape, by choosing "Copy Image Location").

The third field is your replacement image's URL. Make sure this image is in a non-cgi directory, and is the same dimensions as the original image.

So a typical line in the cpshop.cgi.images file would look like this:

That's pretty much it. You can find out more at the tutorial on the message board.

support for command line operation
Some time over the past few years, when I apparently wasn't looking, PHP got really popular. So in an attempt to get with the times, I've added command line support to cpshop.

Huh, you say? What good does that do me, the seasoned PHP aficionado?

Well, with the help of this tutorial, you can have cpshop embedded in your PHP page in no time.

optional breadcrumb prefix link
One of the limitations of the breadcrumb linktrail has been that the root link has either had to be the homepage of your store, or some other page while omitting the store homepage. You can now tack on an extra link to the beginning of the linktrail.

If this has been a problem for you in the past (and you know who you are :), then this should solve that problem.

more rigorous config file backup system
Just in case something goes dreadfully wrong, cpshop now backs up the last 25 configurations of your store. You can find them in the cpbackup folder. (That is, of course, assuming you did setup the cpbackup folder.) If something goes wrong, backup the current cpshop.cgi.config file, and then try to replace it with the best backup from the cpbackup folder.
two new template tags: <[productname]> and <[storename]>
These two new template tags can be used to place the name of a product or store in your template. They're probably best suited to the product page and thumbnail page templates.
option to change color of product image box
Using the image swapping feature, you'll probably want to change the color of the box surrounding the product images on product pages. This option can be found in the "product page options" section of the admin screen. Set it to a color (like #FFFF00 or papayawhip), or turn off the box's background color by entering none.

the last word(s)

I remember cramming the night before an assignment was due. Sitting there in the dorms, six in the morning, racking my brains over what my conclusion was going to be. I kind've have that same feeling now, except it's 6:30 in the morning, I've been up all night with an awful cold, and yet I haven't been in a classroom in six years.

There's something satisfying about programming a script like this, though, something that was rarely present during my five (doesn't everyone take five? :) years as an English major. Occasionally I was very proud of a paper, sure; most of the time I simply couldn't wait to get it over with. But working with this script -- any script, really -- gives me the chance to see my work actually accomplish something.

I can't say I'm getting rich from this. Frankly, I don't even make enough from this to pay my power bill. :) But it is fun, and maybe I'll start working on more scripts. It's nice to enjoy your work, isn't it? Isn't that one of the reasons we're using CafePress, after all?

Once again, let me know if you have any problems with this, either via or posting on the message board.

Regards, Marty