Jigoshop is an ecommerce plugin for WordPress. You can download it for free from the WordPress plugin repository, or install it from the convenient plugin installation tab on your site’s administrative back-end.
For this review I tested Jigoshop version 1.8.1 on a clean installation of WordPress 3.8.1 running in debug mode, with PHP errors set to E_ALL.
Jigoshop has been downloaded 319,315 times, and has an average user rating of 3.8 out of 5 stars. This means it is much less well-known than the first two e-commerce plugins I reviewed. Jigoshop has a significantly higher average user rating than WP eCommerce, but is slightly below WooCommerce, in terms of average user ratings.
I always begin the review process by reading some of the 1-star user reviews, because these sometimes alert me to a plugin’s potential pitfalls.
The first complains that he purchased a commercial theme design, and can’t get support from the ecommerce plugin author to make his theme work with the plugin. This seems completely backwards and illogical to me. Why would the author of a free plugin provide support for someone else’s commercial theme that you paid money for? This person should take his complaint to the theme author, instead of giving the plugin a bad review.
The next is from 6 months ago. This commenter complains about non-specific “bugs,” possibly relating to an SKU field or a shortcode; it’s unclear what the actual problem was. When the plugin author replied and asked for more information, the commenter posted an unrelated complaint, and that was the end of that thread.
The third 1-star review is a year old. The issue in this case is once again an incompatibility with a commercial theme. Comments in the ensuing thread indicate that the issue was caused by the theme, not the plugin; but once again the reviewer rakes the free plugin over the coals, rather than requesting support from the author of their paid commercial theme. Human nature, what do you do.
Past these, it looks like most of the negative reviews are more than a year old. In contrast, most of the 5-star reviews are less than a year old. Based on this trend, I would guess that the plugin author has been steadily improving their source code and support services over time. And since none of the recent complaints seem well substantiated, let’s just proceed with the review here.
The .zip file for Jigoshop 1.8.1 is 3.8 MB. The folder requires 33.0 MB of disk space on my system when uncompressed and installed.
Upon installation, the plugin does NOT automatically create a new WordPress user login for itself, which is a relief after my experience with the last plugin I reviewed.
Jigoshop’s Dashboard is attractively laid out in a design that strongly resembles the WordPress administrative dashboard.
This is a departure from most of the other plugins I have reviewed but I like it. I particularly like the “Monthly Report” chart that displays sales metrics at a glance.
The “Reports” screen zooms in on the sales metrics chart. It allows custom reports based on a user-selected time period. It also has spots for metrics related to top revenue-generating products, most popular products, total new customers, total orders, and total sales in a given time period.
“Coupons” obviously allows the website administrator to offer coupons.
The “Settings” menu is where all the real work happens. The only obvious trouble I see with it, is that it’s designed for wide screens. When making changes on a narrow screen, the user must scroll to the right to access the “Save Changes” button. Not a major issue.
I made the appropriate changes to the “Shop” tab in the Settings menu. I think I’m going to leave all the other tabs in their default state for the time being, and see what the site and database look like at this time.
My site is running the ever-popular (although slightly worn around the edges) theme, Twenty Twelve.
I am pleased to note that the Jigoshop plugin has created a number of new pages for my site. They are currently all listed in the header navigation menu; but that’s because I haven’t yet saved a menu.
The items are all there on the menu page. I rearrange their presentation order just slightly and hit “Create Menu.” Then I add my new menu to the theme’s header and I’m ready to go.
Rocking. This plugin is very easy to use so far.
I have set up some of the various options as items in a dropdown menu under the main header navigation menu.
So far, this seems quite user-friendly for both the store owner and the customer.
Let’s check out the database.
Upon installation, Jigoshop creates three new tables in the WordPress database. After my experience with the last two ecommerce plugins I reviewed, this seems surprisingly minimalist. The plugin appears to be using a custom post type for products, which is entirely appropriate. Of course, I haven’t created any products yet, so the only post types I see at present are the defaults and the nav menu items.
I am pleased to note that the plugin still did not automatically create randomly designated WordPress users to track my anonymous visits to the site. (In contrast to the last plugin I tested.)
Holy cow, the plugin does create a lot of options records in the wp_options table. I’ve gone from 125 rows in a fresh, clean WordPress install to 224 rows now. One or two of those might be transients related to WordPress’s internal housekeeping; but most of those are Jigoshop plugin options.
Well, it’s way too much to look at one at a time. Let’s proceed to trying out the system for creating new products.
Creating Products in Jigoshop
First, I have to remember to update my Permalink settings to use the post name.
I create a new product, it’s much like the other ecommerce plugins I’ve tested.
I do note that under “regular price,” when I type in a very large number, the system treats the comma as a decimal point. Now, I think French people are great and all, but I treat commas differently from them. When I type a comma in a number, it’s a thousands separator, and I don’t want all those trailing zeroes to just mysteriously disappear. (The workaround is to type the number without a comma, which works fine.)
Well I haven’t yet added a product photo, but so far this looks great. It’s so eerily reminiscent of other plugins that I have to wonder if portions of Jigoshop’s codebase might be derived from a more-well-known plugin.
I add a “Featured Image” from the Product editing screen, and it is added to the product display. Conveniently, the system automatically sizes my image to fit within the display area. No weird scrollbars are in evidence. I’m fairly pleased.
Let’s see if the shipping system will upset my equanimity.
Yeah, well, after my previous experience reviewing other ecommerce plugins, it shouldn’t come as much of a surprise that shipping is this plugin’s downfall.
Jigoshop only offers three shipping methods: Flat Rate, Free Shipping, and Local Pickup. The Flat Rate can be set per order or per item, but there’s no additional fine-tuning available.
In the real world, some items cost more to ship than others. For example, if you sell a single six-ounce item, or a gift basket that contains a dozen different items and is much bulkier besides, then you’d want to charge more to ship the gift basket than you would charge to ship the six-ounce item. The best ecommerce shipping system is a real-time rate lookup via web API. An acceptable alternative is a table-rate system, where certain shipment sizes, weights, or prices trigger an increased shipping cost. But the completely flat-rate system as implemented in Jigoshop is overly simplistic, and would only work for companies that sell nothing but uniform products of equal size and weight.
Oh, well. Disappointing, but not entirely surprising.
Visiting the plugin author’s website, I see that options exist. These are plugins for a plugin; something of an obscure concept, but increasingly common in the WordPress world. There are a number of shipping-related plugins for Jigoshop, at prices ranging from free (one item) up to $85. Reviewing these plugins is beyond the scope of the present review. If readers have experience with shipping plugins for this plugin, please leave a comment below.
Jigoshop offers out-of-the-box support for PayPal Standard; WorldPay; FuturePay; and check payment, bank transfer, or COD.
If you use a different payment processor, or if you use an upgraded version of the PayPal gateway, you may require an additional plugin to provide payment method compatibility with the Jigoshop plugin. Some of these are available from the plugin author’s website; but like the shipping plugins, they are beyond the scope of this review.
The checkout process
Before I uninstall the plugin, I’d better take an order all the way through checkout, to see how the plugin performs.
I see first that I don’t even have to add a navigation link to my new product, it is accessible through the default “Store” link.
Unfortunately the product image has been squashed horizontally to fit in the thumbnail box, that is a less than ideal solution.
I click “View Cart” and all looks well so far.
I increase the quantity of my order, and click “Calculate Shipping.” It asks for my destination zip code. Why does it even matter? None of the available shipping methods take my location into consideration (other than, I’m not shipping to international destinations).
I click “Proceed to checkout.” This all looks fine. I do notice that in order to get the nice little green checkmarks to show up next to fields that were pre-populated with information I submitted on the previous page, I have to select the input and then deselect it (even though I don’t change any information).
Other than that, the checkout works as expected. No modification is required to make the plugin fully compatible with my theme (a stock installation of Twenty Twelve).
It does occur at this point that I’ve been logged in this whole time. Let’s try it from a different browser.
This time the checkout page shows a message that says, “Already registered? Click here to login.” At the bottom of the “Billing Address” input form is a checkbox that asks if I want to create an optional account.
This time through, I note that the “Phone” input does not properly validate a US phone number, where area codes cannot begin with a “1.”
In fact, it only tests to see whether the field is blank; it does not validate the number at all. I type in the words “Phone number,” which is obviously not a valid phone number, and it happily shows a cheerful green checkmark.
When I check the “Would you like to create an account?” box, a signup form is revealed. I type in a totally insecure password, and proceed with the order.
Ah, I see. More thorough validation occurs on the server side when the order is submitted. Let’s try again.
This time my account is created. The system does not complain that I entered the weakest imaginable password. The system also does not complain that I entered an obviously fake phone number.
Since I’m now logged in as an authenticated user, I visit the site’s dashboard.
This reveals perhaps more information than would be ideal; I may be able to edit this from the site settings, I’m currently using mostly the defaults. I notice that there is a link inviting me to install a plugin on the site. I click it and see a message that I don’t have permission to install plugins.
This is good! Although I shouldn’t even see the link. But again, that’s probably my site settings, not the plugin’s fault.
Back in my other browser, I can now see the orders I have placed.
They are listed as “On Hold” because I selected check payment. I can click an order to change its order status.
The plugin dashboard now shows 1 completed order and 1 order still on hold.
The “Reports” screen now shows one sale, for the check that I pretended to receive. The order on hold does not register as a sale on the Reports screen, which improves its usefulness for real life business people.
The plugin seems to function as expected. Now let’s get rid of it.
As always, the final test of any plugin is to see how well it behaves itself when you tell it to go home. The first two ecommerce plugins I tested were sore losers; one did not clean up after itself at all, and the other had cleanup that was incomplete.
Let’s see if this one is any better.
First I note that when the plugin is deactivated, the WordPress system starts showing order data under the Recent Comments menu in my theme’s sidebar. I remember noting a similar issue in a plugin I reviewed earlier.
When the plugin is deleted, my nav menu is a mess.
The plugin had created a lot of pages, and I had added those pages to my header navigation menu. Now that those pages no longer exist, the system throws a wobbly trying to include them in the menu. The other ecommerce plugins I’ve tested had the same issue. To be fair, since this involved a customization I had made (adding the pages to the navigation menu) it would be very difficult for a plugin to undo these changes. In trying to determine my intent, the plugin could end up overstepping its bounds by making changes I had not authorized. So this may be for the best.
The same issue is evident in the “Recently Published” section of my wp-admin dashboard.
And on the “nav menus” page as well.
I have to go through the menu items and delete each one manually, wading past all the Notice-level PHP errors. I see the errors one more time before WordPress actually executes my removal instruction; and after that, all is well with my navigation menu.
However, those orders still show up as comments in the sidebar of the public-facing site.
That’s irritating. Clicking the link returns a 404 “Not Found” error.
Back at the dashboard, “Recently Published” is still throwing errors. I’m not immediately certain how to make those go away. The “Posts” and “Pages” menus display properly.
The “Comments” menu area displays a long list of error messages related to orders.
I can see that the auto-generated comment itself is still stored in the database; it says “Awaiting cheque payment” and is associated with a product record or related database object which has been deleted, thus leading to all the error messages. Unfortunately, the usual “Delete comment” form controls are not displayed. Unless you’re handy with the MySQL command line, there’s no way to make the errors stop. (Well, you could set PHP to hide Notice-level error messages; and in a production environment, it’s always best to turn off PHP errors anyway, so as not to potentially divulge sensitive system information to an attacker.) I should probably note that if you installed this plugin just to try it out but never processed an order (not even a test order) then you would not experience this issue.
Speaking of MySQL, let’s check that database.
Great news! Upon removal, this plugin does delete all the tables it had created in the database. This is a significant improvement over the plugins I reviewed previously.
It also deletes most of the records it had created in the wp_options table. I see two that the developers appear to have missed: product_cat_children and shop_order_status_children are still present after plugin deletion.
Jigoshop in a nutshell:
- Jigoshop does not offer customer reviews; and I think that’s all for the best. As I’ve stated before, most so-called “customer reviews” are nothing more than spam at best; and at worst, they may be posted by your competitors for the purpose of intentionally damaging your company’s reputation. (However, your theme may support “Discussion” comments on your product pages, if you allow them.)
- Uninstalling the plugin properly deletes all the databases and most of the wp_options records. However, it does not delete order-related data from the comments table, or custom-post-related data from your nav menus (if you added it). This can lead to error messages. If you were to use this plugin for a while in a production environment, and then decided to switch to a different e-commerce plugin for any reason, your PHP error logs would rapidly fill with Notice-level errors unless you went into the database and manually deleted the plugin’s order-related comments from the comments table. However, note that more well-known plugins have the same issue.
- I’m disappointed that in order to get a reasonable shipping solution, you would have to purchase a paid upgrade.
- Out of the box, the plugin does not offer support for large payment processors like Authorize.net.
- In one place, the CSS for the admin area was not as responsive as I would have liked (made me scroll right to find the submit button).
- The plugin allows customers to submit an order accompanied by an obviously fake phone number. I’m not sure if I tested the other plugins to see how common this issue is.
- Like the other plugins I’ve reviewed, Jigoshop allows customers to create accounts with super-weak passwords.
- The plugin should have an option to use “check payment” in place of “cheque payment” for Americans and other people who can’t afford the letter Q.
- When typing a product price with a comma as a thousands separator, the plugin treats the comma as a decimal point. The workaround is to type the price without the comma. This issue will not affect many users, since very few online stores will sell products valued at more than $1,000 each.
- The product’s featured image is squashed horizontally to fit in the thumbnail display area.
- Green validation checkmarks don’t appear automatically for pre-populated checkout form fields.
- Overall, Jigoshop strongly reminds me of some of the features offered by its larger rivals. I would not be surprised to learn that the early core of Jigoshop’s codebase was initially derived from portions of an older version WooCommerce; the wonders of open-source software make this possible. However, Jigoshop has simplified the store setup process in many ways, and has created a very user-friendly interface. If the shipping thing is not an objection for you (if you sell digital downloads, or products of a generally uniform size) then Jigoshop could be the perfect WordPress e-commerce plugin solution for your business.
Or would another plugin be a better solution? Only time will tell. In the next few weeks, I’ll review a couple more e-commerce plugins for WordPress. Then to conclude, I’ll round off the series with a comparative analysis. And yes, I will pick a winner, based on my own criteria. So stay tuned!