alekseon / custom-forms-builder
alekseon/custom-forms-builder
N/A
Alekseon_CustomFormsBuilder
A Custom Form Builder for Magento 2
Let you create custom forms in Admin panel
Installation
In your Magento2 root directory, you may install this package via composer:
composer require alekseon/custom-forms-builder
bin/magento setup:upgrade
Dependencies
This extension gives you possibility to create forms in admin panel. If you want to place them on frontend by CMS content, please check this extension: Alekseon_WidgetForms
Support
| CJM Ver. | Magento 2.0 | Magento 2.1 | Magento 2.2 | Magento 2.3 | Magento 2.4 |
|---|---|---|---|---|---|
| 1.x | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Features
Create fully customized forms in Magento2 Admin Panel
Create as many forms as you need. Define the title and the fields.
You can choose from field types:
- Text Field
- Text Area
- Yes/No
- Dropdown
- Multiple Select
- Date
- Image
Manage fields as regular attributes
Thanks to the EAV structure, you can manage every field of your form similarly to how you manage regular attribute in Magento.
Add and access your form objects easily
You can view and manage the form applications by regular Magento grid
Add Forms to CMS Pages
Please refer to Alekseon_WidgetForms if you want to be able to add these forms to CMS pages for your customers.
Email notifications
@Todo
Issue Tracking / Upcoming Features
For issues, please use the issue tracker.
Issues keep this project alive and strong, so let us know if you find anything!
We're planning on pumping out a ton of new features, which you can follow on our project page.
Development / Contribution
If you want to contribute please follow the below instructions:
- Create an issue and describe your idea
- Fork this repository
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes
- Publish the branch (
git push origin my-new-feature) - Submit a new Pull Request for review
Maintainers
Current maintainers:
See also our contributors
License
Changelog
All notable changes to this project will be documented in this file.
[Unreleased]
Changed
Fixed
Added
[102.3.20] - 2026-04-16
- use created_from_store_id to get form from record (used for correct form data in emails notifications)
[102.3.19] - 2026-02-19
- frontend notes for form fields
[102.3.18] - 2025-12-02
Added
- check field visibility to display on grid or form
- setData and unset Data can use identifier on form record object
Changed
- moved fieldsIdentifierMap to from object
- removed visibility filter on fields collection (now its check during rendering field)
[102.3.17] - 2025-12-01
Added
- add attribute code map to getData()
[102.3.16] - 2025-11-17
Fixed
- Php 8.4 compatibility (https://github.com/Alekseon/magento2-widget-forms/issues/29)
[102.3.15] - 2025-07-30
Added
- Messages Field type (for now used by Alekseon_CustomFormsEmailNotification)
[102.3.14] - 2024-11-17
Added
- postal code validator
- file uploader validations (moved from Alekseon_CustomFormBilder)
[102.3.13] - 2024-09-25
Fixed
- fix getMappedAttributeCode method
[102.3.12] - 2024-05-24
Fixed
- Translate labels (https://github.com/Alekseon/AlekseonEav/issues/45)
[102.3.11] - 2024-05-09
Fixed
- make "Admin Note" translatable
[102.3.10] - 2024-02-25
Changed
- Raplaced "Is Enabled" by "Input Visibility", it allows to set input visibility to: visible, only for admin or none
[102.3.9] - 2023-12-03
Added
- Max Size param (for file input validator)
- note for params
[102.3.8] - 2023-05-22
Added
- manage form button on records view + acl permission
- Yes/No option source
- check if source model class exists
Fixed
- fix for saving fields in tabs for new forms
[102.3.7] - 2023-05-09
Changed
- code quality improvements
- replaced install and upgrade scripts by patches
Fixed
- hide delete massaction if no permisstion set
[102.3.6] - 2023-05-08
Changed
- code quality improvements
[102.3.5] - 2023-05-01
Added
- github actions
- introduced strict_types
Fixed
- display default label instead of store label as fieldset label
- stay on same scope view after "save and continue" form
- code quality improvements
[102.3.4] - 2023-04-22
Fixed
- fixed mass delete action
- remove image file during mass delete action
[102.3.3] - 2023-04-21
Added
- Created From Store Id for Record entity
- system.xml file
Fixed
- added missing group_fields_in column to alekseon_custom_form table
[102.3.2] - 2023-03-12
Added
- small alekseon logo
- cache tags
- getRecordCollection() and getRecordById() methods in Form class
- filter,sort,select on form records collection by field identifier
- getData from form record by field identifier
[102.3.1] - 2023-03-04
Fixed
- removed "Options Source" input from rating and boolean fields
[102.3.0] - 2023-03-03
Added
- possibility to disable form field
- check if "is required" field is editable
- scopable records grid and record edit page
- group fields in tabs
- added "alekseon/widget-forms-statistics" in composer
Changed
- use ajax on grids
[102.2.3] - 2023-02-27
Added
- notification with link to wiki
[102.2.2] - 2022-11-19
Fixed
- fix setUp() declaration in tests
Added
- admin note field
- mass delete action for form records
[102.2.1] - 2022-10-22
Fixed
- fix error during setup:upgrade for fresh installation
[102.2.0] - 2022-10-22
Added
- form identifier
- field identifier
- form property in form record attribute
- added alekseon/custom-forms-frontend requirerment to composer
Changed
- max length validator modifications
- moved table definition to db_schema.xml
[102.1.2] - 2022-10-13
Changed
- chenged composer requirements
- small fix in setup upgrade
[102.1.1] - 2022-10-12
Changed
- attribute_code field length in DB to 255 chars
Added
- attribute source: TextFormAttributes
[102.1.0] - 2022-10-10
Changed
- Move new entity mail notification functionality to alekseon/custom-forms-email-notification
[102.0.8] - 2022-10-05
Added
- compability to attribute default values
[102.0.7] - 2022-10-04
Changed
- chenged composer requirements
[102.0.6] - 2022-09-27
Added
- created at field for form
- hashed images names and directory name for images (needs eav in version 101.0.11)
- input params (needs eav in version 101.0.11)
[102.0.5] - 2022-08-02
Fixed
- fix visibility of configuration
[102.0.4] - 2020-05-02
Added
- csv and excel exports
- show custome forms in adminhtml menu
- permissions to view and save custom forms
[102.0.3] - 2020-04-14
Fixed
- fixed issue with missing created_at column on fresh installation
[102.0.1] - 2020-04-01
Added
- new entity notifiaction email
- option sources for select attributes
- form record created at column
- record attribute variables for events
[102.0.0] - 2020-10-15
Added
- Added compatibility with Magento 2.4.0
[101.0.0] - 2020-04-27
Added
- init
| Version | Stability | QA Status | Compatibility | Released |
|---|---|---|---|---|
| 102.3.20 | stable | Fail | Magento 2.4.7-2.4.9 Details | 2026-04-16 15:19:01 |
| 102.3.19 | stable | Not tested | Not yet tested Details | 2026-02-19 16:10:02 |
| 102.3.18 | stable | Not tested | Not yet tested Details | 2025-12-02 15:53:35 |
| 102.3.17 | stable | Not tested | Not yet tested Details | 2025-12-01 16:13:19 |
| 102.3.16 | stable | Not tested | Not yet tested Details | 2025-11-17 13:20:51 |
| 102.3.15 | stable | Not tested | Not yet tested Details | 2025-07-31 15:51:31 |
| 102.3.14 | stable | Not tested | Not yet tested Details | 2024-11-22 15:40:31 |
| 102.3.13 | stable | Not tested | Not yet tested Details | 2024-09-25 15:36:12 |
| 102.3.12 | stable | Not tested | Not yet tested Details | 2024-05-24 14:09:52 |
| 102.3.11 | stable | Not tested | Not yet tested Details | 2024-05-09 09:05:40 |
| 102.3.10 | stable | Fail | Magento 2.4.7 Details | 2024-02-25 20:16:53 |
| 102.3.9 | stable | Not tested | Not yet tested Details | 2023-12-03 20:42:23 |
| 102.3.8 | stable | Not tested | Not yet tested Details | 2023-05-22 08:35:44 |
| 102.3.7 | stable | Not tested | Not yet tested Details | 2023-05-09 15:44:39 |
| 102.3.6 | stable | Not tested | Not yet tested Details | 2023-05-08 21:32:26 |
| 102.3.5 | stable | Not tested | Not yet tested Details | 2023-05-01 19:16:52 |
| 102.3.4 | stable | Not tested | Not yet tested Details | 2023-04-22 09:01:38 |
| 102.3.3 | stable | Not tested | Not yet tested Details | 2023-04-21 15:13:11 |
| 102.3.2 | stable | Not tested | Not yet tested Details | 2023-03-12 09:49:41 |
| 102.3.1 | stable | Not tested | Not yet tested Details | 2023-03-04 11:34:26 |
| 102.3.0 | stable | Not tested | Not yet tested Details | 2023-03-03 21:09:08 |
| 102.2.3 | stable | Not tested | Not yet tested Details | 2023-02-27 10:50:04 |
| 102.2.2 | stable | Not tested | Not yet tested Details | 2022-11-19 10:34:08 |
| 102.2.1 | stable | Not tested | Not yet tested Details | 2022-10-22 12:44:16 |
| 102.2.0 | stable | Not tested | Not yet tested Details | 2022-10-22 11:29:00 |
| 102.1.2 | stable | Not tested | Not yet tested Details | 2022-10-13 08:59:10 |
| 102.1.1 | stable | Not tested | Not yet tested Details | 2022-10-12 16:05:55 |
| 102.1.0 | stable | Not tested | Not yet tested Details | 2022-10-10 14:50:39 |
| 102.0.8 | stable | Not tested | Not yet tested Details | 2022-10-05 13:36:35 |
| 102.0.7 | stable | Not tested | Not yet tested Details | 2022-10-04 12:26:11 |
| 102.0.6 | stable | Not tested | Not yet tested Details | 2022-09-27 14:55:56 |
| 102.0.5 | stable | Not tested | Not yet tested Details | 2022-09-02 09:44:52 |
| 102.0.4 | stable | Not tested | Not yet tested Details | 2022-05-02 15:13:31 |
| 102.0.3 | stable | Not tested | Not yet tested Details | 2022-04-14 10:13:46 |
| 102.0.2 | stable | Not tested | Not yet tested Details | 2022-04-14 09:34:17 |
| 102.0.1 | stable | Not tested | Not yet tested Details | 2022-04-01 14:41:59 |
| 102.0.0 | stable | Not tested | Not yet tested Details | 2020-10-15 11:53:16 |
| 101.0.0 | stable | Not tested | Not yet tested Details | 2020-04-30 22:46:32 |
Requires 4
| Package | Constraint |
|---|---|
| alekseon/alekseon-eav | ^101.2.15 |
| alekseon/custom-forms-email-notification | * |
| alekseon/custom-forms-frontend | * |
| alekseon/widget-forms-statistics | * |
Compatibility
Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.
Code Quality
Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.
Static analysis
Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.
| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Fail | 255 | 10 errors, 245 warnings (ruleset: Magento2) — 170 auto-fixable with phpcbf |
| PHPMD | Warning | 4 | 4 rule violations (IfStatementAssignment:2, MissingImport:1, EmptyCatchBlock:1) |
| Cpd | Pass | 0 | |
| Composer validate | Warning | 4 | valid with 4 warnings (composer validate --strict) |
PHPStan
Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.
Tests
Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.
Unit tests
Integration tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Security
Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.
More from alekseon
View vendorTurn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.