WooCommerce sites are made up of a complex set of integrated parts. There’s WordPress, WooCommerce itself, other third-party plugins, and a theme. Each of these components require frequent updates and has the potential to break critical functionality on your site. This is why it’s critical to have automated tests.
For a WooCommerce site I used to work with, we had a checklist of items we would manually run through after any major update:
- Verify products on home page look correct and load
- Test “Add to Cart” button
- Test removing item from cart
- Verify all product on /shop page look correct
- Test complete checkout with Stripe for guest checkout
- Test complete checkout with PayPal for guest checkout
- Test complete checkout with Stripe with coupon for guest checkout
Needless to say, this took a lot of time. Thankfully, tests like this can all be automated using Ghost Inspector.
In WooCommerce subscription products and standard products can’t be combined. For example, if you’d like to offer customers the option to purchase coffee as a one-time sale or as a convenient monthly subscription, you’ll need to create two separate products on the backend (even though it’s essentially the same product and SKU).
If you’re SEO focused, this might be a concern in terms of duplicate content and splitting page rank. For customers, this also isn’t a great experience. If a customer lands on the one-time product page, they might not know about the subscription option (and vicea versa).
A better example of subscription user experience is Target. If a product offers a subscription option, there’s a radio button toggle with a discount clearly highlighted. Turns out, with a little work, this is also possible to do in WooCommerce. Continue reading
For the past year I’ve been working at Cratejoy, a small venture funded startup in Austin. One of the most interesting aspects of the job has been learning first-hand what it takes to grow a small business into a much larger one. Specifically, I think the business model Cratejoy started with could work really well for many WordPress based businesses and consultancies.
Cratejoy began as an ecommerce website solution for subscription box companies. The business model was a monthly platform fee (~$30/mo) and 1.25% transaction fee on all sales. At the time subscription box businesses like Birchbox, Barkbox, and Naturebox were taking off, but creating a website solution for recurring physical sales was still really difficult. The founders of Cratejoy raised $4 million from investors who were interested in exploring a potential new ecommerce market. Continue reading
To add a “Home” link in your WordPress site, go to the menu admin under “Appearance > Menu”. Under the “Pages” tab, click “View All”. The “Home” option should be the first one at the top. Simply check the box and click “Add to Menu”.
With Yahoo being sold off in chunks to Verizon, I finally decided it was time to migrate my decade worth of Yahoo email over to Gmail.
Although Gmail offers an easy “Import mail and contacts” link from the “Settings > Accounts and Import” tab, this is not what you want to do (this is what I tried first). All your email will transfer over, but it won’t have the proper sender email address or date. Continue reading
For a site I’ve been working on there’s a section of “featured content” near the bottom of the home page. I was using a simple WP_Query to generate the markup, but after the third time updating the post IDs (because different content needed to be featured), I decided this needed to be managed somehow through the dashboard.
The most common way to do something like this is generally to have a WP_Query that pulls from a specific taxonomy term (like a “featured” tag), however this doesn’t give you any control over the order of the posts. Also, in my case, I needed to display pages and a custom post type “guide” in addition to standard posts.
Thankfully, the WordPress Navigation Menus provide an easy built in interface that can be used to select content. So, I swapped my hardcoded query to pull Post IDs from a navigation menu instead. I thought it would be worth sharing the solution since this could be used in many types of situations: sliders, setting featured products for a specific template, or featuring content in a sidebar or footer. Continue reading