# Product FAQ AI — Complete installation & configuration guide

> Overview DataFirefly Product FAQ AI automatically generates contextual FAQs for your PrestaShop 8 product pages via OpenAI or Anthropic Claude, injecting Schema.org FAQPage rich snippets into the head for Google…

- Page: <https://www.datafirefly.com/en/documentation/datafirefly-faq-ia-produit-prestashop-8/>
- Language: en
- Last updated: 2026-07-02
- Other languages: [fr](https://www.datafirefly.com/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-faq-ia-produit-prestashop-8/index.md)
- Index: <https://www.datafirefly.com/en/documentation/llms.txt>

## Overview

**DataFirefly Product FAQ AI** automatically generates contextual FAQs for your PrestaShop 8 product pages via OpenAI or Anthropic Claude, injecting Schema.org `FAQPage` rich snippets into the head for Google rich results. FAQs are stored in the database (`ps_product_faq` table) — no API call is ever made on the front office.

- **Compatibility:** PrestaShop 8.0 → 8.99, PHP 7.2 → 8.3
- **Multilingual:** FAQs generated and stored per language
- **Multi-shop:** independent configuration per sub-shop

## Installation

1. In your back office, go to **Modules → Module Manager → Upload a module**.
2. Upload `productfaqai-3.0.0.zip`.
3. Click **Install**, then **Configure**.

**Upgrading from v2.x (Sash module):** the upgrade is non-destructive. The `ps_product_faq` table schema is unchanged — your existing FAQs are preserved. Simply install v3.0.0 over the top, then reconfigure your API key in the new interface.

## 1. AI provider & model

First form on the configuration page.

- **AI provider:** OpenAI or Anthropic Claude. The module automatically switches to the right API.
- **OpenAI API key:** from [platform.openai.com](https://platform.openai.com) (starts with `sk-`).
- **Anthropic API key:** from [console.anthropic.com](https://console.anthropic.com) (starts with `sk-ant-`).
- **Model:** for OpenAI, `gpt-4o-mini` recommended (the most economical). For Anthropic, `claude-haiku-4-5` recommended.
- **Number of questions:** 1 to 15 (default: 5).
- **Temperature:** 0 = deterministic, 2 = very creative. Recommended: 0.7.
- **Max tokens:** maximum response length (default: 2000). Increase it if you generate more than 8 questions.
- **Auto-generate:** automatically generates the FAQ (default language) on every product creation.

**Indicative cost:** generating 5 questions costs ~$0.0005 with gpt-4o-mini and ~$0.001 with claude-haiku-4-5. 200 products × 3 languages ≈ $0.30 to $0.60 in total.

## 2. Prompt & content directives

Second form — controls the quality and style of generated FAQs.

- **Tone of voice:** professional, friendly, casual, technical, enthusiastic or reassuring.
- **Target audience** (optional): free text, e.g. "B2B medical professionals", "first-time buyers". The AI adapts vocabulary and level of detail.
- **Custom system prompt** (optional): fully replaces the default instructions. Leave empty to use the built-in prompt.
- **Additional directives** (optional): instructions appended to the prompt, e.g. "always mention the 2-year warranty", "avoid jargon".
- **Include category / manufacturer / features:** three toggles that enrich the context sent to the AI. Enable "features" for technical products — answer precision improves noticeably.

## 3. Display & SEO

- **Display position (hook):** pick one of 5 placements:
   - `displayProductFooter` — below the entire product page (default, works everywhere)
   - `displayFooterProduct` — variant depending on the theme
   - `displayProductAdditionalInfo` — under the buy button (more visible)
   - `displayReassurance` — reassurance block
   - `displayAfterProductThumbs` — under the thumbnails
- **FAQ title:** one field per shop language. Defaults provided in FR/EN/ES/DE/IT/PT/NL.
- **Accordion mode:** enabled = collapsible questions (first one open). Disabled = all answers visible.
- **JSON-LD rich snippets:** injects Schema.org `FAQPage` markup in the head. Recommended: enabled.
- **Excluded categories:** comma-separated IDs (e.g. `12,45,78`). Products in these categories are skipped during bulk generation.

The module registers all 5 hooks at install but only renders the block at the configured one. If a hook doesn't exist in your theme, the block simply won't show — test with the default hook first.

## Generating FAQs

### Individual generation

In the "Generate FAQs for products" panel, each product row shows a **Generate** button. First select the target language in the dropdown at the top of the table. The number of existing FAQs per language is displayed for each product.

### Bulk generation

- **Generate for all products (current language):** processes every product without an FAQ in the active language.
- **Generate for all products (all languages):** processes every active shop language.
- **Force regeneration:** check this box to overwrite existing FAQs — useful after changing the prompt, tone or provider.

**Duration:** allow ~1 product/second per language (API latency varies). 100 products × 3 languages ≈ 5 minutes. Do not close the tab while processing. Products in excluded categories are skipped automatically.

### Auto-generation

If enabled in the first form, every new product (`actionProductAdd` hook) automatically receives an FAQ in the shop's default language.

## Per-product FAQ editor

Click **Edit FAQs** on a product row to open the editor:

- **Language selector** at the top — instant switch between languages.
- **Position:** numerical weight, ascending display order.
- **Question / Answer:** direct text editing.
- **Status:** activate/deactivate an entry without deleting it (an inactive entry appears neither on the page nor in the JSON-LD).
- **Delete:** permanent removal of an entry.
- **Add a FAQ:** manually add a question/answer.

Click **Save** to commit all changes on the page.

## FAQPage rich snippets

When the JSON-LD option is enabled, the module injects into the `head` of every product page with at least one active FAQ an `application/ld+json` block compliant with Schema.org `FAQPage`:

```
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "…",
      "acceptedAnswer": { "@type": "Answer", "text": "…" }
    }
  ]
}
```

Verify the markup with the [Google Rich Results Test](https://search.google.com/test/rich-results). SERP appearance depends on Google and can take several days after the page is reindexed.

## Troubleshooting

### "Please configure your AI provider API key"

The key for the selected provider is empty or invalid. Check that the key matches the active provider (OpenAI = `sk-…`, Anthropic = `sk-ant-…`).

### Bulk generation errors

API errors (quota exceeded, revoked key, timeout) are logged in **Advanced Parameters → Logs** via PrestaShopLogger. The end-of-run report shows the success / skipped / error breakdown per language.

### The FAQ doesn't show on the product page

1. Check the product has at least one **active** FAQ in the viewed language.
2. Check the configured hook exists in your theme — switch back to `displayProductFooter` to test.
3. Clear the PrestaShop cache (**Advanced Parameters → Performance**).

### Rich snippets don't appear in Google

Markup can be valid without Google displaying it: rich results remain at Google's discretion. First validate the markup with the Rich Results Test, then allow time for reindexing.

## Uninstalling

Uninstalling drops the `ps_product_faq` table (all generated FAQs) and removes every configuration key. A confirmation is requested. Export your data beforehand if needed.
