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

# Columnas personalizadas

> Añade columnas personalizadas editables a cualquier Grid: texto, número, moneda o fórmula.

Las columnas personalizadas te permiten ampliar un Grid con tus propios campos de datos. Puedes añadirlas manualmente, editar los valores de las celdas en línea y elegir cómo almacena y muestra sus datos cada columna.

> [!NOTE]
>
> Esta página cubre los detalles a nivel de API de las columnas personalizadas. Para el flujo **Add Column** dentro de la app, con capturas de pantalla y guías paso a paso, consulta [Añadir columnas](https://docs.retailgrid.io/es/grids/manage-columns.md).

## Añadir una columna personalizada

Haz clic en **Add Column** en la barra de herramientas del Grid para abrir el asistente de columnas. El asistente te guía por dos pasos:

1. **Selecciona un tipo de columna** - elige entre Text, Number, Currency o Formula.
2. **Configura la columna** - define un nombre y las opciones específicas del tipo, y luego haz clic en **Add Column**.

La nueva columna aparece de inmediato en el Grid.

## Tipos de columna

| Tipo | Valor de `column_type` | Descripción |
| - | - | - |
| Text | `custom_text` | Campo de texto simple. Los valores se almacenan como cadenas. |
| Number | `custom_number` | Campo numérico. Los valores se almacenan como números. |
| Currency | `custom_currency` | Campo numérico mostrado en la moneda de visualización de la cuenta (consulta [Moneda](https://docs.retailgrid.io/es/settings/currency.md)). |
| Formula | `custom_formula` | Se calcula dinámicamente a partir de otras columnas. |

### Columnas de fórmula

Las columnas de fórmula hacen referencia a los valores de otras columnas mediante expresiones y muestran el resultado según el **Display Format** (formato de visualización) que eliges durante la configuración:

| Formateador | Valor de `formatter` | Comportamiento |
| - | - | - |
| Text | `text` | El resultado se muestra como texto simple. |
| Number | `number` | El resultado se muestra como número. |
| Currency | `currency` | El resultado se muestra en la moneda de visualización de la cuenta. |

> [!NOTE]
>
> La agrupación y la agregación no están disponibles para columnas de fórmula.

## Editar valores de celda

Las columnas personalizadas se editan directamente en el Grid. Haz clic en una celda y escribe para actualizar su valor. Pulsa **Enter** para confirmar y pasar a la siguiente fila.

Retailgrid valida el valor contra el tipo de almacenamiento de la columna antes de guardarlo:

| Tipo de almacenamiento | Valores aceptados | Valores rechazados |
| - | - | - |
| `string` | Texto, `null` | - |
| `numeric` | Números, cadenas numéricas, `null` | Booleanos |
| `integer` | Enteros, cadenas de enteros, `null` | Booleanos, números con parte decimal |
| `boolean` | `true`/`false`, `"true"`/`"1"`/`"yes"`, `null` | - |

Si el valor no puede convertirse al tipo esperado, la API devuelve un error `422` y la celda vuelve a su valor anterior.

Vaciar una celda (dejarla en blanco) almacena `null` para todos los tipos de columna.

## Referencia de la API

> [!NOTE]
>
> El segmento de ruta de la API interna es actualmente `/workbooks/` por razones históricas. El concepto de cara al cliente es **Grid** en todo el producto y la documentación; el segmento de ruta se renombrará en una futura versión de la API. Ambos segmentos resuelven al mismo endpoint.

### Añadir una columna personalizada

```http theme={null}
POST /workbooks/{grid_id}/columns/add-custom
```

**Cuerpo de la solicitud**

```json theme={null}
{
  "name": "Margin",
  "column_type": "custom_formula",
  "formatter": "currency"
}
```

| Campo | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `name` | string | No | Etiqueta de la columna. Por defecto `"Custom"`. |
| `column_type` | string | No | Uno de `custom_text`, `custom_number`, `custom_currency`, `custom_formula`. Por defecto `custom_text`. |
| `formatter` | string | No | Formato de visualización para columnas `custom_formula`: `text`, `number` o `currency`. Por defecto `text`. |

**Respuesta**

```json theme={null}
{
  "column_id": 42,
  "column_key": "dyn:a1b2c3d4e5f6",
  "column_name": "Margin",
  "unique_id": "dyn:42",
  "type": "custom_formula",
  "formatter": "currency"
}
```

### Establecer el valor de una celda

```http theme={null}
PUT /workbooks/{grid_id}/data/cells
```

**Cuerpo de la solicitud**

```json theme={null}
{
  "row_id": 101,
  "column_id": 42,
  "value": 19.99
}
```

| Campo | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `row_id` | integer | Sí | Debe ser mayor que `0`. |
| `column_id` | integer | Sí | Debe ser mayor que `0`. |
| `value` | string \| number \| boolean \| null | Sí | El nuevo valor de la celda. Pasa `null` para vaciar la celda. |

**Errores**

| Estado | Causa |
| - | - |
| `404` | Columna no encontrada en este Grid. |
| `422` | El valor no puede convertirse al tipo de almacenamiento de la columna (por ejemplo, pasar un booleano a una columna numérica). |

## Relacionado

* [Añadir columnas](https://docs.retailgrid.io/es/grids/manage-columns.md)
* [Columnas de fórmula](https://docs.retailgrid.io/es/grids/formula-columns.md)
* [Moneda](https://docs.retailgrid.io/es/settings/currency.md)


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