The problem with WordPress e-commerce plugins is that they are numerous but only very few get any attention. What is even worse is that the popularity doesn’t go along with features and usability. Oftentimes the undiscovered gems have more to offer but due to lack of popularity are abandoned. It gave me a whole lot of headache when one of my clients asked me for a multilingual WordPress blog with an advanced shoping cart. Until then I did not know any extension that could be up the task. This article is a review of TheCartPress – the plugin I chose for the project.
TheCartPress is a fairly new e-commerce plugin but it already has big aspirations. On its homepage we read
Native integration & interaction with WordPress 3.1+ Powerful Flexibility & Scalability. Extend its functionality with plugins and themes exactly in same way that you do with wordpress. Ideal for themes constructors and developers!
Big words from authors of such a young project but I like them. What I especially like though, is that they clearly say for whom it is intended. Way to go guys! Unfortunately, incomplete documentation and not very active support forum leave a bad mark and made me doubt whether the plugin will really be up the task.
TheCartPress is not USA or UK centric. That’s great news after so many plugins which don’t seem to notice other parts of the world. It has already been translated to a few languages (po/mo files included) and doesn’t lack other desirable features. We can change units of weight, the currency symbol and where it will be shown – before or after the value. Decimal point and thousands separator can be changed to suit the currency. We can choose countries from which we will accept payments and to which we will ship ordered items.
Authors of TheCartPres didn’t forget about taxes. Using different settings we can choose the method of taxation suitable to our needs. We can set the default country of taxation and a place where the tax will be added (on product page or checkout). Unfortunately, I managed to find a setting with which the total price computed at the end of the checkout was incorrect. On the forum I haven’t seen anybody with a problem similar to mine so it might have been a singular case. Nevertheless, I would advise you check it before going live with the site.
Creating a shop
Unlike some of the previously reviewed plugins TheCartPress is not based on short tags which add “buy buttons” to posts or pages. Instead of it we have a custom post type – products – which can be set to display either physical or downloadable items. These can be described with a price, label, SKU code, weight and stock quantity (we can manage it in a separate section in the admin panel). Interestingly, product variations can only be added with an extension (I haven’t tested it). Apart form that the only thing I found missing was the inability to make temporary or permanent discounts.
Some of shop’s functionalities are added through widgets. These include:
- TCP Taxonomy Trees – displays lists of products
- TCP Custom Post Type List – shows latest individual products
- TCP Last Visited List
- TCP Taxonomy Clouds – a tag cloud
- TCP Order Panel – when displayed on category page this widget should enable us to sort products according to various priorities. “Should” because it didn’t work in version 1.0.9
- TCP Shopping Cart
- TCP Shopping Cart Summary
- TCP Wish List
- TCP Comments for Custom Post Type
- TCP Checkout
- TCP Brothers List – displays products from the same category as the product that is being viewed
- TCP Related List – displays products related to the currently viewed. Unfortunately, due to the fact that automatic creation of related posts in custom taxonomies cannot be done in the latest release of WordPress (3.2.1) all the relations need to be set manually during product creation. If you want to automatically display related products (but only titles – no pictures or prices) you will be better off using Better Related Posts plugin.
Cart and checkout
Cart is pretty standard. It lists the products we’ve bought, lets us change their number or delete them. From the conversion rate’s point of view it would be nice to have product thumbnails to assure buyers in their choice. Unfortunately, TheCartPress doesn’t let us create coupons.
Checkout has as many as 7 stages although some of them could have been easily merged together. At the beginning we have an option to register/login and gain access to our order history (in remodeled WordPress admin panel) although checkout as a guest is also possible. Next, we must choose shipping and payment method and fill in an address. Unfortunately in all the forms in checkout, only the email field is validated. What’s more, just like in every other e-commerce plugin there is no way to add input fields to the address form. If you need some specific information for an invoice the only solution would be to ask your clients to enter them in an „additional information” textarea at the end of the checkout.
Before the order is complete you need to select one of the shipping options – free transportation, flat rate and rate dependent on the product’s weight and destination. Payment options include PayPal, Authorize.net, cash on delivery, transference and off-line card payment. The last stage of checkout displays only shop’s regulations which need to be approved before the order can be made. After the purchase is confirmed we can print an invoice.
Customizing the shop
Because of the fact, that TCP uses custom post types and taxonomies your new products and their categories won’t be displayed in your theme’s menus. Well… at least not by default. To show them you need to add TCP taxonomies to your custom menu (if your theme supports it) or use appropriate widgets.
One of the limitations of other plugins I’ve reviewed was their inability to display buy buttons, prices or product-related meta data on store categories. It was caused by the limitations of the default WordPress Loop which doesn’t recognize these elements. TheCartPress team solved it by creating their own, custom loop packed with additional functions. However, to enable them and make your product categories (and other things too:)) display correctly we first need to do some copying and pasting. This is what you should do:
- Go to plugins/thecartpress/themes-templates and copy “twentyten-eCommerce” into your theme’s folder
- Change its name to suit the one you are currently using, eg. “yourtheme – eCommerce”
- Move files which begin with „taxonomy”, „single” and „loop” to your theme’s folder
- Open style.css in “yourtheme-eCommerce” and make the path of @import declaration point at you main CSS file.
- To make the style of the shop match the one of your theme replace everything from this stylesheet that is below „@import” declaration with your own styles.
You can read more on what we’ve done in WordPress Codex on child’s themes.
Following the new WordPress 3+ trend the already-mentioned loop can be reusable across your theme. Additionally, thanks to available settings each instance you use it – either in your theme or widgets – the output can look differently. For example, when we want to show products in a standard product category we can set the loop to display them in 3×4 grid, with medium size images, excerpt, price and buy button. If we want to show related products we set it to display a vertical list of 5 products, etc. All of it can be set in the admin panel.
Due to the fact that TCP is based on standard WordPress mechanics (like already mentioned custom post types and taxonomies), it should work with almost any WordPress plugin. I checked it with quite a few different ones and there weren’t any bigger issues. When you team TCP with plugins like WPML, WordPress SEO, Relevanssii and Just Custom Fields you will get a pretty robust e-commerce solution.
I haven’t tested the compatibility but authors claim that TheCartPress works with mutlisite WordPress and BuddyPress.
Mulitlingual WordPress Shop
A separate section needs to be devoted to already-mentioned WPML and the general need for an e-commerce plugin that can be teamed up with it. Although this feature has been much sought for, you need to be aware of limitations that not only TCP but also WPML and WordPress give you. Due to the fact that WordPress can identify content types, taxonomies and their terms not only by their id but also slug (name appearing as a part of URL) they need to be unique across languages. This means that a rock music album cannot be tagged e.g. “Aerosmith” or/and be in category “Rock” in all the languages! Otherwise they would lead you to a list of posts from all the languages.
Even though TheCartPress is still a very young project it already offers a lot of functionality and is one of very few e-commerce solutions which work with WPML and can be extended with standard WordPress plugins. I haven’t yet tested a better free plugin. In my private ranking it gets 7.5/10
Below you will find my translation of TCP into Polish. If you find any errors please let me know about them.
(PL) Poniżej znajdziecie moje tłumaczenia dla różnych wersji TCP. Jesli znajdziecie w nich jakieś błędy byłbym wdzięczny za informację.
Polish translation / Tłumaczenie na polski: TCP 1.0.9 PL
Polish translation / Tłumaczenie na polski: TCP 1.1.0 PL