You Cannot Act on Data You Never Collected
Every Magento 2 store has the same checkout form. Customers enter their name, address, phone number, and email. They pick a shipping method and a payment option. Then they place the order. The data you receive is functional — enough to fulfill the order — but it is rarely enough to run your business the way you want.
Consider what you are missing. A florist needs to know whether the recipient is home during the day. A furniture store needs elevator access details for delivery. A wholesale supplier needs a purchase order number before they can invoice. A subscription box service wants to know dietary restrictions. None of this information fits into Magento 2's default checkout fields.
The consequences are not minor. When customers cannot provide important details during checkout, they either abandon the order or find a workaround — calling your support line, replying to the order confirmation email, or typing instructions into the company name field. Each workaround increases your support ticket volume, delays fulfillment, and degrades the customer experience.
Research from Forrester indicates that 53% of shoppers are likely to abandon a purchase if they cannot find quick answers to their questions during checkout. When your checkout does not collect the information customers want to share — delivery preferences, gift messages, purchase order numbers — you create friction at the exact moment they are trying to give you money.
Custom checkout fields solve this. They let you add the exact fields your business needs, in the right location, with the right validation, shown to the right customers — without modifying a single template file.
What Are Checkout Custom Fields (and Why Magento 2 Stores Need Them)
Checkout custom fields are additional form inputs that appear during the Magento 2 checkout process. They are not part of the native checkout, which ships with a fixed set of address and payment fields. Instead, they are merchant-defined inputs that you create and manage from the admin panel.
Magento 2's default checkout collects shipping address, billing address, shipping method, and payment method. It does not provide a way to add a "Delivery Instructions" textarea, a "How Did You Hear About Us?" dropdown, or a "Purchase Order Number" text field. If you want to collect that information, your options without an extension are limited: modify checkout template files directly (which breaks during upgrades), use a third-party form builder (which creates data outside the order flow), or ask customers for the information after checkout via email (which adds delay and friction).
A dedicated checkout custom fields extension integrates the additional inputs directly into the native checkout flow. The data travels with the order — stored in the quote, transferred to the order record, displayed in the admin order detail, included in order emails, and available in the order grid. There is no separate system to manage and no manual data reconciliation.
The impact goes beyond convenience. Stores that add targeted checkout fields report measurable improvements in order accuracy and customer satisfaction. When customers can specify delivery preferences upfront, delivery failures drop. When they can enter a gift message at checkout instead of calling support, support ticket volume decreases. When B2B buyers can attach a PO number during checkout rather than emailing it after the fact, invoice processing accelerates.
Checkout custom fields are not the right solution for every scenario. If you need to collect detailed customer profile information — demographic data, business size, industry — the MageRa Customer Attributes extension is better suited because those fields attach to the customer record, not the order. If you need to collect pre-sale qualification data, a contact form or request-for-quote workflow is more appropriate. Checkout custom fields shine when you need order-specific information that directly affects fulfillment, delivery, or customer communication.
Key Features of MageRa Checkout Custom Fields for Magento 2
MageRa Checkout Custom Fields lets you add, configure, and manage custom fields across your checkout without touching code. Every field type, placement option, and validation rule is controlled from a dedicated admin interface.
Seven Field Types. The extension supports text input (single-line), textarea (multi-line), select (dropdown), multiselect (multi-choice), checkbox (boolean toggle), radio button group, and date picker. These seven types cover virtually every data collection need at checkout. Use text for PO numbers and coupon codes. Use textarea for delivery instructions and gift messages. Use select for "How did you hear about us?" with predefined options. Use checkbox for "Is this a gift?" Use date picker for preferred delivery dates. Each field type renders with the appropriate input control and validation on the storefront.
Three Placement Locations. Fields can be attached to the billing address section, the shipping address section, or the order level. Address-level fields travel with the address data — useful when billing and shipping addresses need different custom inputs. Order-level fields sit between the address and payment sections, collecting information that applies to the entire order rather than a specific address.
Validation Rules. Six validation options ensure data quality: required (field must be filled), numeric (numbers only), email (valid email format), URL (valid URL format), minimum length (enforce a character minimum), and maximum length (enforce a character maximum). You can stack rules — a field can be both required and numeric, for example. Validation runs client-side for instant feedback and server-side for security.
Conditional Visibility. Fields can be shown or hidden based on the value of another field. This is configured through a simple condition builder: select a source field, choose an operator (equals, not equals, contains), and set a trigger value. For example, show a "Gift Message" textarea only when the "Is this a gift?" checkbox is checked. Show a "Preferred Delivery Time" field only when the shipping method equals "flatrate_flatrate." Conditional visibility keeps the checkout form clean — customers only see fields relevant to their specific order.
Customer Group Filtering. Fields can be restricted to specific customer groups. Show a "Purchase Order Number" field only to Wholesale customers. Show a "Tax Exemption ID" field only to B2B General customers. This prevents irrelevant fields from cluttering the checkout for customers who do not need them, while ensuring the right fields appear for the right audience.
Sort Order Control. Every field has a sort order value that determines its position relative to other custom fields. Arrange fields in whatever sequence makes sense for your checkout flow — delivery instructions before gift messages, PO number at the top of the order section.
Default Values. Pre-fill fields with default values to reduce customer effort. If most orders are residential deliveries, default the "Delivery Location" dropdown to "Home." If most customers prefer email communication, default the "Preferred Contact Method" radio group to "Email."
Screenshot of the MageRa Checkout Custom Fields admin management grid in Magento 2, showing custom field definitions with field code, label, type, location, and status columns.
Screenshot showing custom checkout fields rendered on the Magento 2 storefront checkout page, including delivery instructions, gift message, and preferred contact method fields integrated into the native checkout flow.
Data Management. Custom field values are stored with the quote during checkout and transferred to the order upon placement. The data appears in the admin order detail page, is included in order confirmation emails, shows in the admin order grid as a column, and exports with the standard Magento 2 order export. No separate export process is needed — the data flows through the native order pipeline.
REST API Support. The extension exposes endpoints for programmatic field management: list all fields, get a specific field by code, and create new fields via POST. This enables integration with external systems and automated deployment workflows.
How to Set Up Checkout Custom Fields in Magento 2
Step 1: Plan Your Fields Before Configuring
Before opening the admin panel, list the custom fields your business needs. For each field, decide the type (text, select, checkbox, and so on), the location (billing address, shipping address, or order level), whether it is required, and which customer groups should see it. Planning upfront prevents a cluttered, confusing checkout form. Aim for no more than three to five custom fields — each additional field is a decision point that can reduce completion rates.
Step 2: Install the Extension
Install via Composer (recommended):
composer require magera/module-checkoutcustomfields
php bin/magento module:enable MageRa_CheckoutCustomFields
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
Requirements: Magento 2.4.6 through 2.4.9, PHP 8.3 through 8.5, Composer 2.x. The extension has no additional MageRa library dependencies — it builds directly on Magento's native checkout, customer, quote, and sales modules.
For manual installation, download the extension files and upload them to app/code/MageRa/CheckoutCustomFields/, then run the setup commands above starting from module:enable.
Step 3: Configure Extension Settings
Navigate to Stores > Configuration > MageRa Extensions > Checkout Custom Fields. Under General Settings, set Enable Custom Fields to Yes. This is also where you control global behavior — Show in Order Grid to display custom field values as an order grid column, and Enable Export to include custom fields in order exports (the field carries the comment "Include custom fields in order export"). The Field Management group directly below renders an embedded field manager (the MageRa\CheckoutCustomFields\Block\Adminhtml\FieldManager block), so you can jump straight from the global toggles to managing individual fields.
Step 4: Create Your First Custom Field
Open the field grid — its admin controller lives at the checkoutcustom route (Controller/Adminhtml/Field/Index), reachable from the Manage Fields link in the configuration section — and click "Add New Field." Configure the field properties, which map directly to the CustomFieldInterface data model:
- Field Code: A unique identifier using lowercase letters and underscores (for example,
delivery_instructions). This code is stored asfield_codeand used in API references. - Field Label: The customer-facing label, stored as
field_label(for example, "Delivery Instructions"). - Field Type / Input: Choose from the real options exposed by the field type source model — Text, Textarea, Dropdown (select), Multiple Select, Checkbox, Radio, or Date.
- Location: Choose where the field renders. The three real options are Shipping Address, Billing Address, and Order (After Payment).
- Required / Validation Rules: Toggle Is Required and optionally supply validation rules; combined with the input type these drive client-side validation at checkout.
- Sort Order: Enter a number to control field position within its location.
- Default Value: Optionally pre-fill the field.
- Options: For Dropdown, Multiple Select, and Radio types, define the selectable option list.
- Show in Order / Show in Email: Independent toggles (
show_in_order,show_in_email) that control whether the captured value appears on the admin order view and in order emails. - Apply To (Customer Groups): Select which groups see this field (
apply_to). Leave blank for all groups.
Click Save. Because the storefront reads the live field set from GET /V1/magera/checkoutfields (an anonymous endpoint returning only enabled fields), the field appears on the checkout immediately with no cache rebuild.
Step 5: Set Up Conditional Visibility (Optional)
If a field should only appear under certain conditions, configure the conditional visibility rule in the field editor. Define the source field, the comparison operator, and the trigger value. For example, to show a "Gift Message" field only when "Is this a gift?" is checked:
{
"field_code": "is_gift",
"operator": "equals",
"value": "1"
}
The rule is stored as the field's conditional_visibility array, and the storefront evaluates it live as the shopper fills in the form. You can test conditional visibility by adding products to cart, proceeding to checkout, and toggling the trigger field to confirm the dependent field appears and hides as expected.
For teams that manage fields programmatically (bulk imports, deployment scripts, or a headless admin), the same CRUD operations are exposed over REST in etc/webapi.xml: GET /V1/magera/checkoutfields/manage (list, admin token), POST /V1/magera/checkoutfields (create), PUT /V1/magera/checkoutfields/:id (update), and DELETE /V1/magera/checkoutfields/:id. The admin write endpoints are protected by the MageRa_CheckoutCustomFields::fields_save and fields_delete ACL resources, while the read-only GET /V1/magera/checkoutfields used by the storefront is anonymous and returns only enabled fields.
Step 6: Test and Verify
Complete a full checkout as a customer. Verify that custom fields appear in the correct location, validation rules trigger appropriate error messages, conditional fields show and hide correctly, and the submitted data appears in the admin order detail page. Check the order confirmation email to confirm custom field data is included. Test with different customer groups if you are using group filtering.
MageRa Checkout Custom Fields for Magento 2
MageRa Checkout Custom Fields is built for Magento 2.4.6 through 2.4.9, supporting both Open Source and Commerce editions. It runs on PHP 8.3 through 8.5 and installs via Composer with a single command.
The extension differentiates itself on three points: zero-code field management, native data integration, and flexible visibility controls. Every field is created and managed through the admin panel — no template modifications, no layout XML updates, no developer required. Custom field data flows through the native order pipeline: stored with the quote, transferred to the order, displayed in admin order details, included in order emails, shown in the order grid, and exported with standard order exports. Conditional visibility and customer group filtering ensure each customer sees only the fields relevant to them, keeping the checkout form clean and focused.
Visit magera.ca/magento-2-checkout-custom-fields.html for pricing, documentation, and live demos.
5 Tips for Adding Custom Fields Without Hurting Conversions
Adding fields to your checkout is a double-edged sword. The right fields improve order accuracy and customer satisfaction. The wrong fields — or too many fields — increase abandonment. These five principles help you collect what you need without costing sales.
1. Keep custom fields under five. Every field adds cognitive load. Research from the Baymard Institute shows that form length is a top reason for checkout abandonment. Limit custom fields to the information you genuinely need for fulfillment or customer communication. "Nice to have" data should be collected post-purchase via a follow-up email, not during checkout.
2. Use conditional visibility aggressively. If a field is only relevant for 20% of orders, hide it by default and show it only when a trigger condition is met. A gift message field should appear only when the customer indicates the order is a gift. A PO number field should appear only for wholesale customer groups. This keeps the default checkout short while still accommodating edge cases.
3. Make optional fields clearly optional. Mark optional fields with "(Optional)" in the label. Do not make fields required unless the order cannot be fulfilled without the information. A delivery instructions field should be optional — most customers have nothing to add. A PO number field for B2B customers may need to be required if your invoicing process depends on it.
4. Choose the right field type for the data. Use dropdowns (select fields) whenever the possible answers are known and limited. Dropdowns are faster to complete than text fields and produce cleaner data. "How did you hear about us?" works far better as a select field with predefined options than as an open text field that your team has to manually categorize later. Reserve text and textarea fields for truly free-form information like delivery instructions and gift messages.
5. Combine with a streamlined checkout flow. Custom fields work best when the underlying checkout is already fast. If your checkout still uses Magento 2's default multi-step flow, switching to MageRa One Step Checkout alongside custom fields gives you both a faster checkout process and the ability to collect additional data — without adding page loads or steps to the flow.
Wrapping Up
Magento 2's default checkout collects shipping and billing information. If your business needs anything beyond that — delivery preferences, gift messages, PO numbers, survey responses, or any order-specific detail — you need custom checkout fields.
MageRa Checkout Custom Fields gives you seven field types, three placement locations, six validation rules, conditional visibility, and customer group filtering, all managed from the admin panel without code changes. Custom field data flows through the native order pipeline: it appears in admin order details, order confirmation emails, the order grid, and standard exports. The extension installs via Composer in under two minutes and works with Magento 2.4.6 through 2.4.9 on both Open Source and Commerce editions.
The key is restraint. Add only the fields your fulfillment process requires. Use conditional visibility to keep the default form short. Choose the right field type for each piece of data. When done well, custom checkout fields reduce support tickets, improve delivery accuracy, and give you customer insights that would otherwise require a post-purchase survey.
Visit magera.ca for pricing details, or explore the extension directly at magera.ca/magento-2-checkout-custom-fields.html.
FAQ
Q1: Can I add custom fields to both billing and shipping address sections at the same time? Yes. MageRa Checkout Custom Fields supports three placement locations — billing address, shipping address, and order level. You can add fields to any combination of these locations simultaneously. For example, you could add a "Company VAT Number" field to the billing address section and a "Delivery Instructions" textarea to the shipping address section, plus an "Order Comments" field at the order level. Each field is configured independently with its own type, validation, visibility rules, and customer group filters. The extension stores address-level custom field values in a dedicated address table, so billing and shipping fields remain separate even when both are populated.
Q2: Do custom field values appear in order confirmation emails sent to customers? Yes. When you enable email display for a field, its value is included in the order confirmation email. The data appears in a clearly formatted section alongside the standard order details. This means customers receive a complete record of the information they submitted, which reduces follow-up inquiries about delivery preferences, gift messages, or other custom details. You control which fields appear in emails on a per-field basis during field creation.
Q3: Can I export custom field data with Magento 2's built-in order export? Yes. Custom field values are stored in the native order data structure and export automatically with Magento 2's standard order export functionality (Sales > Orders > Export). No additional export configuration is needed. The data also appears as a column in the admin order grid when you enable grid display in the extension settings, allowing you to sort and filter orders by custom field values directly from the grid view. For programmatic access, the extension provides REST API endpoints to retrieve field definitions and values.
Internal Links
- /blog/one-step-checkout-magento-2-conversion-rates (One Step Checkout — pair custom fields with a single-page checkout for maximum data collection without added friction)
- /blog/magento-2-order-delivery-date-scheduling (Order Delivery Date — add delivery scheduling alongside custom delivery instructions for complete fulfillment control)
- /blog/magento-2-ajax-add-to-cart-ux (AJAX Add to Cart — optimize the entire purchase flow from add-to-cart through checkout)
Comments (0)
Be the first to comment.