Glue for Virtual Pages

I’ve added virtual page support to Shopp SEO Glue – a plugin that helps WordPress SEO by Yoast to work with the Shopp ecommerce plugin. Although generally speaking I don’t really envision search engines pouring over the customer account page or the order confirm page, I’ve added a screen to allow control over this because:

  • I felt like it made things a little more complete
  • Some people might be doing interesting things with their store that puts these pages in the spotlight in a way that might not be true of more run-of-the-mill installations
Screenshot of the Shopp SEO Glue admin page, found in Shopp > Setup > SEO

Easily assign titles and descriptions to virtual pages like the cart or checkout.

Version 1.5 of the plugin can be downloaded from it’s home in the WordPress plugin directory.

Garbage Day

Recycling or garbage can; representing expired event dataLarge archives are often great – it means there are plenty of things for visitors to find on our sites.

In some cases though this isn’t ideal. If for instance we are using our website to market events then we don’t necessarily want a massive back-catalogue of events occupying valuable space in our database (and, potentially, impacting on performance) [1].

In the case of Modern Tribe’s excellent The Events Calendar plugin this can be mitigated by an add-on that I wrote, Events Calendar Housekeeper.

Screenshot showing the settings tab for event garbage collection

Why not automate the removal of event data, too?

The Events Calendar Housekeeper can be downloaded here – do bear in mind that at the time of writing this is both new and free software in the early stages of its life-cycle, so backup before you put it to work … and of course I absolutely welcome any feedback and criticism.

It has now been updated to provide better handling of recurring events.  [Read more...]

One Hundred Euro Pricing

This scenario relates to a real situation and centres on a business selling across the Eurozone, where the currency is the same in each country but the tax rates vary from one country to the next. Additionally, this business sells to non-Eurozone countries where they are not responsible for collecting tax[1].

There were two ways for them to handle pricing. One was to have a fixed base price and simply add the relevant amount of tax, of course that would mean charging different customers from different countries a different total price – the perceived unfairness of this, particularly where the currency is the same (or on parity), might cost them sales.

Graph showing the standard model supported by Shopp, where the final price is simply the base price plus tax. The second model shows the final price being fixed at €100.00, the base price is then adjusted to accommodate tax

Shopp by default supports the first model, where tax is added to a base price to form the final price. What we wanted to do here was fix the final price and adjust the base price to suit, meaning the product cost one hundred euros in all countries.

The alternative was to decide upon a fixed total price for each product and dynamically change the base price to accommodate the applicable tax rate. In other words, if the product cost €100.00 in Spain it should cost the same in Poland and even for customers from the US. Effectively, the merchant was opting to absorb the taxes. [Read more...]

Product Photo Migration

Running straight out of the box, Shopp will store any product images that you upload in the database rather than as regular files. There’s method in the madness here – the idea is that even a novice user can upload product images without fear of problems such as file permission errors rearing their ugly head.

Update: I just updated Shopp Image Tools and it now includes tools to clean up the database after transferring image assets to the file system.

On the other hand, this approach can have a negative impact on the site’s performance. You can of course switch to file based storage but if you don’t discover this option straight away then there is a good chance that a large chunk of your product images will already be tucked away in the database with no means of extracting them back into regular files. Meanwhile, image requests follow this sort of flow:

  • Instead of being served directly by the web server, product images have to pass through an extra layer – the Shopp Image Server
  • The Shopp Image Server connects to the database, searches for and retrieves the requested image
  • … And then sends it back down the line to the web browser

If we could at least eliminate the extra database work, and better yet facilitate direct access to the images, we could be looking at a real performance advantage. Enter Shopp Image Tools[1], which tries to solve this problem in as user-friendly a way as is possible, helping to free all of your product images from their database-table prison, setting them up as regular files.

Screenshot showing the Shopp Image Tools admin page

Check at a glance how many images are in the database and migrate them with the click of a button. Direct Mode is an experimental feature that can offer an additional performance boost.

