Agregar/Actualizar orden
Implementa un endpoint HTTP que permita a Talk2sync crear o actualizar una orden de venta en un almacén de datos, base de datos o aplicación externa.
El endpoint recibe el objeto completo de la orden, ejecuta la operación correspondiente de INSERT/UPDATE y devuelve la orden resultante o una respuesta de error estructurada.
Solicitud
El endpoint debe aceptar una solicitud POST con el siguiente formato:
POST https://www.example.com/your/endpoint/url?jobid=123&id=75554554546
T2SKey: {{API KEY}}
El cuerpo de la solicitud contiene la orden de venta completa que se creará o actualizará:
{
"_id": "75554554546",
"orderid": "75554554546",
"last_updated": 1517360038797,
"status": "paid",
"dateCreated": "",
"dateClosed": "",
"total": {
"amount": 350,
"currency": "USD"
},
"orderItems": [
{
"id": "7778545",
"variation_id": "0",
"quantity": 1,
"unitPrice": 350,
"currencyId": "USD"
}
],
"buyer": {
"id": "4578889",
"email": "testbuyer@example.com",
"phone": "88888888",
"firstName": "John",
"lastName": "Doe",
"billingaddress": {
"addressline": "",
"zipcode": "",
"city": "",
"state": "",
"country": ""
},
"shipmentaddress": {
"addressline": "",
"zipcode": "",
"city": "",
"state": "",
"country": ""
}
},
"shipments": [
{
"id": "123",
"shiptracknum": "TRK-1203912",
"shipitems": ["4578889"],
"shiptype": "Fedex",
"shipstatus": "shipping"
}
],
"rating": 2.5,
"feedback": "",
"messages": [
{
"message_id": "",
"date_created": 0,
"from": "",
"message": ""
}
]
}
Parámetros de la solicitud
jobid: Identifica el trabajo de sincronización asociado con la operación.id: Identifica la orden de venta que se creará o actualizará.T2SKey: Clave de API utilizada para autenticar la solicitud.- Cuerpo de la solicitud: Contiene los datos completos de la orden de venta.
Respuesta exitosa
Si la operación de INSERT/UPDATE se completa correctamente, el endpoint debe devolver la orden resultante utilizando la siguiente estructura:
{
"success": true,
"code": 200,
"warnings": [],
"order": {
"_id": "75554554546",
"orderid": "75554554546",
"last_updated": 1517360038797,
"status": "paid",
"dateCreated": "",
"dateClosed": "",
"total": {
"amount": 350,
"currency": "USD"
},
"orderItems": [
{
"id": "7778545",
"variation_id": "0",
"quantity": 1,
"unitPrice": 350,
"currencyId": "USD"
}
],
"buyer": {
"id": "4578889",
"email": "testbuyer@example.com",
"phone": "88888888",
"firstName": "John",
"lastName": "Doe",
"billingaddress": {
"addressline": "",
"zipcode": "",
"city": "",
"state": "",
"country": ""
},
"shipmentaddress": {
"addressline": "",
"zipcode": "",
"city": "",
"state": "",
"country": ""
}
},
"shipments": [
{
"id": "123",
"shiptracknum": "TRK-1203912",
"shipitems": ["4578889"],
"shiptype": "Fedex",
"shipstatus": "shipping"
}
],
"rating": 2.5,
"feedback": "",
"messages": [
{
"message_id": "",
"date_created": 0,
"from": "",
"message": ""
}
]
}
}
Una respuesta exitosa contiene:
success: Indica si la operación se completó correctamente.code: Código de resultado. Una operación exitosa devuelve200.warnings: Contiene advertencias no bloqueantes generadas durante la operación.order: Contiene la orden de venta resultante después de la operación de INSERT/UPDATE.
Respuesta de error
Si la operación no puede completarse, el endpoint debe devolver una respuesta de error estructurada:
{
"success": false,
"code": 400,
"error": "Could not upsert sales order",
"reasons": [
{
"msg": "Invalid blank SKU"
},
{
"msg": "Invalid SKU"
},
{
"msg": "Invalid 0 quantity"
},
{
"msg": "Invalid business partner"
},
{
"msg": "Invalid status"
}
],
"warnings": []
}
La respuesta de error contiene:
success: Indica que la operación falló.code: Código de resultado. Una operación fallida devuelve400.error: Descripción general del motivo por el que falló la operación.reasons: Lista de errores específicos de validación o procesamiento.warnings: Contiene las advertencias generadas durante la operación.
Posibles motivos de error
Los ejemplos proporcionados incluyen los siguientes errores de validación:
Invalid blank SKUInvalid SKUInvalid 0 quantityInvalid business partnerInvalid status
Siguientes pasos
- Consulta Listar órdenes para implementar la recuperación de órdenes.
- Consulta Listar orden por ID para recuperar la orden completa mediante su ID.
- Consulta Agregar/Actualizar producto para implementar la sincronización de productos.