Saltar al contenido principal

Integración con la API

La integración con la API solo está disponible con el Plan Platinum

La aplicación Product Expiration Dates proporciona una API que permite administrar lotes de inventario mediante programación.

Las solicitudes a la API se autentican con la clave de API de tu tienda. Puedes encontrar tu clave de API en la pestaña General de la página de configuración. Incluye tu clave de API en el encabezado X-API-Key en cada solicitud.

Las solicitudes requieren que especifiques un identificador de producto o variante. Puede ser: sku, barcode, variant_id o el ID de la aplicación Product Expiration Dates.

URL base​

Todos los endpoints de la API son relativos a: https://apps.screenstaring.com/ed

GET /api/inventories/expiration_dates​

Recupera los lotes de inventario de un producto o una variante. Puedes consultar por SKU, código de barras o ID de variante de Shopify

Parámetros de consulta:

  • sku - El SKU de la variante (opcional)
  • barcode - El código de barras de la variante (opcional)
  • variant_id - ID de variante de Shopify; si un producto no tiene variantes, usa el ID de la variante predeterminada (opcional)
  • external_location_id - Filtra los resultados por el ID de ubicación de Shopify (opcional)

Ejemplo con curl:

curl -H "X-API-Key: YOUR_API_KEY" https://apps.screenstaring.com/ed/api/inventories/expiration_dates?sku=PRODUCT-SKU

Respuesta (200 OK):

[
{
"id": 1,
"expires": "2026-12-31",
"quantity": 10,
"batch_number": "BATCH-001",
"location": {
"id": 10,
"external_id": "123456",
"name": "Main Warehouse"
},
"inventory": {
"id": 789,
"sku": "PRODUCT-SKU",
"variant_id": "456789",
"product_id": "123456"
}
},
{
"id": 2,
"expires": "2027-01-15",
"quantity": 20,
"batch_number": "BATCH-002",
"location": {
"id": 10,
"external_id": "123456",
"name": "Main Warehouse"
},
"inventory": {
"id": 789,
"sku": "PRODUCT-SKU",
"variant_id": "456789",
"product_id": "123456"
}
}
]

POST /api/inventories/expiration_dates​

Crea o actualiza un lote de inventario. Las actualizaciones se basan en el SKU o el código de barras combinado con: a) la fecha de vencimiento y la ubicación o b) el número de lote y la ubicación. De lo contrario, se crea un nuevo lote.

Parámetros de la solicitud:

  • sku - El SKU de la variante (opcional)
  • barcode - El código de barras de la variante (opcional)
  • variant_id - ID de variante de Shopify; si un producto no tiene variantes, usa el ID de la variante predeterminada (opcional)
  • expires - Fecha de vencimiento, debe estar en formato YYYY-MM-DD (obligatorio)
  • quantity - Cantidad disponible (obligatorio)
  • batch_number - Número de lote (opcional)
  • external_location_id - El ID de ubicación de Shopify (obligatorio si no se proporciona location_id)
  • location_id - ID de la aplicación Product Expiration Dates (obligatorio si no se proporciona external_location_id)
  • inventory_batch_assignment_event - Cuándo asignar los lotes de inventario a los pedidos. Solo es válido al crear un producto. Puede ser "order_placed" o "order_item_fulfilled". Si usas Inventory Push, siempre será "order_placed".
  • invoice_number - Número de factura (opcional)
  • lot_number - Número de lote (opcional)
  • manufactured_at - Fecha de fabricación, debe estar en formato YYYY-MM-DD (opcional)
  • received_at - Fecha de recepción, debe estar en formato YYYY-MM-DD (opcional)
  • comments - Notas de texto libre (opcional)
  • batch_unit_cost - Costo unitario del lote (opcional)

Ejemplo con curl:

curl -X POST -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" -d '{
"sku": "PRODUCT-SKU",
"expires": "2026-12-31",
"quantity": 10,
"batch_number": "BATCH-001",
"id": "9876",
"external_location_id": "123456"
}' "https://apps.screenstaring.com/ed/api/inventories/expiration_dates"

Respuesta (200 OK):

{
"id": 1,
"expires": "2026-12-31",
"quantity": 10,
"batch_number": "BATCH-001",
"location": {
"id": "9876",
"external_id": "123456",
"name": "Main Warehouse"
},
"inventory": {
"id": 789,
"sku": "PRODUCT-SKU",
"variant_id": "456789",
"product_id": "123456"
}
}

PATCH /api/inventories/expiration_dates/:id​

Actualiza un lote de inventario existente

Parámetros de la URL:

  • :id - El ID de la aplicación Product Expiration Dates para el lote de inventario (obligatorio)

Parámetros de la solicitud:

  • expires - Fecha de vencimiento, debe estar en formato YYYY-MM-DD (opcional)
  • quantity - Cantidad disponible (opcional)
  • external_location_id - El ID de ubicación de Shopify (opcional)
  • location_id - ID de ubicación de la aplicación Product Expiration Dates (opcional)
  • batch_number - Número de lote (opcional)
  • invoice_number - Número de factura (opcional)
  • lot_number - Número de lote (opcional)
  • manufactured_at - Fecha de fabricación, debe estar en formato YYYY-MM-DD (opcional)
  • received_at - Fecha de recepción, debe estar en formato YYYY-MM-DD (opcional)
  • comments - Notas de texto libre (opcional)
  • batch_unit_cost - Costo unitario del lote (opcional)

Ejemplo con curl:

curl -X PATCH -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" -d '{
"expires": "2027-01-15",
"quantity": 20,
"batch_number": "BATCH-002"
}' "https://apps.screenstaring.com/ed/api/inventories/expiration_dates/1"

Respuesta (200 OK):

{
"id": 1,
"expires": "2027-01-15",
"quantity": 20,
"batch_number": "BATCH-002",
"location": {
"id": 10,
"external_id": "123456",
"name": "Main Warehouse"
},
"inventory": {
"id": 789,
"sku": "PRODUCT-SKU",
"variant_id": "456789",
"product_id": "123456"
}
}

DELETE /api/inventories/expiration_dates/:id​

Elimina un lote de inventario por su ID.

Parámetros de la URL:

  • :id - El ID de la aplicación Product Expiration Dates para el lote de inventario

Ejemplo con curl:

curl -X DELETE -H "X-API-Key: YOUR_API_KEY" https://apps.screenstaring.com/ed/api/inventories/expiration_dates/1

Respuesta (200 OK):

{
"id": 1,
"expires": "2026-12-31",
"quantity": 10,
"batch_number": "BATCH-001",
"location": {
"id": 10,
"external_id": "123456",
"name": "Main Warehouse"
},
"inventory": {
"id": 789,
"sku": "PRODUCT-SKU",
"variant_id": "456789",
"product_id": "123456"
}
}

Respuestas de error​

La API devuelve los códigos de estado HTTP y los mensajes de error correspondientes:

Código de estadoDescripciónRespuesta de ejemplo
400Bad Request - Faltan parámetros o no son válidos{"errors": ["param is missing or the value is empty: id"]}
401Unauthorized - Clave de API no válida o faltante{"errors": ["Shop not found"]}
403Forbidden - El plan no permite el acceso a la API{"errors": ["API access not available for your subscription"]}
404Not Found - Producto, variante o ubicación no encontrados{"errors": ["Record not found"]}
422Unprocessable Entity - Errores de validación{"errors": ["Quantity must be greater than 0"]}