Precios de producto
POST
Actualizar precio de producto
POST /api/product-prices/update-product-price
Descripción
Modifica un precio existente, sus opciones y los menús donde se ofrece.
Detalles
Actualiza los datos de un precio: nombre, modo de precio, valor o porcentaje según corresponda, opciones y menús asociados. Las opciones nuevas se agregan, las modificadas se actualizan y las retiradas se desactivan. La asociación a menús también se ajusta en base al listado enviado. Falla si el precio no existe, el modo de precio no coincide con los campos, o si una lista de precios queda sin opciones.
Permisos requeridos
catalog.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| productPriceId | int | Sí |
min_value:1
|
| name | string | Sí |
min:1
max:150
|
| priceType | string | Sí |
enum:inherit,fixed,percentage,free,price_list,open_price
|
| priceValueCents | int | No |
min_value:0
|
| priceBasisPoints | int | No |
min_value:-10000
max_value:10000
|
| isSelfOrderPrice | bool | No | — |
| options | array | No | — |
| options[].id | int | No |
min_value:1
|
| options[].description | string | Sí |
min:1
max:150
|
| options[].priceCents | int | Sí |
min_value:0
|
| menuIds | string | No |
array_int
|
Ejemplo de request
curl -X POST https://restofy.pro/api/product-prices/update-product-price \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-H "X-Tenant-Key: <tenantKey>" \
-d '{
"productPriceId": 1,
"name": "string",
"priceType": "string"
}'
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-09-08T16:35:34Z
HTTP 200
Request
{
"productPriceId": 52,
"name": "Actualizado 6aa03918aeab5",
"priceType": "fixed",
"priceValueCents": 3000,
"menuIds": []
}
Response
{
"success": true,
"message": "Precio actualizado",
"data": {
"productPriceId": 52,
"associatedMenuIds": []
}
}