Trabajar con métodos de API de historial
Copiar enlace al artículo
Copiado

Principios generales

Métodos API

Esta sección describe los detalles de trabajar con los siguientes métodos de API de historial:

/api/v3/orders/packs/history

/api/v4/orders/packs/history

/api/v4/customers/history

/api/v4/orders/history

/api/v5/orders/packs/history

/api/v5/customers/history

/api/v5/orders/history

Nota

Tenga en cuenta que trabajar con el método /api/v3/orders/history se basa en principios diferentes.

Principios generales para trabajar con métodos de API de historial

Los métodos de la API del historial de cambios están diseñados para aplicar los cambios realizados en el sistema en el lado de otro sistema de información. Un ejemplo son los siguientes casos:

Aplicación de cambios a pedidos en el lateral de la tienda online para su visualización en la cuenta personal del cliente

Aplicar cambios a la preparación de pedidos en el lateral del sistema de almacén para la reserva automática de productos para pedidos.

Sincronización de la información del cliente con el sistema de fidelización

El algoritmo para trabajar con el historial de cambios es el siguiente (por ejemplo, /api/v4/orders/packs/history):

  • Si llamamos al método de la API de historial por primera vez, llamamos al método sin parámetros adicionales. Si no lo llamamos en el primero, entonces agregamos el parámetro sinceId con la indicación id guardado durante el último procesamiento.

  • Leemos el historial de cambios y los aplicamos.

  • Mire el contenido del parámetro pagination en la respuesta, si el número de páginas pagination.totalPageCount es mayor que 1 (por ejemplo, 5), luego llame secuencialmente al método con el parámetro page=N, omitiendo los cambios restantes de 2 a 5 y aplicándolos.

  • Guardamos el id del último registro del historial para usarlo en el posterior procesamiento del historial en el parámetro sinceId.

Configuramos este algoritmo para que se ejecute periódicamente en 5-15 minutos.

Descripción de los campos del historial

Fuente de cambio

El campo source almacena el código fuente del cambio. Valores posibles:

api cambió mediante API

code cambiado automáticamente por el sistema

user modificado por el usuario

rule cambio realizado como parte de un trigger

combine cambio realizado al fusionar

split cambio realizado en la división

Si el campo source tiene un valor igual a user, entonces el campo user se muestra en el registro del historial. Formato de campo user:

"user": {
 "id": 123, // ID de usuario interno
}

Información sobre la clave bajo la cual se realizó el cambio

El campo apiKey almacena un objeto con información sobre la clave bajo la cual se realizó el cambio. Solo está presente para los cambios realizados por api.

"apiKey": {
 "current": true, // El cambio se realizó bajo la clave actual
}

Información de consolidación de pedidos

El campo combinedTo contiene información sobre el orden en el que se fusionó el pedido actual. Solo está presente para /api/v4/orders/history y para pedidos que se eliminan al fusionar pedidos.

"combinedTo": {
 "id": 123, 
 "externalId": "ee-22-xx",
 "site": "decathlon",
}

Información sobre cómo copiar y dividir pedidos

El campo ancestor contiene información sobre el pedido a partir del cual se realizó la copia o división.

"ancestor": {
 "id": 123, 
 "externalId": "ee-22-xx",
 "site": "decathlon",
 "managerId": 6,
 "status": "availability-confirmed"
}

Valores antiguos y nuevos

Los valores de cambio antiguos y nuevos se encuentran en los campos oldValue y newValue respectivamente. Es posible que falte uno de los dos campos si falta el valor del campo que se está cambiando o si se eliminó cuando se cambió. El formato de los valores de los campos oldValue y newValue depende del tipo de campo field para el que se registra el cambio en el historial. A continuación se muestran los posibles tipos de campos y el formato de los valores en el historial para ellos.

Línea

Ejemplos de campos de cadena: calle street, teléfono phone, comentario de estado statusComment.

{
 ...
 "field": "statusComment",
 "newValue": "Los productos llegan mañana", 
 ...
}

Número

Esto incluye campos que almacenan tanto enteros como de coma flotante. Ejemplos de campos: precio del producto price, descuento del pedido discount, cantidad del producto quantity.

{
 ...
 "field": "discount",
 "oldValue": 25,
 "newValue": 26,
 ...
}

Booleano

Esto incluye campos que almacenan los valores true / false. Ejemplos de campos: envío del embalaje del producto shipped, envío del pedido shipped, pedido vencido expired.

{
 ...
 "field": "expired",
 "oldValue": false,
 "newValue": true,
 ...
}

Fecha y hora

Ejemplos de tales campos son la fecha de entrega deliveryDate, la fecha de envío shipmentDate.

{
 ...
 "field": "deliveryDate",
 "newValue": "2015-03-25 12:15:00", // en formato yyyy-MM-dd HH:MM:SS
 ...
}

Objeto de referencia

Esto incluye objetos de los siguientes directorios:

"Estado del pedido" status

"Tipo de pedido" orderType

"Método de pedido" orderMethod

"Tipo de publicación" deliveryType

"Servicio de entrega" deliveryService

"Tipo de pago" paymentType

'Estado de pago' paymentStatus

"Tienda" site

'Segmento de clientes' segments

'Estado del artículo' status

'Almacén' store

Para los campos del tipo de objeto de directorio en oldValue / newValue, se devuelve una estructura, dentro de la cual se transfiere el código simbólico del objeto code.

{
 ...
 "field": "status",
 "oldValue": {
 "code": "new"
 },
 "newValue": {
 "code": "completed"
 },
 ...
}

Para la búsqueda de 'Estado del artículo', el parámetro cancel: true se puede indicar adicionalmente, si se estableció el estado de cancelación:

{
 ...
 "field": "status",
 "oldValue": {
 "code": "new"
 },
 "newValue": {
 "code": "out-of-stock",
 "cancel": true
 },
 ...
}
Gracias por tus comentarios.
¿Te resultó útil este artículo
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Si
Artículo anterior
Cómo integrar el servicio de entrega a través de la API
Cómo integrar el servicio de entrega a través de la API
Artículo siguiente
Trabajar con descuentos y redondeo
Elaboramos mas en detalle sobre la lógica de redondeo, las principales disposiciones tanto cómo funcionan los descuentos en el sistema y las situaciones en las que la configuración "Ajustar descuento en el pedido" puede ser eficaz en el artículo.