I’ve been using WP e-Commerce for a couple of years… at first, because it was the only solution that integrated with WordPress in any meaningful and easy-to-use way.
Unfortunately, this plugin is a developer’s worst nightmare. Unbelievable amounts of presentational HTML hard-coded into core that should have been made customizable via template files; that’s right… if you want to modify basic features like “Customers Also Purchased” templates… you have modify WP eCommerce’s CORE. Have fun upgrading that in the future. Unfortunately, that’s a common theme here – almost every part of this plugin is programmed in the most haphazard, poorly considered way imaginable.
Also, the way the plugin handles digital downloads is a disaster. Let me explain…
Adding digital products is pretty straightforward initially… you add files by uploading them to a specific folder on the server, then, when you attach the files to a particular product, a new post is created in a hidden custom post type.
By itself, that’s no issue… but this is where things start to really suck… every time you add a file to a product, even the same file over multiple products, a new post is created with a reference to the file on the server, leaving you with multiple file reference entries in the database. And more bizzarely, the post title is used for the file path while post content is not used – so you can’t give files meaningful names nor can you manage your files in any reasonable manner other than by hand using a MySQL editor. So… you now have multiple posts referencing the same file… and those file-posts are linked to products using post_parent. Got it? Ok, brace yourself, this is where it gets messy…
If a customer buys a product that contains attached files, a guid is generated for each download link and a database record saved with a reference to the aforementioned non-public file-post in the database to obfuscate the files… BUT… if you ever remove a file from a product (i.e. you click the red X in the Edit Product screen), even accidentally, it permanently breaks every link for every existing purchase (of that file) in the database.
If you add a new file to the product, WP eCommerce will not generate new links for existing customers… nor does it even provide an UI/tool for it… because in the database, download links and purchases/carts are entirely independent and unrelated. Oh, and WP e-Commerce doesn’t allow you create manual orders from the back-end if something gets screwed up (which is all too likely considering the mess that is the code base). Sure, there’s a $50 add-on you can buy, but it’s broken too, and requires substantial developer hacking to get working.
Do yourself a favor and avoid this disastrous software at all costs. Check out WooCommerce instead. While it’s not perfect either (trust me, no e-commerce software is – and I have developed for all of them), it is much more admin-friendly, developer-friendly, server resource friendly, and FAR more well thought-out.
- The topic ‘Dreadful code base. Developers beware.’ is closed to new replies.