Customizing Weaviate for your WooCommerce store

Table of Contents


Weaviate is an open-source semantic search engine that makes it easier for businesses to build contextualized search applications. With Weaviate, it’s possible to customize search results so they’re more relevant for users. For businesses using WooCommerce, this technology can help customers find products faster, boost sales and reduce cart abandonment. In this post, we’ll cover how to customize Weaviate for your WooCommerce store.

Customizing Weaviate for your WooCommerce store

To get started, you’ll first need to install Weaviate. You can do this by following the instructions provided in the official documentation. Once installed, Weaviate needs to be configured to ensure it’s optimized for your WooCommerce store.

The first step is to create a new schema, which defines the data types that you want to index. WooCommerce stores have various data types, such as products, categories, tags, and reviews. To create a new schema for your store, you’ll need to use the Weaviate GraphQL API. The following PHP code shows how to create a new schema for a WooCommerce store:

 // Include the Weaviate client library

// Create a new Weaviate client
$client = new \GraphqlClient\Client('https://localhost:8080/graphql');

// Define the schema for the WooCommerce store
$schema = '
type Product {
    id: ID!
    name: String!
    description: String!
    price: Float!
    tags: [String]!
    category: String!
    reviews: [Review]

type Review {
    id: ID!
    title: String!
    content: String!
    rating: Int!
    product: Product!

type SearchResponse {
    products: [Product]!
    reviews: [Review]!

type Query {
    search(q: String!): SearchResponse!
// Send the schema definition to Weaviate
$response = $client->query('mutation { addSchema(schema: "'.$schema.'") }');
// Print the response
echo $response->getBody()->getContents();


The code above demonstrates how to create a schema with product and review types that is optimized for a WooCommerce store. Once the schema is created, you can start indexing data into Weaviate. The following PHP code shows how to index a new product into Weaviate:

// Define the product data
$product = array(
    'id' => '1234',
    'name' => 'Product Name',
    'description' => 'Product Description',
    'price' => 9.99,
    'tags' => array('tag1', 'tag2', 'tag3'),
    'category' => 'Category Name'

// Send the product data to Weaviate
$response = $client->query('mutation { addObject(object: '.json_encode($product).') }');

// Print the response
echo $response->getBody()->getContents();


The code above demonstrates how to index a product in Weaviate. The product data is passed as a JSON object to Weaviate.

How WPSOLR can help

WPSOLR is a powerful search plugin for WordPress that integrates with Weaviate. With WPSOLR, you can customize the search experience for your WooCommerce store by incorporating Weaviate’s advanced search capabilities.

WPSOLR offers a range of features that can improve your WooCommerce search results. For example, WPSOLR allows you to customize the search algorithm by weighting certain fields, such as product name or description, more heavily than others. This helps to ensure that the most relevant products are displayed at the top of search results.

WPSOLR also offers an autocomplete feature, which can help customers find products faster. This feature suggests related products as customers type in the search bar, helping them to narrow down their search.


Customizing Weaviate for your WooCommerce store can help customers find products faster, increase sales, and reduce cart abandonment. Weaviate’s advanced search capabilities, combined with WPSOLR’s powerful search plugin for WordPress, can provide a personalized and effective search experience for your customers. By following the steps outlined in this post, you can get started with Weaviate and WPSOLR and take your WooCommerce store to the next level.

Read more related content