Products

Products

POST /products

Creates a new product within the context of a given establishment. Products include detailed information such as name, price, category, verification metadata, and display configuration.

Endpoint

POST/products

Request Body

{
  "establishmentId": "string" // required
  "stock": "integer" // required
  "price": "number" // required
  "internalPrice": "number"
  "valueInEuros": "number" // required
  "height": "integer"
  "weight": "integer"
  "name": "string" // required
  "status": "string"
  "description": "string" // required
  "extendedDescription": "string" // required
  "additionalDetails": "string" // required
  "verificationDate": "string" // required
  "verifiedBy": "string"
  "providerId": "string"
  "provider": "string"
  "category": "string"
  "type": "string"
  "certificate": "boolean"
  "isAdmin": "boolean"
  "helpLink": "string"
  "prizeCategory": "string" // required
  "imageUrl": "string"
  "featuredImageUrl": "string"
  "featured": "boolean"
  "digital": "boolean"
  "medias": "array"
  "year": "integer" // required
}
AtributoTipoRequeridoDescripción
establishmentIdstring
stockinteger
pricenumber
internalPricenumberNo
valueInEurosnumber
heightintegerNo
weightintegerNo
namestring
statusstring (available, unavailable, booked, hidden, sold)No
descriptionstring
extendedDescriptionstring
additionalDetailsstring
verificationDatestring
verifiedBystringNo
providerIdstringNo
providerstringNo
categorystringNo
typestringNo
certificatebooleanNo
isAdminbooleanNo
helpLinkstringNo
prizeCategorystring (legendary, epic, rare, uncommon, common, virtual)
imageUrlstringNo
featuredImageUrlstringNo
featuredbooleanNo
digitalbooleanNo
mediasarrayNo
yearinteger

Responses

200

Product created successfully.

400

Invalid or incomplete product definition.

500

Failed to create product.

POST /products/search

Searches products for the authenticated establishment with pagination, sorting, optional text query, and filter metadata. This endpoint is handled by /code/productListFilter.js.

Endpoint

POST/products/search

Request Body

{
  "query": "string"
  "pagination": "object"
  "sort": "object"
  "filters": "object"
}
AtributoTipoRequeridoDescripción
querystringNo
paginationobjectNo
sortobjectNo
filtersobjectNo

Responses

200

Products search result.

{
  "items": "array"
  "pagination": "object"
  "metadata": "object"
}

422

Invalid search payload.

500

Failed to list products.

GET /products/[productId]

Retrieves the details of a specific product by its ID. Returns complete metadata, including category, availability, and configuration.

Endpoint

GET/products/{productId}

Parameters

AtributoDescripcionTipoUbicaciónRequerido
productIdstringpath

Responses

200

Product retrieved successfully.

{
  "catalogs": "object"
  "internalPrice": "number"
  "status": "string"
  "reserved": "integer"
  "stock": "integer"
  "establishmentId": "string"
  "weight": "integer"
  "probability": "number"
  "valueInEuros": "number"
  "provider": "string"
  "verificationDate": "string"
  "featured": "boolean"
  "productId": "string"
  "visible": "boolean"
  "certificate": "boolean"
  "order": "number"
  "isAdmin": "boolean"
  "digital": "boolean"
  "helpLink": "string"
  "providerId": "string"
  "medias": "array"
  "height": "integer"
  "year": "integer"
  "verifiedBy": "string"
  "category": "string"
  "prizeCategory": "string"
  "price": "number"
  "type": "string"
  "translations": "object"
}

400

Invalid product ID.

404

Product not found.

500

Error retrieving product details.

PUT /products/[productId]

Updates a product by ID. Fields such as price, stock, translations, and metadata can be modified. Only valid product data should be submitted to avoid data integrity issues.

Endpoint

PUT/products/{productId}

Request Body

{
  "stock": "integer"
  "price": "integer"
  "internalPrice": "integer"
  "valueInEuros": "number"
  "height": "integer"
  "weight": "integer"
  "status": "string"
  "verificationDate": "string"
  "verifiedBy": "string"
  "providerId": "string"
  "provider": "string"
  "category": "string"
  "type": "string"
  "certificate": "boolean"
  "isAdmin": "boolean"
  "helpLink": "string"
  "prizeCategory": "string"
  "imageUrl": "string"
  "featuredImageUrl": "string"
  "featured": "boolean"
  "digital": "boolean"
  "medias": "array"
  "year": "integer"
  "translations": "object"
}
AtributoTipoRequeridoDescripción
stockintegerNo
priceintegerNo
internalPriceintegerNo
valueInEurosnumberNo
heightintegerNo
weightintegerNo
statusstring (available, unavailable, booked, hidden, sold)No
verificationDatestringNo
verifiedBystringNo
providerIdstringNo
providerstringNo
categorystringNo
typestringNo
certificatebooleanNo
isAdminbooleanNo
helpLinkstringNo
prizeCategorystring (legendary, epic, rare, uncommon, common, virtual)No
imageUrlstringNo
featuredImageUrlstringNo
featuredbooleanNo
digitalbooleanNo
mediasarrayNo
yearintegerNo
translationsobjectNoPer-locale translations; keys are language codes (e.g., 'en', 'es').

Parameters

AtributoDescripcionTipoUbicaciónRequerido
productIdstringpath

Responses

200

Product updated successfully.

404

Product not found.

500

Failed to update product.

DELETE /products/[productId]

Deletes a product by its ID. This operation is irreversible and will remove the product from all associated catalogs and listings.

Endpoint

DELETE/products/{productId}

Parameters

AtributoDescripcionTipoUbicaciónRequerido
productIdstringpath

Responses

200

Product deleted successfully.

400

Invalid product ID.

404

Product not found.

500

Server error during deletion.

POST /exclusive

Requests an exclusive product lock or reservation for a limited time period. This may be used to provide VIP-only availability or time-sensitive rewards.

Endpoint

POST/exclusive

Request Body

{
  "days": "number" // required
}
AtributoTipoRequeridoDescripción
daysnumber

Responses

200

Exclusive access granted or acknowledged.

400

Invalid exclusivity request.

500

Failed to process exclusivity request.