LOKO Merchant API
  • Getting Started
    • 🔌Процес інтеграції
    • 💂Отримання токену
    • 🪃Опрацювання Callback(Webhook)
  • General Terms & Conditions
    • 🔓Scope
    • ⚙️Environment
    • 🔑Company & Store
  • API Reference
    • Orders
    • Stores
    • Menu
      • Separate Product & Offer
      • Common Product + Offer (deprecated)
      • Common Menu Import
      • Stop-list
      • Import categories
    • Callbacks (webhooks)
Powered by GitBook
On this page
  1. API Reference

Orders

❓ Як працювати з замовленнями

PreviousAPI ReferenceNextStores

Last updated 10 months ago

Можливі статуси замовлення

Статуси, які передаються мерчантом, відмічені зірочкою *

  • new – нове замовлення;

  • preparation* (посередній статус між новим та ready_for_delivery) – означає, що замовлення готується;

  • (посередній) – можливий, але необовʼязковий статус між preparation та reaady_for_delivery. Означає що замовлення не може бути виконане у повному обсязі;

  • ready_for_delivery* означає, що курʼєр може забрати замовлення;

  • delivery_in_progress – замовлення доставляється;

  • delivered – замовлення доставлено;

  • r– запит на скасування замовлення;

  • canceled – замовлення скасовано.

Використання статусів та r мають бути попередньо затверджені з бізнес-представниками LOKO. Інакше операційний офіс LOKO не зможе обробляти надану інформацію.

Отримання списку замовлень

  • itemPrice - ціна за 1 од. без знижки

  • listPrice - сума по айтему без знижки

  • netPrice - ціна за 1 од. зі знижкою

  • netListPrice - сума по айтему зі знижкою

  • discountPrice - знижка на 1 од.

Отримання замовлення за його ідентифікатором

Зміна статусу в замовленні

Статуси, які можна передавати Обов'язкові статуси відмічені зірочкою *

  • preparation* – передається, коли мерчант взяв замовлення в роботу.

  • partial_fulfilment – передається після того, як мерчант взяв замовлення у роботу, але з певних причин не може виконати замовлення у повному обсязі. З цим статусом обов'язково потрібно передавати масив "items" з даними про позиції, які не можуть бути опрацьовані. Використання статусу має бути затверджене з бізнес-представниками LOKO.

  • ready_for_delivery* – замовлення готове, курʼєр може забрати замовлення.

  • request_cancellation – скасування за запитом. Може бути передане лише до того, як замовлення перевели у статус ready_for_delivery. Використання статусу має бути затверджене з бізнес-представниками LOKO.

Додаткові поля, які необхідно передавати у разі зміни статусу:

  • cookingTime – час "приготування" замовлення. Бажано надавати оцінку приблизного часу на підготовку для кожного окремого замовлення, проте можливий варіант надання середнього часу приготування.

  • items – список позицій, які продавець не може виконати в повному обсязі. Кожен елемент масиву має поле sku - артикул товару, а також поле quantityFulfilled, що має позначати кількість, яку продавець може виконати. Використовується тільки для статусу partial_fulfilment та має бути затверджене з бізнес-представниками LOKO.

Updating order status by its Id

patch

Updating order status by its Id

Authorizations
Path parameters
idstring · uuidRequired

Internal identifier

Example: 569e7427-14ca-43f1-8d4b-ed3b7f1fd197
Body
statusstring · enum · max: 30RequiredPossible values:
cookingTimeinteger · min: 1 · max: 480Optional

Cooking time in minutes (required when status=preparation)

Example: 45
Responses
202
Accepted
application/json
Responseobject
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
patch
PATCH /v1/merchant/orders/{id}/status-change HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 93

{
  "status": "preparation",
  "cookingTime": 45,
  "items": [
    {
      "quantityFulfilled": 2,
      "sku": "SK1234567"
    }
  ]
}
{}

Obtaining paginated order list

get

Obtaining paginated order list

Authorizations
Query parameters
filter[branchIds][]string · uuid[]Optional

Filter by branch ids

Example: d880ef13-2d71-47b8-bb31-c07476dec494
filter[createdAt][from]stringOptional

Filter by order creation time (from)

Example: 1272509157
filter[createdAt][to]stringOptional

Filter by order creation time (to)

Example: 1272509157
offsetinteger · int32Optional

Number of items to skip before returning the results.

Default: 0
limitinteger · int32 · min: 1Optional

Maximum number of items to return.

