> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payreque.st/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Fields

> Collect additional customer information

# Custom Fields

Custom fields let you collect extra information from customers at checkout — sizes, colors, reference numbers, add-ons, or anything else your product needs. Some field types can also add to the price automatically.

<Info>
  Custom fields are configured per product, in the **Custom Fields** step of the product wizard (or the **Custom Fields** tab when editing a product).
</Info>

## Field Types

<CardGroup cols={2}>
  <Card title="Text" icon="text">
    A single-line text input. Good for names, references, or short notes.
  </Card>

  <Card title="Email" icon="envelope">
    A single-line input validated as an email address.
  </Card>

  <Card title="URL" icon="link">
    A single-line input validated as a URL.
  </Card>

  <Card title="Number" icon="hashtag">
    A numeric input. Supports **per-unit pricing** — see below.
  </Card>

  <Card title="Textarea" icon="align-left">
    A multi-line text input for longer notes or instructions.
  </Card>

  <Card title="Dropdown (Select)" icon="chevron-down">
    A list of options you define. Each option can have its own price markup.
  </Card>

  <Card title="Toggle" icon="toggle-right">
    An on/off switch — useful for optional add-ons. Can add a fixed markup when enabled.
  </Card>
</CardGroup>

## Adding a Custom Field

<Steps>
  <Step title="Open the Custom Fields step">
    In the product wizard (or the product editor's **Custom Fields** tab), click **Add Field**.
  </Step>

  <Step title="Set the internal name and label">
    * **Field Name** — internal identifier (letters, numbers, underscores, hyphens only — no spaces)
    * **Display Label** — what the customer sees on the payment page
  </Step>

  <Step title="Choose a field type">
    Pick one of the seven types above. The configuration options below change depending on the type you pick.
  </Step>

  <Step title="Configure visibility and requirement">
    * **Show in Shop** — toggle whether the field is visible to customers
    * **Required Field** — toggle whether customers must fill it in before paying
  </Step>

  <Step title="Save the product">
    Fields are saved in the order you add them. Use the up/down arrows next to each field to reorder them.
  </Step>
</Steps>

## Pricing: Number Fields (Per-Unit Markup)

Number fields can add a price per unit entered — ideal for rental days, seats, or quantities of an add-on.

| Setting | Description |
| - | - |
| **Price per Unit** | Amount added to the total for each unit the customer enters |
| **Min** | Minimum value the customer can enter |
| **Max** | Maximum value the customer can enter |

**Example:** A number field called "Rental Days" with a **Price per Unit** of €16 — a customer entering `5` adds €80.00 to the total (5 × €16.00).

<Tip>
  You can pre-fill and lock a number field's value using a [dynamic payment link](/payment-processing/payment-page-dynamic-links) with `customfield_fieldname=5&disabled=true`.
</Tip>

## Pricing: Dropdown Options

For **Dropdown (Select)** fields, add one or more options, each with:

| Setting | Description |
| - | - |
| **Label** | What the customer sees in the dropdown |
| **Value** | The internal value stored with the order |
| **Markup** | Price added to the total when this option is selected |

**Example:** A "Size" dropdown with options Small (€0 markup), Medium (€5 markup), Large (€10 markup).

## Pricing: Toggle Fields

Toggle fields can add a fixed price when switched on:

| Setting | Description |
| - | - |
| **Price when enabled** | Amount added to the total when the customer turns the toggle on |
| **Default on** | Whether the toggle starts enabled by default |

## Where Custom Fields Appear

Custom fields are shown in the **Additional Information** section on the payment page, alongside the product. Their values are stored with the order and visible on the order detail page in your dashboard.

<Info>
  Custom field values can also be pre-filled and locked via URL parameters on a [dynamic payment link](/payment-processing/payment-page-dynamic-links) using the `customfield_*` prefix.
</Info>

## FAQ

<AccordionGroup>
  <Accordion title="Can I reorder custom fields?">
    Yes. Use the up/down arrow buttons next to each field in the product editor to change the order they appear on the payment page.
  </Accordion>

  <Accordion title="Can I make a field required?">
    Yes. Toggle **Required Field** when configuring the field. Customers can't complete payment without filling it in.
  </Accordion>

  <Accordion title="Do custom field markups apply to setup fees too?">
    No, markups from custom fields apply to the product price. Setup fees are configured separately — see [Setup Fees](/products-and-pricing/setup-fees).
  </Accordion>

  <Accordion title="Can I hide a field from the shop but still use it?">
    Turn off **Show in Shop** to hide a field from customers while keeping it configured — useful if you want to enable it later or use it only via a dynamic link with a pre-filled value.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Creating Products" icon="plus" href="/products-and-pricing/creating-products">
    Learn about all product types and settings
  </Card>

  <Card title="Payment Page Dynamic Links" icon="link" href="/payment-processing/payment-page-dynamic-links">
    Pre-fill and lock custom field values via URL
  </Card>

  <Card title="Quantity-Based Pricing" icon="layer-group" href="/products-and-pricing/quantity-based-pricing">
    Let customers buy multiple units of a product
  </Card>

  <Card title="Setup Fees" icon="money-bill" href="/products-and-pricing/setup-fees">
    Configure one-time setup charges
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.