Markus Michalski FAQ

Product Custom Inputs: Configuration

Configure Product Custom Inputs in the Sylius admin: shop-wide switch, defining fields, eight field types with limits, attaching fields to products and practical examples.

Deutsche Version

Back to overview

Product Custom Inputs: Configuration

This documentation always describes the latest published version.

The plugin has no config keys in config/packages/. Everything is managed in the admin: one switch for the whole plugin, the field definitions and the attachment of fields to products. The names below match the English admin interface (en_US).

Settings page

Admin sidebar -> MMKreativ Plugins -> Product Custom Input Fields (page title "Custom Input Fields Settings", route mmd_sylius_product_custom_inputs_plugin_admin_settings)

Setting Default Description
Enabled On Shop-wide switch. Off: the add-to-cart form shows no custom input fields, and the Shop API rejects write requests with 404

The switch applies to the whole shop, not per channel. Values already collected stay visible, and field definitions can still be managed while the plugin is disabled.

The "Custom Input Fields" button on the settings page takes you to the list of field definitions.

The admin prefix in the paths of this documentation (/admin/...) depends on sylius_admin.path_name in your installation.

Defining fields

The list is an admin grid at <admin prefix>/product-custom-input-fields/ with the columns Label, Field type, Required and Position, sorted by position. Create new fields with the create button, edit or delete existing ones with the row actions, or delete several at once with bulk delete.

A field is global: it does not belong to a single product but can be attached to any number of products. Required flag, position and every other property apply identically everywhere, there is no per-product override.

General properties

Property Default Description
Label Required, translatable per locale
Placeholder Optional, translatable per locale. Only shown for single-line text, multi-line text and number
Field type Single-line text One of the eight types below
Required Off Without input, the product cannot be added to the cart
Position 0 Order in the form, ascending

Label and placeholder are limited to 255 characters in the database. Longer values are not caught by the form but cause a database error.

Field types and their limits

Field type in the admin Value Limits
Single-line text text Minimum length, Maximum length
Multi-line text textarea Minimum length, Maximum length
Number number Minimum value, Maximum value (whole numbers each), Step (e.g. 0.5)
Checkbox boolean If required, the box must be ticked
Date date Minimum date, Maximum date, disabled days
Time time Minimum time, Maximum time
Date and time datetime Minimum and maximum date (inclusive through 23:59), disabled days
Select select Select options made of value and label

These limits apply in the storefront form as well as through the Shop API. If no maximum length is set for text and multi-line text, both paths cap input at 5000 characters. Dates and times are checked strictly, values like 2026-02-30 or 25:00 are invalid.

In the storefront select field, options with an empty value are skipped and duplicate values are merged (the last option wins). If the field is not required, an empty choice is added.

All values are stored as text: checkbox as 1 or 0, date as YYYY-MM-DD, time as HH:MM, date and time as YYYY-MM-DD HH:MM.

Attaching fields to a product

Attaching happens on the product, not on the field: in the admin product form (create and edit, "General" tab), pick one or more already defined fields in the "Custom input fields" field. Removing a field from the selection only detaches it, the field and values already collected stay in place.

Practical examples

Individual URL on a plugin product

Property Value
Label Shop URL
Placeholder https://your-shop.com
Field type Single-line text
Required On
Maximum length 255

Name to embroider on a quilt

Property Value
Label Name for the embroidery
Placeholder e.g. Anna
Field type Single-line text
Required On
Minimum length / Maximum length 2 / 30
Position 10

Preferred delivery date

Property Value
Label Preferred date
Field type Date
Required Off
Minimum date 2026-12-01
Disabled days 2026-12-24, 2026-12-25

Color choice

Property Value
Label Thread color
Field type Select
Select options red = Red, blue = Blue, green = Green
Required On