Ficha del producto

Todos los datos de un producto, por id o por slug, con sus categorías, variantes, descripción, especificaciones y medidas.

3 min de lecturaActualizado el 30 de setiembre de 2026

Ver un producto

GET /api/v1/ecommerce/shop/products/{id}

No pide token.

Parámetro Dónde Qué es
id Ruta El id del producto o su slug. Si es un número se busca por id; si no, por slug. Máximo 255 caracteres
curl https://<dominio-de-la-empresa>/api/v1/ecommerce/shop/products/p-001-polo-algodon-premium \
  -H "Accept: application/json"

Devuelve el producto si está marcado para la tienda virtual y no es un servicio. A diferencia del listado, no mira el almacén ni el ajuste «mostrar solo productos con stock»: un producto sin stock, o que no está en el almacén de la tienda, se sigue viendo aquí. Revisa stock antes de dejar comprarlo.

Respuesta

{
  "data": {
    "id": 45,
    "description": "Polo algodón premium",
    "slug": "p-001-polo-algodon-premium",
    "categories": [
      { "id": 22, "name": "Ropa", "slug": "ropa", "products_count": null }
    ],
    "brand": { "id": 1, "marca": "Textiles Andinos" },
    "internal_id": "P-001",
    "barcode": "7750000000011",
    "has_igv": true,
    "price": 49.9,
    "in_offer": true,
    "offer_price": 39.9,
    "prices": [],
    "stock": 60,
    "has_variants": true,
    "files": [
      {
        "id": 1828,
        "description": null,
        "is_cover": true,
        "path": "https://miempresa.ejemplo.com/attach-files/1828/preview",
        "preview": "https://miempresa.ejemplo.com/attach-files/1828/preview/small"
      }
    ],
    "variants": [
      {
        "id": 9,
        "sku": "P-001-S-NEG",
        "price": 49.9,
        "in_offer": true,
        "offer_price": 39.9,
        "stock": 20,
        "prices": [],
        "values": [
          { "id": 17, "attribute": "Talla", "value": "S", "color": null, "is_main": true },
          { "id": 18, "attribute": "Color", "value": "Negro", "color": "#111111", "is_main": false }
        ],
        "files": []
      }
    ],
    "currency": { "id": "PEN", "description": "Soles", "symbol": "S/" },
    "unit_type": { "id": "NIU", "description": "Unidades" },
    "additional": { "value": "<p>Algodón peruano 100 %.</p>" },
    "specifications": [
      { "specification": "Material", "value": "Algodón" }
    ],
    "custom_measurement": null,
    "min_order": 0,
    "weight": 0.3
  },
  "success": true,
  "message": "Información procesada de forma correcta."
}

Tiene los mismos campos que cada producto del listado, con el mismo significado (precio, precios por cantidad, variantes, stock e imágenes), y además:

Campo Qué es
categories Las categorías de la tienda a las que se asoció el producto. products_count llega siempre null aquí. No incluye la categoría principal de la ficha del ERP si no se asoció también desde las categorías de la tienda
has_igv true si price ya incluye el IGV; false si el IGV se suma encima al comprar
additional Descripción larga del producto, en HTML, en additional.value. null si no tiene
specifications Lista de especificaciones: specification (nombre, por ejemplo «Material») y value. Lista vacía si no tiene
custom_measurement Guía de medidas del producto, en HTML, o null
weight Peso del producto en kg, o null. Es el que se usa para calcular el envío

additional.value y custom_measurement son HTML escrito por la empresa en el ERP. Si los muestras como HTML, límpialos antes.

Si algo sale mal

HTTP code Cuándo Qué hacer
404 STORE_NOT_FOUND La tienda no está publicada La empresa debe publicarla desde el ERP
503 STORE_PAUSED La tienda está pausada Reintenta más tarde (Retry-After)
404 PRODUCT_NOT_FOUND No hay ningún producto de la tienda con ese id o slug, o no está marcado para la tienda virtual, o es un servicio Revisa el id o el slug
503 STORE_NOT_CONFIGURED El ERP no tiene ningún almacén Avisa a la empresa
429 RATE_LIMITED Se superó el límite Espera lo que indica Retry-After
500 INTERNAL_ERROR Fallo del servidor Reporta la reference