Información disponible como parte de la comprobación de resultados

  • Número de pedido y desglose de las mercancías para su posterior cargo en las existencias por su parte (creación propia).
  • Etiquetado escaneado para su posterior eliminación.

Ejemplo del cuerpo la comprobación de resultados

{
  "canceledDateTime": "0001-01-01T00:00:00.000Z",
  "deliveredDateTime": "2024-01-12T10:34:10.770Z",
  "discountTotalPrice": "69.41",
  "externalOrderId": "12-22-2201",
  "positions": [
    {
      "discountPrice": "37.41",
      "markings": [],
      "originalQuantity": 1000,
      "price": "412.11",
      "productId": "1111",
      "unitPrice": "393.23",
      "discountUnitPrice": "35.7",
      "quantity": 1048
    },
    {
      "discountPrice": "32",
      "markings": [],
      "originalQuantity": 1,
      "price": "32",
      "productId": "7574",
      "unitPrice": "32",
      "discountUnitPrice": "32",
      "quantity": 1
    }
  ],
  "shopId": "XX113",
  "status": "ready",
  "statusSetAt": "2024-01-12T10:34:10.770Z",
  "totalPrice": "444.11"
}

Especificación del contenido de la Comprobación de Resultados

  • Una cantidad cero en el la Comprobación de Resultados significa que la mercancía ha sido eliminado del pedido por el selector.
  • Si sólo está presente discountPrice, se trata de una mercancía recién añadido.

Precio de la mercancía

En el catálogo, hay un precio de la mercancía (unitPrice) y un precio con descuento (discountUnitPrice). De ellos, el precio y el precio con descuento se tienen en cuenta para la comprobación del resalto según las siguientes reglas:

  • para mercancías de peso:

    • price = quantity / 1000 × unitPrice;
    • discountPrice = quantity / 1000 × discountUnitPrice;
  • para mercancías por piezas:

    -price = quantity / unitPrice;

    • discountPrice = quantity / discountUnitPrice;
    • canceledDateTime y deliveredDateTime — los campos se rellenarán con el valor “0001-01-01T00:00:00.000Z” hasta que el pedido se entregue o se cancele.

Esquema

swagger: "2.0"
info:
  title: Result Check API
  description: Result Check API
  version: 1.0.0
schemes:
  - http
basePath: /
consumes:
  - application/json
produces:
  - application/json

paths:
  /result-check:
    post:
      operationId: PostResultCheck
      security:
        - Bearer: [ ]
      description: Envío del cheque resultante
      parameters:
        - $ref: '#/parameters/ResultCheckRequest'
      responses:
        200:
          description: Ok
        404:
          description: Error de validación
          schema:
            $ref: '#/definitions/Error'
        422:
          description: Error de validación
          schema:
            $ref: '#/definitions/Error'
        500:
          description: Error del servidor
          schema:
            $ref: '#/definitions/Error'

securityDefinitions:
  Bearer:
    description: 'Bearer <token here>'
    type: apiKey
    name: Authorization
    in: header

parameters:
  ResultCheckRequest:
    in: body
    name: ResultCheckRequest
    schema:
      type: object
      properties:
        externalOrderId:
          description: id de pedido en el sistema del socio
          type: string
        status:
          description: estado del pedido
          type: string
          enum:
            - done
            - ready
            - delivered
            - canceled
        positions:
          description: posiciónes de pedido
          type: array
          items:
            $ref: "#/definitions/OrderPosition"
        totalPrice:
          description: Coste total de las mercancías sin descuentos
          type: string
        discountTotalPrice:
          description: Coste total de las mercancías con descuentos
          type: string
        deliveredDateTime:
          description: fecha y hora de paso del pedido al estado «Entregado»
          type: string
          format: date-time
        statusSetAt:
          description: fecha y hora de paso del pedido al estado
          type: string
          format: date-time
        canceledDateTime:
          description: fecha y hora de paso del pedido al estado «Cancelado»
          type: string
          format: date-time
        shopId:
          description: propio identificador de tienda en el sistema del socio
          type: string
          x-nullable: false


definitions:
  OrderPosition:
    type: object
    properties:
      markings:
        description: Conjunto de marcas escaneadas
        type: array
        items:
          type: string
      productId:
        description: id del producto
        type: string
      originalQuantity:
        description: Cantidad de mercancía pedida originalmente. Piezas o gramos
        type: integer
      quantity:
        description: Cantidad de mercancía en el pedido recogido. Piezas o gramos
        type: integer
      price:
        description: Coste total de la mercancía recogida sin tener en cuenta el descuento
        type: string
      discountPrice:
        description: Coste total de la mercancía recogida, incluido el descuento
        type: string
      unitPrice:
        description: Precio por unidad sin descuento
        type: string
      dicountUnitPrice:
        description: Precio por unidad con descuento
        type: string

  Error:
    description: Error.
    type: object
    required:
      - message
    properties:
      message:
        description: Mensaje.
        type: string
        x-nullable: false
      code:
        description: Código del mensaje.
        type: integer
        x-nullable: false

Configuración del envío

Pasar datos a través del gestor para una configuración correcta:

  • URL de trabajo con la terminación /resultado-comprobado;
  • un token que utilizaremos para la autorización cuando hagamos una petición a la dirección del primer párrafo;
  • un conjunto de estados para los que queremos obtener una comprobación de resultados.

Estados para los que es posible enviar una comprobación de resultado

Suceso para el que es posible el envío

Estado del evento

Estado del pedido en el cheque de resultado

Recolector recogió el pedido (antes de entregarlo al mensajero)

ready

ready

El pedido fue cancelado después de que el recolector recogiera el pedido

canceled_after_ready

canceled

Pedido entregado o anulado después de entregarlo al mensajero

completed

canceled, delivered

Se recogió el pedido y se entregó al mensajero

handed_over_for_delivery

done