PHPackages                             etechflow/module-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. etechflow/module-faq

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

etechflow/module-faq
====================

Help-Centre / FAQ module for Magento 2 with categories, slug-based detail pages, search, related articles, REST API, and admin management. Theme-agnostic — works on Hyvä, Luma, and any custom theme.

1.1.3(1mo ago)001MITPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0CI passing

Since Jun 5Pushed 2w agoCompare

[ Source](https://github.com/etechflow/etechflow-faqs)[ Packagist](https://packagist.org/packages/etechflow/module-faq)[ RSS](/packages/etechflow-module-faq/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (10)Versions (7)Used By (0)

Etechflow\_Faq — Help-Centre / FAQ Module for Magento 2
=======================================================

[](#etechflow_faq--help-centre--faq-module-for-magento-2)

A self-contained FAQ / knowledge-base module with public detail pages, admin management, REST API, and full theme/branding configurability. Works on **Magento Open Source**, **Adobe Commerce**, with **Hyvä** or **Luma** themes — no Tailwind, no Alpine, no PageBuilder dependencies.

```
┌─────────────────────────────────────────────────────────────┐
│   Help Centre & FAQs                                        │
│                                                             │
│   [Search articles...] [Search]                             │
│                                                             │
│   ┌──────────┐ ┌──────────┐ ┌──────────┐                    │
│   │ ORDERS   │ │ RETURNS  │ │ DELIVERY │   …                │
│   │ ▸ q1     │ │ ▸ q1     │ │ ▸ q1     │                    │
│   │ ▸ q2     │ │ ▸ q2     │ │ ▸ q2     │                    │
│   └──────────┘ └──────────┘ └──────────┘                    │
└─────────────────────────────────────────────────────────────┘

/faqs                            → listing of all categories
/faqs/orders/can-i-return-x      → detail page with related articles
/rest/V1/etechflow/faq          → REST: all categories with items

```

Features
--------

[](#features)

- **Categories** with display label, URL identifier, icon, sort order, active toggle.
- **Q&amp;A items** with auto-generated slugs (unique per category), subtitle, rich answer body, SEO meta title + description.
- **Slug-based detail pages** at `/faqs/{category}/{slug}` — breadcrumb, left-rail category navigation, main content card, right-rail (search/helpful/contact), related articles grid.
- **Listing page** at `/faqs` — categories grid (desktop) + mobile accordion, in-page search filter, per-category modal showing all questions.
- **REST API** — three read-only public endpoints returning JSON, no auth required.
- **System Configuration** for branding (colours, font), hero (image + copy), contact details, and display toggles — no template hacking needed.
- **Theme-agnostic** — vanilla CSS scoped under `.kfaq-*`, vanilla JS (no framework). Renders identically on Hyvä and Luma.
- **Demo data** (opt-in) seeds 9 categories + 36 sample questions for a working out-of-the-box page.

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

[](#requirements)

RequirementVersionMagento2.4.4 → 2.4.8 (Open Source or Adobe Commerce)PHP8.1, 8.2, or 8.3Frontend themeAny (Hyvä, Luma, blank, custom)Quick start
-----------

[](#quick-start)

### Manual install (no Composer)

[](#manual-install-no-composer)

```
cd
mkdir -p app/code/Etechflow/Faq
# unzip the package into the directory above (so registration.php sits at app/code/Etechflow/Faq/registration.php)
unzip Etechflow_Faq-v1.0.0.zip -d app/code/Etechflow/Faq

bin/magento module:enable Etechflow_Faq
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
```

### Composer install (path repository)

[](#composer-install-path-repository)

```
# In /composer.json add:
#   "repositories": [{ "type": "path", "url": "../Etechflow_Faq" }]
composer require etechflow/module-faq:^1.0
bin/magento setup:upgrade && bin/magento setup:di:compile && bin/magento cache:flush
```

### Verify

[](#verify)

- Admin → **Content → FAQs → Categories** — lists 0 rows (or 9 if demo data enabled).
- Admin → **Stores → Configuration → EtechFlow → FAQ** — defaults are populated.
- Storefront → `/faqs` — renders the listing page.

Documentation
-------------

[](#documentation)

FileWhat's inside[INSTALL.md](INSTALL.md)Manual + Composer install, troubleshooting, post-install cleanup, demo data toggle[USAGE.md](USAGE.md)Admin walkthrough, REST API, system-config reference, customising the look, layout extension points[CHANGELOG.md](CHANGELOG.md)Version history[LICENSE](LICENSE)MITModule structure
----------------

[](#module-structure)

```
app/code/Etechflow/Faq/
├── Api/                                 service contracts
│   ├── Data/{Category,Item}Interface.php
│   └── FaqRepositoryInterface.php
├── Block/                               view blocks
│   ├── Config.php                       — reads Stores → Configuration values
│   ├── Listing.php                      — /faqs landing
│   └── View.php                         — /faqs/{cat}/{slug} detail
├── Controller/
│   ├── Adminhtml/{Category,Item}/*.php  — admin CRUD
│   ├── Index/Index.php                  — /faqs route
│   ├── Router.php                       — matches /faqs/{cat}/{slug}
│   └── View/Index.php                   — detail-page controller
├── Model/                               models, resource models, source models, repository
├── Setup/Patch/Data/
│   ├── BackfillUrlKeys.php              — populates slugs for legacy rows
│   └── InstallDemoData.php              — opt-in seed (9 cats + 36 items)
├── Ui/                                  admin form/listing data providers + action columns
├── etc/                                 module config (acl, di, db_schema, system.xml, etc.)
├── view/
│   ├── adminhtml/                       admin layouts + UI components
│   └── frontend/                        layouts + templates (listing.phtml, view.phtml)
├── composer.json
├── registration.php
└── *.md, LICENSE

```

Support
-------

[](#support)

Open an issue or reach the maintainer at the email in `composer.json`.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance94

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% 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

Every ~2 days

Total

5

Last Release

39d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/72d596daffc1cbadfe809b006d2fc518e5ca32cdccca9485410d282898d07ba1?d=identicon)[etechflow0](/maintainers/etechflow0)

---

Top Contributors

[![ahmed21-rg](https://avatars.githubusercontent.com/u/185612486?v=4)](https://github.com/ahmed21-rg "ahmed21-rg (6 commits)")[![ayeshanisar786](https://avatars.githubusercontent.com/u/106437953?v=4)](https://github.com/ayeshanisar786 "ayeshanisar786 (3 commits)")

---

Tags

magentoKnowledge BaseFAQmagento2hyvahelp-centre

### Embed Badge

![Health badge](/badges/etechflow-module-faq/health.svg)

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

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k26](/packages/loki-magento2-components)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.9k2](/packages/opengento-module-category-import-export)[zwernemann/module-withdrawal

Magento 2 EU Withdrawal Button Module - Adds a withdrawal/revocation button for orders in compliance with EU Directive (EU) 2023/2673

256.0k2](/packages/zwernemann-module-withdrawal)[joseph-leedy/module-custom-fees

Adds configurable custom fees to orders

361.2k](/packages/joseph-leedy-module-custom-fees)

PHPackages © 2026

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