FacetWP can be integrated with several WooCommerce Plugins:

Variation Swatches for WooCommerce

Variation Swatches for WooCommerce by Emran Ahmed lets you attach colors or images to your WooCommerce product attributes.

With this plugin activated, you can use our Color add-on facet type to filter products by color.

When adding a color facet, set its Data Source to the product attribute containing your custom color / image swatch.

WooCommerce Attribute Swatches

WooCommerce Attribute Swatches by IconicWP, a premium plugin that works similarly to Variation Swatches for WooCommerce (same setup instructions as above).

The WooCommerce Product Search plugin by Itthinx does not work well together with WooCommerce pagination or Pager facets. It has a known incompatibility that causes wrong total post counts, leading to misbehaving pagination and paged pages showing no products. We’ve seen this issue specifically on product category/term pages.

The following workaround fixes this issue: go to WooCommerce > Settings, then Search > General and disable the setting “Optimize front end product searches” under “Standard Product Search” (which is enabled by default):

FacetWP and WooCommerce Product Search plugin

The plugin author has been notified of this issue, so it’s possible it will be fixed in future plugin versions (> v.4.6.0).

Abandoned Cart Recovery

If you are using the Abandoned Cart Recovery plugin by Addify, FacetWP will detect the wrong query for you post/product listings, causing the facets to not appear.

Add the following code to your (child) theme’s functions.php to fix this issue:

<?php
add_filter( 'facetwp_is_main_query', function( $is_main_query, $query ) {
    if ( 'addify_acr_carts' == $query->get( 'post_type' ) ) {
        $is_main_query = false;
    }
    return $is_main_query;
}, 10, 2 );

Woocommerce Product Recommendations

If you are using the Woocommerce Product Recommendations, FacetWP’s query detection will cause problems with the query for the recommended products on your cart page.

Add the following code to your (child) theme’s functions.php to fix this issue:

add_filter( 'facetwp_is_main_query', function( $is_main_query, $query ) {
  if ( function_exists( 'is_cart' ) && is_cart() ) {
    $is_main_query = false;
  }
  return $is_main_query;
}, 8, 2 );

See also