Saltar al contenido
SendIt está en desarrollo y todavía no opera comercialmente · SendIt is in development and not yet commercially available.
SendItdocs
Español
Esc
navigateopen⌘Jpreview
En esta página

Catálogo de productos

Un catálogo opcional de productos que se vincula automáticamente a los artículos de tus órdenes.

El catálogo de productos es opcional. Los artículos de una orden funcionan inline sin configurar nada. Si vendes los mismos productos una y otra vez, el catálogo te ahorra repetir nombre, precio, peso y datos aduanales: se copian solos a cada orden.

Endpoints

Método Ruta Alcance Descripción
POST /v1/products products:write Crear un producto
GET /v1/products products:read Listar productos activos (?sku= exacto, ?search= contiene, ?page=, ?limit=)
GET /v1/products/all products:read (ADMIN) Listar todos, incluidos inactivos
GET /v1/products/:id products:read Obtener un producto
PUT /v1/products/:id products:write Actualizar un producto
DELETE /v1/products/:id products:write (ADMIN) Eliminar (borrado suave)

Crea un producto

Parámetros del cuerpo

PropType
namestring

Nombre del producto.

Typestring
sku?string

Único entre tus productos no eliminados. Habilita el auto-vínculo por SKU.

Typestring
description?string

Descripción del producto.

Typestring
price?number

Precio por unidad; se copia al artículo de la orden al vincular.

Typenumber
currency?string
Typestring
DefaultMXN
weight?number

Peso en kg. Es el valor por defecto para empacar y cotizar.

Typenumber
length?number

Largo en cm.

Typenumber
width?number

Ancho en cm.

Typenumber
height?number

Alto en cm.

Typenumber
hsCode?string

Fracción arancelaria (envíos internacionales).

Typestring
satProductClassCode?string

Clave de clasificación del producto ante el SAT.

Typestring
countryOfOrigin?string

País de origen (ISO).

Typestring
customsDescription?string

Descripción para aduana.

Typestring
declaredValue?number

Valor declarado por unidad (seguro y aduanas).

Typenumber
declaredValueCurrency?string
Typestring
DefaultMXN
shipsSeparately?boolean

El producto siempre viaja en su propio paquete.

Typeboolean
Defaultfalse
imageUrl?string

URL de la imagen del producto.

Typestring
isActive?boolean

Los inactivos no se listan por defecto y nunca se auto-vinculan.

Typeboolean
Defaulttrue
metadata?objeto

Pares llave-valor tuyos; se devuelven tal cual.

Typeobjeto
curl -X POST https://api.sendit.mx/v1/products \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sku": "TSHIRT-L-ROJO",
    "name": "Playera roja talla L",
    "description": "Playera 100% algodón, cuello redondo",
    "price": 450.00,
    "weight": 0.25,
    "length": 30, "width": 25, "height": 3,
    "hsCode": "610910",
    "satProductClassCode": "53102002",
    "countryOfOrigin": "MX",
    "declaredValue": 450.00
  }'
{
  "success": true,
  "data": {
    "id": "prod_x1y2z3",
    "sku": "TSHIRT-L-ROJO",
    "name": "Playera roja talla L",
    "description": "Playera 100% algodón, cuello redondo",
    "price": 450.00,
    "currency": "MXN",
    "weight": 0.25,
    "length": 30,
    "width": 25,
    "height": 3,
    "hsCode": "610910",
    "satProductClassCode": "53102002",
    "countryOfOrigin": "MX",
    "declaredValue": 450.00,
    "declaredValueCurrency": "MXN",
    "shipsSeparately": false,
    "isActive": true,
    "createdAt": "2026-07-18T10:00:00.000Z"
  }
}

Cómo se vincula con las órdenes

Al crear una orden, cada artículo puede referenciar el catálogo:

  1. Por productId. Es el vínculo explícito. Los datos del producto se congelan en el artículo.
  2. Por sku. Si el SKU coincide con un producto activo, se vincula solo.
  3. Sin vínculo. El artículo vive inline con sus propios datos.

En todos los casos, lo que queda en la orden es un snapshot: editar o borrar el producto después no toca ninguna orden existente.

Lo que se congela en el artículo es: name, price (como unitPrice), sku, weight, hsCode, satProductClassCode, countryOfOrigin, customsDescription y declaredValue.

Reglas del SKU

El sku es único entre tus productos no eliminados. Un producto inactivo sigue ocupando su SKU.

Código Cuándo Cómo resolverlo
400 SKU_ALREADY_EXISTS Creas o actualizas un producto con un SKU que ya usa otro El productId en conflicto viene en details; usa otro SKU o edita ese producto

Al eliminar un producto (borrado suave), su SKU queda libre para reutilizarse.

El catálogo no separa modos

Los productos no están divididos entre producción y prueba. Tus órdenes LIVE y TEST apuntan al mismo catálogo, y una llave sk_test_ ve exactamente los mismos productos.

¿Te ha resultado útil esta página?