---
title: "ExpertVoice Recommendations"
description: "The ExpertVoice Recommendation app connects your product catalog to the ExpertVoice platform by syncing product SKUs between the two systems."
url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps/app-expertvoice"
markdown_url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps/app-expertvoice.md"
last_updated: "2026-10-31T23:07:43+00:00"
version: "J2Commerce 6"
breadcrumbs:
  - title: "Home"
    url: "https://docs.j2commerce.com/"
  - title: "J2Commerce 6"
    url: "https://docs.j2commerce.com/v6"
  - title: "Apps and Extensions"
    url: "https://docs.j2commerce.com/v6/apps-and-extensions"
  - title: "Apps"
    url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps"
  - title: "ExpertVoice Recommendations"
    url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps/app-expertvoice"
---

# ExpertVoice Recommendations

The **ExpertVoice Recommendation app** connects your product catalog to the ExpertVoice platform by syncing product SKUs between the two systems. Once the SKUs are synced, the app displays personalized product recommendations to shoppers — but only to users who have an active ExpertVoice account. If a shopper does not have an ExpertVoice account, the app will not appear on the page. Because of this, it is important that product SKUs match correctly between your catalog and ExpertVoice. Any SKU that is not synced will not be included in recommendations.

ExpertVoice accounts are for verified industry professionals, not the general public — so developers testing the app will need to qualify and get approved, which can take up to 24 hours. Might be useful to mention that in your documentation so developers aren't caught off guard during testing. To sign up for ExpertVoice, visit [**www.expertvoice.com**](http://www.expertvoice.com) and click **Join Now.**

## Requirements

- PHP 8.3.0 or later
- Joomla! 6.x
- J2Commerce 6.x
- An active ExpertVoice account with an API key

## Purchase and Download

