1001 Postcards Love Love Love Meep Meep ZenZodiac DailyQuotation

A pair of spurs to a borrowed horse is better than a peck of oats.


new in version 2.7



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 2.5

Please update your installation as soon as possible. There are a lot of bug fixes in this release, some decent new features, and also a significant update to the caching system. Oh, and that Affiliate Program powered by Commission Junction thing too.

It's been a few months since I've released an update, so here's the lowdown:

changes in cpshop 2.5

  • added support for the CafePress Affiliate Program powered by Commission Junction
  • added optional SEOification of cpshop URLs (experimental)
  • added ability to convert thumbnail grid to non-table (for CSS purposes)
  • added support for inserted HTML in product thumbnail grid (think CafeWish-lite) using sortorder file
  • added configurable breadcrumb separators
  • improved cpshop's cache support and fixed many bugs (large store data issues, missing <tr> tags, multiple hook issues, basic/premium shop differences, template inconsistancies, and more...see History file for complete list)
If you haven't already installed cpshop, use the contents of either or to do so. If you have installed it...

how to upgrade

  1. Unzip the contents of either or (or the newest version available). Be sure you use the "update" zip file -- and NOT the "full" zip file -- to upgrade!
  2. Upload the contents of the zip file to the cpshop directory on your server.
  3. Test your store.
about the changes

added support for the CafePress Affiliate Program powered by Commission Junction

As has been much-publicized, on May 31st, CafePress will be turning off the internal Affiliate Program, and moving completely over to the new program, which is powered by Commission Junction.

If you're an existing CafePress Affiliate, making the switch is actually pretty easy:

  1. Enter your CafePress Member ID into cpadmin. (If you've already entered your CafePress PID into cpshop, it'll be entered for you. If you don't have it already, login to CafePress, and look in the upper right-hand corner of the page to find your Member ID.)
  2. Sign up with CJ. (Go to CafePress' Affiliate Page and click the Join Now button to create a Commission Junction account.)
  3. Enter your CJ PID into cpadmin. (Login to CJ, click on "Web Site Settings," and select the appropriate website profile to see your CJ PID.)

That's pretty much it. (Oh, and yes, you can just use CafePress' Affiliate Redirection feature, if you prefer. Either way will work.)

added optional SEOification of cpshop URLs (experiemental feature!)

You know how some blogs put the name of the post right there into the URL? Well, I was wondering, what if cpshop did something like that? So I made it a feature, because hey, I can.

Here's an example:

Let's say you have a product called "My Cool Mousepad," and the URL for that page is: mousepads/mystoreid.12345678

Turning on the SEOification feature would allow you to change that URL to: mousepads.mystoreid-12345678+my-cool-mousepad.html

Now, I'm not entirely sure what effect this will have on SEO. The idea is that by putting keywords right into the URL, Google et al will have a better idea of what the page is about, and you'll rank higher. But since I haven't had any real time to test the actual effects of this feature, I can't be sure that's what will happen.

Note that the feature does come with some options. You can determine the file extension that gets appended to the URL, if any. Or you can forego the SEOification stuff, and just ask cpshop to append something to the end of every URL (like "/index.html", for example, if you wanted everything to look like an HTML page).

Anyway, check it out in cpadmin, and let me know what you think.

added ability to convert thumbnail grid to non-table (for CSS purposes)

This is one of those features that's kinda hard to explain, so if you have no idea what I'm talking about, just skip ahead -- if you don't get it, you probably won't use it.

In the past, cpshop has built an HTML table for the product grid, automatically. That's usually fine, but some people have expressed interest in being able to setup their own thumbnail grid with CSS. The problem is that tables make that, well, difficult, if not impossible.

So now you can choose to turn off the HTML table part of the grid. This would make it possible, for example, to put each product/section thumbnail in a floating div, so your products can flow to fill the page. I'm sure some people will get creative, as it should open up some interesting possibilities.

added support for inserted HTML in product thumbnail grid (think CafeWish-lite) using sortorder file

So I was chatting briefly with Jim of CafeWish fame at the CafePressVoice thing on Saturday, and I let him know I was adding this feature. Really nice guy, if you haven't had the pleasure.

In short, besides just sorting products by type, the sortorder file can now include lines of HTML, which will also be sorted along with the products. What this means is that you can use HTML to group product types together, to create headers, dividers, anchors -- whatever your cpshop-using heart desires.

So let's say your cpshop.cgi.sortorder.txt file used to look like this:

108,107 #green & yellow t-shirts
112 #value t-shirts

That would have sorted your green, yellow and value tees to the top of each page. But say you actually wanted to have headings above each group of products? This is where the new feature comes in.

Any regular HTML you enter in to the file will be sorted along with everything else. So you might do something like add department headers to your page:

<div>Bright Tees</div>
108,107 #green & yellow t-shirts

<div>Cheap Tees</div>
112 #value t-shirts

<div>Everything Else</div>

And you can also make the headers conditional, based on what products are available in that section, using the <if> tag, making your updated file might look something like this:

<if 108,107><div>Bright Tees</div>
108,107 #green & yellow t-shirts

<if 112><div>Cheap Tees</div>
112 #value t-shirts

<div>Everything Else</div>

So you can do something as advanced as the CafeWish implementation if you want -- the functionality is all there. But Jim's tools are probably more robust, and he does things like updating the list of product types when there are changes at CP. So I leave it up to you.

added configurable breadcrumb separators

Had a request for this, and it was kind've a duh moment. Now you can choose what character(s) separate the parts of the breadcrumb linktrail. I'm surprised this didn't get added sooner.

the last word(s)

The year's almost half over, and it's really quite strange. All those big personal projects I'd planned on spending time on this year -- I really haven't spent much time on any of them. It's so much easier to make a list of projects than it is to actually find the time to work on them. I have, however, been enjoying myself more this year, and I guess that's good. Last year was pretty stressful.

And remember -- if you make any sweeping changes to your cpshop store and want to show them off, email me the URL, and I can add it to my cpshop site list. If you've already emailed me, and I haven't done it yet, just email me again -- sometimes I scribble down a store to add and then totally forget to do it.

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

Regards, Marty