PHPackages                             revinners/shopware6-faq - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. revinners/shopware6-faq

ActiveShopware-platform-plugin[Utility &amp; Helpers](/categories/utility)

revinners/shopware6-faq
=======================

FAQ for products

1.0.0(8mo ago)11MITPHP

Since Aug 28Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/revinners/ShopwareFaq)[ Packagist](https://packagist.org/packages/revinners/shopware6-faq)[ RSS](/packages/revinners-shopware6-faq/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

RevinnersFaq Plugin
===================

[](#revinnersfaq-plugin)

A Shopware 6 plugin for adding FAQ (Frequently Asked Questions) functionality to products.

Features
--------

[](#features)

- ✅ **Product FAQ Integration** - Add Q&amp;A entries to any product
- ✅ **Frontend Display** - Clean, simple FAQ display on product pages
- ✅ **Schema.org SEO** - Automatic JSON-LD markup for Google rich snippets
- ✅ **Multi-language Support** - Translations for FAQ titles
- ✅ **CLI Management** - Easy command-line tools for FAQ management
- ✅ **Position Ordering** - Control the order of FAQ entries
- ✅ **Active/Inactive** - Show/hide FAQ entries as needed

Installation
------------

[](#installation)

1. Copy the plugin to your Shopware 6 installation:

    ```
    custom/plugins/RevinnersFaq/
    ```
2. Install and activate the plugin:

    ```
    bin/console plugin:refresh
    bin/console plugin:install --activate RevinnersFaq
    bin/console cache:clear
    ```
3. Run database migrations (happens automatically during installation)

CLI Commands
------------

[](#cli-commands)

The plugin provides convenient CLI commands for managing FAQ entries:

### List FAQs for a Product

[](#list-faqs-for-a-product)

```
# List active FAQs for a product
bin/console revinners:faq:list SW10000

# List all FAQs (including inactive)
bin/console revinners:faq:list SW10000 --all

# Get JSON output
bin/console revinners:faq:list SW10000 --json
```

### Add New FAQ

[](#add-new-faq)

```
# Add FAQ with auto-position
bin/console revinners:faq:add SW10000 "Question text?" "Answer text"

# Add FAQ with specific position
bin/console revinners:faq:add SW10000 "Question?" "Answer" --position=1

# Add inactive FAQ
bin/console revinners:faq:add SW10000 "Question?" "Answer" --inactive
```

### Update FAQ

[](#update-faq)

```
# Update question only
bin/console revinners:faq:update 29bb2fc3 --question="New question?"

# Update answer
bin/console revinners:faq:update 29bb2fc3 --answer="New answer"

# Update position
bin/console revinners:faq:update 29bb2fc3 --position=5

# Set as active/inactive
bin/console revinners:faq:update 29bb2fc3 --active
bin/console revinners:faq:update 29bb2fc3 --inactive

# Update multiple fields at once
bin/console revinners:faq:update 29bb2fc3 --question="New Q?" --answer="New A" --position=1
```

### Delete FAQ

[](#delete-faq)

```
# Delete with confirmation
bin/console revinners:faq:delete 29bb2fc3

# Force delete without confirmation
bin/console revinners:faq:delete 29bb2fc3 --force
```

Product Identification
----------------------

[](#product-identification)

Commands support multiple ways to identify products:

- **UUID**: `0198f295d0c67b77b69e4b26c02c7ea5`
- **Product Number**: `SW10000`
- **GTIN/EAN**: If set in product data

Database Structure
------------------

[](#database-structure)

The plugin creates a `revinners_product_faq` table:

```
CREATE TABLE `revinners_product_faq` (
    `id` BINARY(16) NOT NULL,
    `product_id` BINARY(16) NOT NULL,
    `question` TEXT NOT NULL,
    `answer` TEXT NOT NULL,
    `position` INT(11) NOT NULL DEFAULT 0,
    `active` TINYINT(1) NOT NULL DEFAULT 1,
    `created_at` DATETIME(3) NOT NULL,
    `updated_at` DATETIME(3),
    PRIMARY KEY (`id`),
    CONSTRAINT `fk.revinners_product_faq.product_id`
        FOREIGN KEY (`product_id`) REFERENCES `product` (`id`)
        ON DELETE CASCADE ON UPDATE CASCADE
);
```

Frontend Display
----------------

[](#frontend-display)

FAQs are automatically displayed on product detail pages in a simple format:

```

    Frequently Asked Questions

            Question text?
            Answer text.

```

SEO Integration
---------------

[](#seo-integration)

The plugin automatically generates Schema.org JSON-LD markup:

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

Custom Styling
--------------

[](#custom-styling)

The plugin uses minimal CSS classes that you can customize:

```
.qa__section {
    // Main FAQ wrapper
}

.qa__item {
    // Individual FAQ item
}

.qa__question {
    // Question styling (bold by default)
}

.qa__answer p {
    // Answer paragraph styling
}
```

Manual Database Management
--------------------------

[](#manual-database-management)

You can also manage FAQs directly via SQL:

```
-- Add FAQ entry
INSERT INTO revinners_product_faq
(id, product_id, question, answer, position, active, created_at)
VALUES
(UNHEX(REPLACE(UUID(), '-', '')),
 UNHEX('0198f295d0c67b77b69e4b26c02c7ea5'),
 'Your question?',
 'Your answer.',
 1, 1, NOW());
```

Translations
------------

[](#translations)

The plugin supports multiple languages. Add translations in:

- `src/Resources/snippet/en_GB/storefront.en-GB.json`
- `src/Resources/snippet/pl_PL/storefront.pl-PL.json`

Current translation keys:

- `revinners-faq.product.faqTitle`: FAQ section title

Development
-----------

[](#development)

### Plugin Structure

[](#plugin-structure)

```
src/
├── Command/                    # CLI commands
│   ├── FaqAddCommand.php
│   ├── FaqListCommand.php
│   ├── FaqDeleteCommand.php
│   └── FaqUpdateCommand.php
├── Core/Content/ProductFaq/    # Entity layer
│   ├── ProductFaqDefinition.php
│   ├── ProductFaqEntity.php
│   └── ProductFaqCollection.php
├── Extension/Content/Product/  # Product entity extension
│   └── ProductExtension.php
├── Migration/                  # Database migrations
│   └── Migration1724854800ProductFaq.php
├── Resources/
│   ├── config/services.xml     # Service definitions
│   ├── snippet/               # Translations
│   └── views/storefront/      # Twig templates
├── Twig/                      # Twig functions
│   └── FaqExtension.php
└── RevinnersFaq.php           # Main plugin class

```

### Extending the Plugin

[](#extending-the-plugin)

The plugin is designed to be easily extendable:

- **Custom FAQ Types**: Extend the entity definition
- **Admin Interface**: Create administration module
- **API Integration**: Use existing repositories
- **Custom Display**: Override Twig templates

Requirements
------------

[](#requirements)

- Shopware 6.7+
- PHP 8.1+
- MySQL 5.7+

License
-------

[](#license)

MIT License

Author
------

[](#author)

Revinners sp. z o. o.

Support
-------

[](#support)

For support and bug reports, please contact the development team or create an issue in the project repository.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance60

Regular maintenance activity

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

257d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1c90a7a5d12959f22ae73d4fe81d63d9045c078ee20ccb99bd547a17e86efe21?d=identicon)[revinners](/maintainers/revinners)

---

Top Contributors

[![flytomek](https://avatars.githubusercontent.com/u/37069663?v=4)](https://github.com/flytomek "flytomek (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/revinners-shopware6-faq/health.svg)

```
[![Health](https://phpackages.com/badges/revinners-shopware6-faq/health.svg)](https://phpackages.com/packages/revinners-shopware6-faq)
```

###  Alternatives

[frosh/tools

Provides some basic things for managing the Shopware Installation

79709.7k2](/packages/frosh-tools)[frosh/development-helper

Development Helper

90286.1k](/packages/frosh-development-helper)[shopware-pwa/shopware-pwa

Shopware PWA extension

4074.0k](/packages/shopware-pwa-shopware-pwa)[swag/migration-assistant

Migration plugin for shopware/platform

2036.3k](/packages/swag-migration-assistant)[werkstattl/openblogware

OpenBlogware: A Blog Module for Shopware 6.

415.7k](/packages/werkstattl-openblogware)[basecom/sw6-fixtures-plugin

basecom Fixtures Plugin

18185.5k](/packages/basecom-sw6-fixtures-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
