DF Product Q&A — Product Questions & Answers for PrestaShop 8 & 9
Install, configure and moderate the Questions & Answers block on your product pages, and make the most of the QAPage structured data.
Overview
DF Product Q&A adds a Questions & Answers block under your product pages. Visitors ask questions through a public form, you moderate them in the back office, you reply officially, and the community can contribute answers too. Everything is exposed as QAPage JSON-LD structured data so Google can display a question accordion under your search result.
The module has no external dependency: no Composer, no jQuery. CSS and JavaScript are only loaded on product pages.
Installation
From the back office
- Go to Modules > Module Manager.
- Click Upload a module and drop the
dfproductqa-1.0.0.ziparchive. - Click Configure once the installation is complete.
Over FTP
- Unzip the archive and upload the
dfproductqafolder into your shop’s/modules/directory. - In Modules > Module Manager, search for “DF Product Q&A” and click Install.
On installation, the module creates two dedicated tables, registers its hooks and adds a Product Q&A tab under the Catalog menu.
Configuration
All options live on the module configuration page. A warning banner permanently shows how many questions and answers are waiting for moderation, with a direct link to the dedicated tab.
Question moderation
- Auto-approve new questions — off by default. While it is off, no question appears on the storefront before you approve it.
- Only logged-in customers can ask — off by default. Guests can ask a question by providing a name and an e-mail address.
Community answers
- Allow community answers — on by default. Visitors can reply to questions that are already approved.
- Moderate community answers — on by default. This setting is independent from question moderation. Merchant replies never go through moderation: they are published immediately.
- Enable “Helpful” votes on answers — on by default. The vote counter feeds the
upvoteCountfield in the structured data.
Display and SEO
- Questions shown per product — 5 by default. Beyond that, a “Show more questions” button reveals the rest of the thread.
- Inject QAPage structured data — on by default.
- Show the GDPR consent checkbox to guests — on by default.
E-mail notifications
- Notify the merchant on every new question — on by default.
- Notification e-mail address — leave empty to use the shop address.
- Notify the customer when their question is answered — on by default. The e-mail is sent when a merchant reply is published on an approved question. If you reply to a question that is still pending, the e-mail goes out when you approve it.
Front office usage
The block appears under the product page through the displayFooterProduct hook. It has three areas.
Asking a question
An “Ask a question about this product” button expands the form. For a signed-in customer, the name is pre-filled as “Firstname L.” and the e-mail comes from the account. Guests are asked for a name and an e-mail address; the address is never displayed publicly. Submission happens over AJAX, with no page reload.
Reading the answers
Each question shows its approved answers, sorted automatically: the merchant reply first, highlighted on a green background with the “Official answer” label, then community answers ranked by vote count. A “Helpful” button lets visitors vote; double voting from the same browser is blocked.
Answering a question
When community answers are enabled, an “Answer this question” link appears under each thread. The answer goes through moderation or is published immediately depending on your setting.
Back office moderation
The Catalog > Product Q&A tab lists every question with its product, author, answer count, status and date. Filtering and sorting work on every column.
Bulk actions
Select several questions to approve, reject or delete them in one operation. Deleting a question also deletes all its answers.
Detail view
The “View” button opens a question’s detail page, where you get:
- the product concerned, with links to its back office page and its storefront page;
- the author and their clickable e-mail address;
- two buttons to approve or reject the question;
- a table of every answer, merchant and community alike, with status, vote count and per-answer approve, reject and delete actions;
- a merchant reply field.
Replying as the merchant
Type your reply in the field and click Publish the reply. It is published immediately, signed with your shop name and marked “Official answer”. If the question is still pending, a checkbox ticked by default approves it at the same time, making the whole thread visible in one move. The customer is then notified by e-mail.
QAPage structured data
On any product page with at least one approved question, the module injects a QAPage JSON-LD block in the header. The structure is as follows:
- each question becomes a
Questionentity with itsname,text,answerCount,dateCreatedandauthor; - the merchant reply becomes the
acceptedAnswer, with anOrganizationauthor; - community answers become
suggestedAnswerentries, with aPersonauthor; - every answer carries its
upvoteCount, fed by the “Helpful” votes, and aurlpointing to its anchor on the product page.
Once you have approved your first questions, validate a product page in Google’s Rich Results Test, then request reindexing from Search Console. Whether the accordion actually shows up remains Google’s decision.
Anti-spam and GDPR
Built-in protections
- Honeypot: a field invisible to users sits in the form. Bots that fill in every input are silently discarded.
- Anti-flood: the same author cannot submit several questions back to back.
- Moderation: the final filter, on by default.
- Mandatory sign-in: the strictest option, to enable if spam persists.
Personal data
The module collects the name and e-mail address of guest visitors. The address is never displayed publicly: it is only used to send the answer notification. The GDPR consent checkbox, shown to guests, is on by default. Questions and answers belonging to a deleted product are removed automatically.
Technical compatibility
- PrestaShop: 8.0 to 9.x
- PHP: 7.4 to 8.3
- Multistore: yes, questions are scoped per shop
- Hooks used:
displayHeader,displayFooterProduct,actionProductDelete - Languages: FR, EN, ES, DE, IT
Troubleshooting
The block does not appear on the product page
Check that the module is hooked to displayFooterProduct in Design > Positions. Some custom themes do not call this hook: in that case, add the call to your theme’s product template.
Submitted questions do not show up
That is the expected behaviour: moderation is on by default. Go to Catalog > Product Q&A and approve the question. To publish without moderation, enable auto-approval in the configuration.
The JSON-LD is missing from the page
The block is only injected when the page has at least one approved question and the matching option is enabled. Then clear the PrestaShop cache.
The customer does not receive the answer e-mail
Check that customer notification is enabled and that the question carries an e-mail address (signed-in customers use the one on their account). The e-mail is sent once per question, when a merchant reply is published, and only if the question is approved.