Once installed you will be able to access Shopp Image Tools through the aptly named Image Tools menu option, located in the Shopp settings menu. There isn’t a great deal to it – click on Run Conversion Tool to start the conversion process, and click on Enable Direct Mode to try and minimize calls to the Shopp Image Server. [Read more...]

Post Thumbs for Shopp

Featured images in the Shopp product editor (screengrab)

Now you can associate an image with a product and use it independently of the product gallery

Shopp  comes complete with some fairly comprehensive image handling capabilities, but separating out product images so some will be used in the product gallery and others elsewhere isn’t too easy.

Chris Jumonville of Digital Sky Design identified a situation where it was desirable to have a representative image for use within category views – but didn’t want that image to be included as part of the product gallery. We figured that adding a post thumbnail or featured image capability to Shopp would be a neat solution here.

And so … Featured Images for Shopp was born. Upload and activate like any other plugin and voila – you can assign featured images from right in the product editor.

By default these will be used in place of the product.coverimage template tag’s default output (though this behaviour can easily be turned off by using a simple filter).

There are a ton of possible uses for this, you’re limited only by your imagination. [Read more...]

Better Integration With Yoast

The odyssey to make Yoast’s WordPress SEO plugin play nicely with Shopp continues! Version 1.2 of my Shopp SEO Glue plugin is now available and introduces support for product categories.

It is of course in need of a little more road testing – so feel free to grab a copy and take it for a spin.

Screenshot of the Shopp category editor showing WordPress SEO fields

The Shopp product category editor sporting a new meta box (containing the WordPress SEO fields used for taxonomies).

Making Shopp and WordPress SEO Work Together

The SEO tool of choice for many people running a WordPress site is WordPress SEO by Joost de Valk. It’s a great plugin but, unfortunately, it does not currently work with Shopp[1]. This is a source of frustration for a lot of people who understandably want to improve the visibility of their online store.

Normally, when WordPress SEO is installed and activated, a shiny new metabox appears on the post editor screen allowing the assignment of custom post titles and descriptions, as well as providing basic SEO analysis.

Screenshot of the WordPress SEO metabox

The WordPress SEO metabox – it’s pretty natty and provides feedback and analysis to help wring out as much SEO value as possible from your post.

Sadly this does not show up on the Shopp product editor page, despite Shopp’s recent shift to using custom post types for products[2]. Following some discussion over on the Shopp bug tracker I figured I should look into this – how hard could it be to fix this up?

Well, I haven’t gotten all the details nailed down just yet but I have created a working solution in the form of a new plugin, providing a compatibility layer between Shopp and WordPress SEO. [Read more...]

Custom Categories Widget

I first created a custom categories widget for Shopp last year. It was a solution to a very particular problem, which went something like this: let’s say you have a Brands category and you wish to display a list of all the sub-categories of Brands, but not the parent itself, how can you do that and place it in the sidebar?

Screengrab showing sample output from the Shopp Custom Categories Widget

A convenient tool to list categories

Without resorting to custom code and template tags, which many people are unfamiliar with, there was no easy way of achieving this. My widget resolved this issue and was great in various other scenarios too – in all honesty it did however suffer from a number of issues.

  • It featured an overly complicated user interface (in the widgets admin screen)
  • Merchants had to be comfortable with the process of retrieving category IDs which many found to be neither intuitive nor convenient
  • They then had to choose a load of options such as Ignore Parent Categories or Include Children and maintain an idea in their head as to how this would all pan out
  • Though it could produce hierarchical lists it didn’t handle orphaned children very well

The latest version, 0.5.4, aims to tackle a whole heap of these issues. The rest of this post is going to explore that in a little more detail. If you’re really here because you want to get your hands on the widget, then simply head on over to Google Code and download it! Like any other WordPress plugin you can simply upload the zip archive from the comfort of the plugin manager. Update: now available on WordPress Extend. [Read more...]