**Step 1:** Go to the [J2Commerce website](https://www.j2commerce.com/extensions) **->** **Apps**

**Step 2:** Locate **ExpertVoice Recommendations** **->** click **View Details** **->** **Add to Cart** **->** **Checkout**

**Step 3:** Go to your **My Downloads** section under your profile button at the top right corner and search for the app. Click **Available Versions** **->** **View Files** **->** **Download Now** to save the ZIP file to your computer.

## Install the App

In the Joomla Administrator, go to **System** **->** **Install** **->** **Extensions**.

Upload the plugin ZIP file or use the Install from URL option.

![Joomla System Dashboard with System in the sidebar and the Install Extensions link highlighted to open the extension installer](https://docs.j2commerce.com/images/docs/shared/install.webp)

## Enable the App

The plugin installs and enables itself automatically. No separate enable step is needed. However, it's important to know where to go to enable or disable it in the future .

There are **two** ways to reach the Apps list.

**Option A:** Go to the **J2Commerce** icon at the top right corner **-> Apps**

**Option B:** Go to **Components** on the left sidebar **-> J2Commerce -> Apps**

![Joomla admin navigation to J2Commerce Apps: Components, J2Commerce, Apps in the sidebar and Apps in the J2Commerce menu highlighted, above the list of apps](https://docs.j2commerce.com/images/docs/shared/gift-wrap-apps.webp)

To help you narrow down the list, you can do a search for **ExpertVoice Recommendations**, click the **X,** and it will turn into a green checkmark. It is now enabled and ready for setup.

![J2Commerce Apps list searched for "expert", with the search box and the ExpertVoice Recommendations enabled status icon highlighted](https://docs.j2commerce.com/images/docs/shared/expert-voice-enable.webp)

## Configure the App

Click the **ExpertVoice Recommendations** title (next to the green checkmark) to open the settings screen.

> **Tip:** Click the **Toggle Inline Help** button on any app you install to see a description below each field directly in the admin panel.

![ExpertVoice Recommendations plugin with Toggle Inline Help highlighted and the Display Location help text highlighted below After product title](https://docs.j2commerce.com/images/docs/shared/expert-voice-toggle.webp)

### Basic Settings tab

![ExpertVoice Recommendations plugin, Plugin tab highlighted: Display Location After product title, API Key blurred, Target Type Default, header colors, Debug Mode Never](https://docs.j2commerce.com/images/docs/shared/expert-voice-config.webp)

### Display Location

The **Display Location** setting controls exactly where the widget appears on the page. Choose the option that matches the way your store displays products.

![ExpertVoice Recommendations Display Location dropdown open and highlighted, listing After product title, Before product content, After product content and cart button positions](https://docs.j2commerce.com/images/docs/shared/expert-voice-display.webp)

| Option | Where the widget appears | Best for |
| --- | --- | --- |
| **After product title** | Between the product title and the body text | Stores using Joomla articles for products |
| **Before product content** | Immediately before the product description | Stores using Joomla articles for products |
| **After product content** | Immediately after the product description | Stores using Joomla articles for products |
| **After Add to Cart button** | Directly below the Add to Cart button | Stores using J2Commerce native product pages |
| **J2Commerce product detail** | At the top of the J2Commerce product detail area | Stores using J2Commerce native product pages |

> **Tip:** Not sure which to pick? Use **After product content** if your products are Joomla articles. Use **J2Commerce product detail** if your store uses J2Commerce's built-in product page templates. Either choice puts the widget where shoppers are already focused on the product.

### API Key

Enter your ExpertVoice API key here. This field is **required** — without it, the widget will not appear on any product page, even if all other settings are correct.

To find your API key, log into your ExpertVoice account at [expertvoice.com](https://www.expertvoice.com/), navigate to **Account Settings** **->** **API**, and copy the key shown there. If you do not see an API section, contact your ExpertVoice account representative.

> **Warning:** If the **API Key** field is empty, the ExpertVoice widget is silently hidden on every product page. No error is shown to shoppers. Enable **Debug Mode** (see below) if you need to confirm whether a missing API key is the cause.

### Target Type

![ExpertVoice Recommendations settings highlighted: Target Type Default, Header Background Color rgb(53, 60, 64), Header Text Color rgb(255, 255, 255), Debug Mode Never](https://docs.j2commerce.com/images/docs/shared/expert-voice-display1.webp)

The **Target Type** setting controls which HTML container the widget is rendered into.

- **Default** — uses the standard ExpertVoice container. This is the right choice for almost every store.
- **Custom** — lets you specify your own container ID. Use this only if ExpertVoice support has asked you to target a specific element on your page.

Leave this set to **Default** unless you have a specific reason to change it.

### Custom Target ID

This field only appears when **Target Type** is set to **Custom**. Enter the HTML element ID you want the widget to attach to.

The ID must contain only letters, numbers, hyphens, and underscores. Any other characters are automatically removed before the value is used on the page.

### Header Background Color

Click the color swatch to open a color picker and choose the background color for the ExpertVoice widget header bar. The default is black (`rgb(0, 0, 0)`).

Match this color to your store's brand for a polished, integrated look.

### Header Text Color

Click the color swatch to open a color picker and choose the text color for the widget header bar. The default is white (`rgb(255, 255, 255)`).

Make sure there is enough contrast between the **Header Background Color** and the **Header Text Color** so the header text is easy to read.

### Debug Mode

When set to **Yes**, the app writes a log entry every time it decides whether to show or skip the widget. Log entries are saved to `administrator/logs/plg_j2commerce_app_expertvoice.php`.

Keep this set to **No** on a live store. Turn it on temporarily only when you are diagnosing why a widget is not appearing, then turn it off again straight away.

> **Warning:** Debug log files grow with every page view while Debug Mode is on. Turn it back off as soon as you have finished diagnosing.

## How It Works

When a shopper views a product page on your store, the following happens:

1. J2Commerce checks whether the ExpertVoice Recommendations app is enabled and the configured **Display Location** matches the current page position.
2. The app looks up the product's **SKU**. If the product has no SKU, the widget is skipped for that product.
3. The app checks that the **API Key** field is not empty. If it is empty, the widget is skipped.
4. A widget container is added to the page at the chosen display location, tagged with the product's SKU and your API key.
5. The ExpertVoice CDN script loads in the background and populates the container with expert recommendations matching that SKU.
6. The shopper sees the recommendations without any page reload or delay.

The whole process is automatic and SKU-driven — you do not need to configure anything per product beyond making sure each product has a SKU filled in.

## Display Conditions

**The ExpertVoice widget appears when:**

- The app is enabled in **J2Commerce** **->** **Apps** **->** **ExpertVoice Recommendations**
- The **API Key** field contains a valid key
- The product being viewed has a **SKU** set
- The **Display Location** matches the type of page being viewed (Joomla article page or J2Commerce native product page)

**The widget is skipped silently when:**

- The **API Key** is empty
- The product has no SKU
- The **Display Location** setting does not match the current page type

## Tips

- Make sure every product has a SKU before enabling this app. Without a SKU, the widget cannot load for that product.
- Use **J2Commerce product detail** for stores that rely on J2Commerce's native product pages. Use **After product content** for stores that display products as Joomla articles.
- Match the **Header Background Color** and **Header Text Color** to your store's brand colors for a seamless widget appearance.
- Test on a single product first before rolling out to your entire catalog. Open the product page and confirm the widget container appears.
- Turn **Debug Mode** off as soon as you have finished diagnosing. Log files grow quickly and can take up disk space on busy stores.

## Troubleshooting

### Widget Does Not Appear on Product Page

**Cause:** One or more conditions are stopping the widget from rendering — the most common causes are a missing API key, a missing product SKU, or a Display Location that does not match the current page type.

**Solution:**

- Go to **J2Commerce** **->** **Apps** and confirm **ExpertVoice Recommendations** shows a green checkmark (enabled).

![J2Commerce Apps list searched for "expert", with the search box and the ExpertVoice Recommendations enabled status icon highlighted](https://docs.j2commerce.com/images/docs/shared/expert-voice-enable.webp)

- Open the app settings and verify the **API Key** field contains your key from the ExpertVoice dashboard. If it is empty, the widget will not appear on any page.
- Check the **Display Location** setting. If you selected **After product title**, **Before product content**, or **After product content**, those options only fire on Joomla article (com_content) pages. If your store uses J2Commerce native product templates, switch to **After Add to Cart button** or **J2Commerce product detail** instead.

![ExpertVoice Recommendations Display Location dropdown open and highlighted, listing After product title, Before product content, After product content and cart button positions](https://docs.j2commerce.com/images/docs/shared/expert-voice-display.webp)

- Edit the product you are testing. Confirm the **SKU** field is filled in on the product's **General** tab (or on the variant row if it is a variable product).

![Product edit, General tab and SKU label highlighted, showing Visible in Storefront Yes, SKU ga-cb and an empty UPC/EAN/ISBN field](https://docs.j2commerce.com/images/docs/shared/expert-voice-sku.webp)

### Widget Appears but Shows No Reviews

**Cause:** The widget container is loading correctly, but ExpertVoice has no approved recommendations for that product's SKU yet. This is an ExpertVoice platform issue, not a J2Commerce configuration issue.

**Solution:**

1. Contact your ExpertVoice account representative.
2. Confirm that your API key is approved for production use (not just a test/sandbox key).
3. Verify that the SKU in J2Commerce exactly matches the product code registered in your ExpertVoice catalog — even a small difference (extra space, different capitalization) will result in no match.
4. Confirm that your store's domain is whitelisted in your ExpertVoice account settings.

### Only One Widget on a Category Page

**Cause:** The ExpertVoice CDN script is designed to initialize once per page load. When a category or product list page shows several products at once, only one widget container is filled in by the CDN's single-init logic.

**Solution:**

Switch the **Display Location** to **After Add to Cart button** or **J2Commerce product detail**. These locations only fire on single-product detail pages, so exactly one widget loads per page view and the issue does not occur.

### Need to Diagnose a Hidden Widget

**Cause:** When the widget is skipped, no error is shown on the page — the skip happens silently and nothing visible changes for the shopper.

**Solution:**

1. Open the app settings and set **Debug Mode** to **Yes**, then click **Save**.
2. Open the product page that should show the widget.
3. In the Joomla admin, open the file `administrator/logs/plg_j2commerce_app_expertvoice.php` in a text editor. Look for the most recent log entries — they will tell you exactly which condition caused the widget to be skipped (empty API key, missing SKU, etc.).
4. Fix the identified issue, then return to the app settings and set **Debug Mode** back to **No** and click **Save**.
