Generally, WooCommerce templates integrate nice with WordPress themes but not with the Genesis framework. It may cause problems with the theme layout. No need for panic, as we have the solution. We describe three ways to integrate WooCommerce with the Genesis framework.
1. The Genesis Connect for WooCommerce plugin
This plugin is a save choice and it is the most easy solution, especially if you don’t want to edit the functions.php of your Genesis child theme. This Plugin replaces the WooCommerce built-in shop templates with its own Genesis-ready versions. The con is that some of the templates are out of date.
You can download the plugin here.
2. BeardedGinger Method
This method from Josh Mallard is pretty straightforward. Nonetheless, it works like a charm. In just three simple steps you’re able to fix the layout of your site and integrate WooCommerce.
Step 1: Create a new function in your theme’s functions.php file
Step 2: Create a new file in your child theme directory with the name woocommerce.php. Add the following code to this file.
This template will be used for all the WooCommerce pages within your site. It removes the default loop and replaces it with the WooCommerce content.
Step 3: Declare support for WooCommerce in your functions.php
3. AlphaBlossom Method
I personally favour the AplhaBlossom method, which offers a complete solution. It’s one chunk of code that you place directly in your theme’s functions.php. I prefer to include it using include_once in the functions.php.
The remove action deletes the WooCommerce hooks and wrappers. New functions will replace the WooCommerce before and after wrappers. The xhtml markup seems unnecessary. We all build themes in HTML5, right?
The last step is declaring support for WooCommerce in your functions.php.
Every solution got its pros and cons. For bigger projects and theme development I prefer the latter method. If you’re not comfortable with editing the functions.php you may choose the plugin. And, for a quick solution option two is great. As a matter of fact, I’ve recently used this option in two smaller projects.