Default: 25
Responses
200
Successful operation
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
get
GET /v1/merchant/orders HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "total": 1,
  "items": [
    {
      "id": "64515b53-0bae-4c32-a714-f8685102bacc",
      "number": "1000000000",
      "storeId": "64515b53-0bae-4c32-a714-f8685102bacc",
      "status": "new",
      "listPrice": {
        "currency": "UAH",
        "value": 150
      },
      "netPrice": {
        "currency": "UAH",
        "value": 150
      },
      "comment": "text",
      "estimatedCookingTime": 45,
      "items": [
        {
          "id": "982bd270-3fcf-42a8-a83c-0dd6cc19398f",
          "productId": "64515b53-0bae-4c32-a714-f8685102bacc",
          "offerId": "019d8d40-9f03-4de9-a4a9-9f1827ef5b4f",
          "sku": "SK123456",
          "name": "Italian Pasta",
          "quantityOrdered": 15,
          "quantityFulfilled": 10,
          "itemPrice": {
            "currency": "UAH",
            "value": 150
          },
          "listPrice": {
            "currency": "UAH",
            "value": 150
          },
          "netPrice": {
            "currency": "UAH",
            "value": 150
          },
          "netListPrice": {
            "currency": "UAH",
            "value": 150
          },
          "discountPrice": {
            "currency": "UAH",
            "value": 150
          },
          "attributes": [
            {
              "id": "64515b53-0bae-4c32-a714-f8685102bacc",
              "name": "Extra shrimps",
              "sku": "AT205812",
              "offerId": "64515b53-0bae-4c32-a714-f8685102bacc",
              "quantity": 1,
              "price": {
                "currency": "UAH",
                "value": 150
              },
              "netPrice": {
                "currency": "UAH",
                "value": 150
              },
              "listPrice": {
                "currency": "UAH",
                "value": 150
              },
              "netListPrice": {
                "currency": "UAH",
                "value": 150
              },
              "discountPrice": {
                "currency": "UAH",
                "value": 150
              }
            }
          ],
          "cancellations": [
            {
              "actor": "customer",
              "quantity": 1,
              "reason": "text",
              "reasonText": "text",
              "createdAt": "2022-12-15T08:00:01+00:00"
            }
          ]
        }
      ],
      "customer": {
        "firstName": "John",
        "lastName": "Doe",
        "phone": "+380981234567"
      },
      "courier": {
        "id": "d880ef13-2d71-47b8-bb31-c07476dec494",
        "firstName": "John",
        "phone": "text"
      },
      "isTest": false,
      "createdAt": "2022-12-15T08:00:01+00:00",
      "updatedAt": "2022-12-15T08:00:01+00:00"
    }
  ]
}

Obtaining specific Order by its Id

get

Obtaining specific Order by its Id

Authorizations
Path parameters
idstring · uuidRequired

Internal identifier

Example: 569e7427-14ca-43f1-8d4b-ed3b7f1fd197
Responses
200
Successful operation
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
get
GET /v1/merchant/orders/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "id": "64515b53-0bae-4c32-a714-f8685102bacc",
  "number": "1000000000",
  "storeId": "64515b53-0bae-4c32-a714-f8685102bacc",
  "status": "new",
  "listPrice": {
    "currency": "UAH",
    "value": 150
  },
  "netPrice": {
    "currency": "UAH",
    "value": 150
  },
  "comment": "text",
  "estimatedCookingTime": 45,
  "items": [
    {
      "id": "982bd270-3fcf-42a8-a83c-0dd6cc19398f",
      "productId": "64515b53-0bae-4c32-a714-f8685102bacc",
      "offerId": "019d8d40-9f03-4de9-a4a9-9f1827ef5b4f",
      "sku": "SK123456",
      "name": "Italian Pasta",
      "quantityOrdered": 15,
      "quantityFulfilled": 10,
      "itemPrice": {
        "currency": "UAH",
        "value": 150
      },
      "listPrice": {
        "currency": "UAH",
        "value": 150
      },
      "netPrice": {
        "currency": "UAH",
        "value": 150
      },
      "netListPrice": {
        "currency": "UAH",
        "value": 150
      },
      "discountPrice": {
        "currency": "UAH",
        "value": 150
      },
      "attributes": [
        {
          "id": "64515b53-0bae-4c32-a714-f8685102bacc",
          "name": "Extra shrimps",
          "sku": "AT205812",
          "offerId": "64515b53-0bae-4c32-a714-f8685102bacc",
          "quantity": 1,
          "price": {
            "currency": "UAH",
            "value": 150
          },
          "netPrice": {
            "currency": "UAH",
            "value": 150
          },
          "listPrice": {
            "currency": "UAH",
            "value": 150
          },
          "netListPrice": {
            "currency": "UAH",
            "value": 150
          },
          "discountPrice": {
            "currency": "UAH",
            "value": 150
          }
        }
      ],
      "cancellations": [
        {
          "actor": "customer",
          "quantity": 1,
          "reason": "text",
          "reasonText": "text",
          "createdAt": "2022-12-15T08:00:01+00:00"
        }
      ]
    }
  ],
  "customer": {
    "firstName": "John",
    "lastName": "Doe",
    "phone": "+380981234567"
  },
  "courier": {
    "id": "d880ef13-2d71-47b8-bb31-c07476dec494",
    "firstName": "John",
    "phone": "text"
  },
  "isTest": false,
  "createdAt": "2022-12-15T08:00:01+00:00",
  "updatedAt": "2022-12-15T08:00:01+00:00"
}
  • Можливі статуси замовлення
  • Отримання списку замовлень
  • GETObtaining paginated order list
  • Отримання замовлення за його ідентифікатором
  • GETObtaining specific Order by its Id
  • Зміна статусу в замовленні
  • PATCHUpdating order status by its Id