Available information included in the result check

  • Order number and decoding of product positions for further debiting from balances on your side (set up yourself).
  • Scanned markings for further disposal.

Statuses under which it is possible to send a result check

  • Picker collected the order (before transferring it to the courier).
  • The order was canceled after the picker collected the order.
  • The order was collected and transferred to the courier — Canceled or Delivered, does not depend on the further status.
  • The order is delivered or canceled after being transferred to the courier.

Sending configuration

Pass the data through the manager for successful setup

  • working URL with ending /result-check;
  • a token that we will use for authorization when making a request to the address from the first paragraph;
  • a set of statuses for which it is necessary to receive a result check.

Scheme

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: Sending the resulting check
      parameters:
        - $ref: '#/parameters/ResultCheckRequest'
      responses:
        200:
          description: Ok
        404:
          description: Validation error
          schema:
            $ref: '#/definitions/Error'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/Error'
        500:
          description: Server error
          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: order ID in the partner's system
          type: string
        status:
          description: order status
          type: string
          enum:
            - done
            - ready
            - delivered
            - canceled
        positions:
          description: order positions
          type: array
          items:
            $ref: "#/definitions/OrderPosition"
        totalPrice:
          description: Total cost of items without discounts
          type: string
        discountTotalPrice:
          description: Total cost of items with discounts
          type: string
        deliveredDateTime:
          description: date and time of the order transition to the "Delivered" status
          type: string
          format: date-time
        statusSetAt:
          description: date and time of order transition to status
          type: string
          format: date-time
        canceledDateTime:
          description: date and time the order transition to "Canceled" status
          type: string
          format: date-time
        shopId:
          description: store ID in the partner’s system
          type: string
          x-nullable: false


definitions:
  OrderPosition:
    type: object
    properties:
      markings:
        description: Array of scanned markings
        type: array
        items:
          type: string
      productId:
        description: Product ID
        type: string
      originalQuantity:
        description: Кол-во товара, исходно заказанное. Штуки или граммы
        type: integer
      quantity:
        description: Quantity of originally ordered items. Pieces or grams
        type: integer
      price:
        description: Full cost of the collected goods without discount
        type: string
      discountPrice:
        description: Full cost of the collected goods including discount
        type: string
      unitPrice:
        description: Unit price excluding discount
        type: string
      dicountUnitPrice:
        description: Unit price including discount
        type: string

  Error:
    description: Error.
    type: object
    required:
      - message
    properties:
      message:
        description: Message.
        type: string
        x-nullable: false
      code:
        description: Message code.
        type: integer
        x-nullable: false

Example of a result check body

{
  "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"
}

Features of the result check contents

  • A zero quantity in the result check means that the item was removed from the order by picker.
  • If only discountPrice is present, this is a newly added item.

The price of the product

The catalog contains the price of the product (unitPrice) and the discounted price (discountUnitPrice). Price and discountPrice are considered for the result check according to the following rules:

  • Weighing items:

    • price = quantity / 1000 × unitPrice;
    • discountPrice = quantity / 1000 × discountUnitPrice;
  • Piece items:

    • price = quantity × unitPrice;
    • discountPrice = quantity × discountUnitPrice;
    • canceledDateTime и deliveredDateTime — the fields will be filled with the value 0001-01-01T00:00:00.000Z until the order is delivered or cancelled.