# Service Requirements

https://docs.wisecp.com/de/service-requirements

Read every answer and file the client submitted for a service in one place, correct a wrong value without asking for it again, and add a missing answer yourself so provisioning is not held up by incomplete information.

## Opening the Screen

Open a service from **Orders › Services**, then pick the **Requirements** tab: `{admin}/services/detail?id={service}&content=requirements`.

The tab belongs to every service detail page, for products and domains alike, and stays reachable after a service is cancelled: the answers are part of the service record, not of its current state.

Without the service operation privilege the tab is read only. **Add New** is not rendered and the edit and delete buttons leave the rows; copy and download stay.

## What Is on the Screen

A header strip carries the heading **Service Requirements**, the line *Client-provided content for the service* and, on the right, the **Add New** button. Below it each stored answer is one row: requirement name on the left, answer on the right.

### Requirement Rows

Rows reach this list from three directions and are not told apart visually: most are collected from the client at order time from the product's requirement list, some arrive later when an add-on carrying its own requirements is added to the service, and the rest were typed here by staff. However a row got here it is stored against this service, so removing a requirement definition from a product later does not remove answers already given.

The value sits in a shaded box across the row. A tall value scrolls inside that box instead of stretching the page, and a web address inside the text becomes a link that opens in a new tab. A service with no answers shows *No requirements found for this service.* instead of rows, and that message returns on its own once the last row is deleted.

### How Each Response Type Appears

The requirement definition decides what shape an answer takes, and that shape survives into this tab.

| Response Type | How the Row Shows It | Editing in Place |
| --- | --- | --- |
| Single line text | The stored value as plain text, including an answer collected in a masked password box. | Yes, in a single line box. |
| Multiline text | Line breaks are kept as the client typed them. | Yes. The editor is a multiline box whenever the stored answer already contains a line break, and a single line box when it does not, whatever the definition says. |
| Dropdown | The name of the chosen option, resolved from the definition. | Yes, as a dropdown. |
| Radio button | The name of the chosen option. | Yes, as a single choice list. |
| Checkbox | The names of every chosen option, separated by commas. | Yes, as tick boxes. |
| File upload | One card per uploaded file. | No. A file answer can only be deleted and supplied again. |

### File Answers

A file requirement lists one card per attachment: the file name, badges for format and size and, for images, a preview with a pixel-dimension badge. A long list scrolls inside the row.

The **Download** button does not point at the uploads folder: the panel serves the file after checking your privileges, and anything a browser could execute is forced to download rather than opened.

### Row Buttons

A text row ends with up to three small buttons, each with a tooltip: a pencil for **Edit**, overlapping squares for **Copy** and a bin for **Delete**. A file row has only **Delete**, under the cards, because a file cannot be rewritten in place. Edit and Delete need the service operation privilege; Copy does not.

### The Add New Requirement Window

**Add New** opens a window titled **Add New Requirement** with a single decision at the top. **Select Requirement** lists every active catalogue requirement grouped under its category, puts anything uncategorised under **Uncategorized**, and prints each name followed by its field type in brackets. That type is printed as the stored keyword rather than a translated label, so expect wording such as *text*, *select* or *file*. The last entry, **Custom (Manual)**, is not a defined requirement and opens a free form section instead.

A defined requirement reveals a **Response** row built from that requirement's own type. **Custom (Manual)** reveals **Label**, **Type** and **Content**. **Save** stays disabled until something is chosen, and closing the window clears everything typed.

## Fields

- **Select Requirement**: Required. Its placeholder reads *Select a requirement...* and Save stays disabled until an entry is picked. Holds every active catalogue requirement plus Custom (Manual).
- **Response**: Required. Holds the answer for a defined requirement and takes its shape from it: a single line box, a multiline box, a dropdown, a choice list or tick boxes.
- **Response**: Required, and replaces the control above when the chosen requirement is a file type. Several files can be picked at once, with no limit on how many; each one has to stay under the maximum product field file size set in the general settings.
- **Label**: Required for a custom entry. It becomes the heading on the left of the finished row, so write what the value is, not where it came from.
- **Type**: Defaults to *Text*. The only other value, *File Upload*, swaps Content for a file picker. A custom entry cannot be a dropdown or a choice list; those exist only in the catalogue.
- **Content**: Required while Type is Text. A multiline box whose line breaks are kept exactly as typed.
- **Content**: Required while Type is File Upload, and accepts several files at once. The files are stored under this service and go when the row is deleted.

## Tasks

### Adding an answer for a catalogue requirement

1. Open the **Requirements** tab and press **Add New** at the right of the header strip. The **Add New Requirement** window opens.
2. In **Select Requirement**, pick the entry you need. Entries are grouped by category and each names its field type in brackets.
3. Fill the **Response** control underneath. Its shape follows the requirement: a box, a dropdown, a set of choices or a file picker.
4. Press **Save** at the bottom of the window. The page reloads and the new row is at the end of the list.

### Adding a custom requirement by hand

1. Press **Add New**, then choose the last entry of **Select Requirement**, **Custom (Manual)**.
2. Type the row heading into **Label** and choose **Text** or **File Upload** in **Type**.
3. Fill **Content**: a multiline box for text, a file picker for uploads.
4. Press **Save** at the bottom of the window. The page reloads and the row appears under your label.

### Correcting a value in place

1. Press the pencil button (**Edit**) at the right of the row. The value turns into an editable control of the matching kind.
2. Change the value. Pressing Escape abandons the change and restores what was there.
3. Press the same button again, now a green check mark, to save. A short confirmation appears and the row shows the new value.

### Copying a value

1. Press the copy button (**Copy**) at the right of the row. It works without the service operation privilege.
2. The button turns into a check mark for a moment and its tooltip reads *Copied*. The whole value is on the clipboard, line breaks included.

### Downloading a submitted file

1. Find the file requirement. Each attachment is its own card with the file name, format and size.
2. Press **Download** on the card. The panel checks your privileges and then serves the file, so the address is useless outside a signed-in session.

### Deleting a requirement

1. Press the bin button (**Delete**) on the row; for a file requirement it sits under the cards. The **Confirm Deletion** window opens naming the requirement.
2. Press **Yes, go ahead**. The row fades out without a page reload, and for a file requirement the uploaded files are erased from the server in the same step.
3. If that was the last row, the empty message takes its place.

## Things to Watch

> **Deleting a file requirement destroys the files**
> 
> The row and the uploaded files are removed together and nothing is kept in a bin. If the file is the only copy of what the client sent, download it first.

> **A change here rewrites the record, nothing else**
> 
> Editing, adding or deleting an answer touches only the stored value. No message goes to the client, nothing is sent to the module or the server, and a setup that already ran is not repeated.

> **A choice answer depends on the option that was chosen**
> 
> Dropdown, radio and checkbox answers keep only a reference to the option in the requirement definition, and the readable name is looked up there every time the row is drawn. Renaming the option is therefore harmless: the row starts showing the new name by itself. Removing it is not, because nothing is left to match and the row falls back to the stored raw value instead of a readable name.

## Required Privileges

Reading the tab and downloading an attachment need `SERVICES_LOOK`. Adding, editing in place and deleting all need `SERVICES_OPERATION`; without it the tab still opens with only the copy and download buttons.

## Related Articles

- [Service Detail Overview](https://docs.wisecp.com/en/service-detail-overview)
- [Addons of a Service](https://docs.wisecp.com/en/addons-of-a-service)
- [Product Requirements](https://docs.wisecp.com/en/product-requirement-rules)
- [Product Requirement Configuration](https://docs.wisecp.com/en/product-requirement-configuration)
