PHPackages                             pendalff/magento2-checkout-custom-form - 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. pendalff/magento2-checkout-custom-form

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

pendalff/magento2-checkout-custom-form
======================================

Add a custom form to Magento 2 checkout on the first step.

2.0.5(6y ago)014MITPHPPHP ~7.0.0|~7.1.3|~7.2.0

Since Nov 11Pushed 6y agoCompare

[ Source](https://github.com/pendalff/magento2-checkout-custom-form)[ Packagist](https://packagist.org/packages/pendalff/magento2-checkout-custom-form)[ RSS](/packages/pendalff-magento2-checkout-custom-form/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (18)Used By (0)

Magento 2 - Checkout custom form
================================

[](#magento-2---checkout-custom-form)

Overview
--------

[](#overview)

Add a custom form fields to the Magento 2 checkout. The form will appear in the first checkout step (shipping step) above shipping methods. The form is available for logged in customers and guests. After an order is placed all data are set in `sales_order` table. Data are still in the form after page refreshed, till cart is active.

Form data will be set in a `quota` table through independent API request:

- `/V1/carts/mine/set-order-custom-fields` (for logged in customer)
- `/V1/guest-carts/:cartId/set-order-custom-field` (for guest)

Compatibility
-------------

[](#compatibility)

- Tag 1.2.\* =&gt; Magento 2.3
- Tag 1.1.\* =&gt; Magento 2.1.x - 2.2.x (no longer supported)

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

[](#requirements)

- PHP 7.0 or higher

Installation details
--------------------

[](#installation-details)

1. Run `composer require sbodak/magento2-checkout-custom-form`
2. Run `php bin/magento module:enable Bodak_CheckoutCustomForm`
3. Run `php bin/magento setup:upgrade`

### Sample custom form fields

[](#sample-custom-form-fields)

- buyer
- buyer email address
- purchase order no.
- goods mark
- comments

### Modify form fields

[](#modify-form-fields)

- You need to modify service contract data interface in `Api/Data/CustomFieldsInterfaces.php`
- You need to modify table schema in `Setup/InstallData.php`
- You need to add new fields to observer `Observer/AddCustomFieldsToOrder.php` which save data in quota and sales table
- You need to add new item in `view/frontend/layout/checkout_index_index.xml`
- You need to modify the methods in `Model/Data/CustomFields.php`
- You need to modify the methods in `Model/CustomFieldsRepository.php`

```

    uiComponent
    custom-checkout-form-fields

        [... place here new definition of your field]

```

Check official documentation: [https://devdocs.magento.com/guides/v2.3/howdoi/checkout/checkout\_form.html](https://devdocs.magento.com/guides/v2.3/howdoi/checkout/checkout_form.html)

- You need to modify template views in `view/frontend/templates/order/view/custom_fields.phtml` (for customer account) and `view/adminhtml/templates/order/view/custom_fields.phtml (for admin panel)`.
- Checkout form view is generated automatically using Ui Components

### Required entry

[](#required-entry)

If you want to make field required, check this example:

```

    Magento_Ui/js/form/element/abstract

        customCheckoutForm
        ui/form/field
        ui/form/element/input

        true

    checkoutProvider
    customCheckoutForm.checkout_purchase_order_no
    Purchase order no.
    3

```

### Fast fields override

[](#fast-fields-override)

You can modify `i18n/en_US.csv` translation to change field names.

### Checkout view - custom form - Guest

[](#checkout-view---custom-form---guest)

[![Checkout frontend custom form - Guest](docs/frontened_checkout_custom_form_guest.png)](docs/frontened_checkout_custom_form_guest.png)

### Checkout view - custom form - Logged in

[](#checkout-view---custom-form---logged-in)

[![Checkout frontend custom form - Logged in](docs/frontened_checkout_custom_form_logged.png)](docs/frontened_checkout_custom_form_logged.png)

### Custom account - Order history view

[](#custom-account---order-history-view)

[![Customer account - Order history view](docs/frontend_customer_account_orders.png)](docs/frontend_customer_account_orders.png)

### Admin panel - Order Edit

[](#admin-panel---order-edit)

[![Admin panel - order edit](docs/backend_order_custom_information.png)](docs/backend_order_custom_information.png)

Uninstall
---------

[](#uninstall)

To remove this module run `php bin/magento module:uninstall Bodak_CheckoutCustomForm`. It will remove all data and drop columns in `sales_order` and `quote` tables.

License
-------

[](#license)

[MIT License](LICENSE)

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 80% 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 ~65 days

Recently: every ~104 days

Total

15

Last Release

2234d ago

Major Versions

1.2.1 → 2.0.02020-05-06

PHP version history (2 changes)1.0.0PHP ~7.0.0

1.1.3PHP ~7.0.0|~7.1.3|~7.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/7c36b15f01dce750c54e099464af6a6eed321e982c67eb38ca4b6691032fae94?d=identicon)[yapendalff](/maintainers/yapendalff)

---

Top Contributors

[![sbodak](https://avatars.githubusercontent.com/u/25949343?v=4)](https://github.com/sbodak "sbodak (16 commits)")[![WebWeave](https://avatars.githubusercontent.com/u/17380630?v=4)](https://github.com/WebWeave "WebWeave (4 commits)")

---

Tags

magento2custom checkout

### Embed Badge

![Health badge](/badges/pendalff-magento2-checkout-custom-form/health.svg)

```
[![Health](https://phpackages.com/badges/pendalff-magento2-checkout-custom-form/health.svg)](https://phpackages.com/packages/pendalff-magento2-checkout-custom-form)
```

###  Alternatives

[magepal/magento2-googletagmanager

Google Tag Manager (GTM) for Magento 2 with Advance Data Layer

2691.6M5](/packages/magepal-magento2-googletagmanager)[boldcommerce/magento2-ordercomments

Magento 2 Module to add a comment field above the place order button in the checkout

170768.1k](/packages/boldcommerce-magento2-ordercomments)[mageplaza/magento-2-blog-extension

Magento 2 Blog extension

122748.9k5](/packages/mageplaza-magento-2-blog-extension)[magemojo/m2-ce-cron

Replacement package for Magento 2 Cron Functionality

163331.1k](/packages/magemojo-m2-ce-cron)[magepal/magento2-reindex

Reindex your Magento2 store quickly and easily from backend/admin, instead of command line.

111705.0k1](/packages/magepal-magento2-reindex)[sbodak/magento2-checkout-custom-form

Add a custom form to Magento 2 checkout on the shipping step.

1003.5k](/packages/sbodak-magento2-checkout-custom-form)

PHPackages © 2026

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