Skip to main content

API: Упаковка /packing

1. Получение заказа на упаковку

/packing/order/{order_id}/start

Для получения заказа, необходимо выполнить запрос вида /packing/order/LT1234567890/start

 

В ответ возвращается

Успех

{
  "success": true,
  "order": {
    "id": "LT123456",
    "operationType": "PACKAGING_B2B",
    "shipmentType"relabelingType": "BOXES",
    "maxBoxesWithoutPallet": 10,
    "date": "2021-07-15T14:23:11",
    "packing_state": "awaiting_packing",
    "require_place_weight": true,
    "global_shipping_guidelines": "...общее описание отгрузки",
    "order_shipping_comments": "...комментарий клиента к заказу",
    "preferred_barcode_type": "WILDBERRIES",
    "merchant": {
      "id": "some-id",
      "title": "ООО Зингер",
      "trade_title": "Zinger.com"
    },
    "shipping_form": [
      {
        "id": "shipping_num",
        "title": "Номер поставки",
        "value": "120721-001"
      },
      {
        "id": "instruction",
        "title": "Инструкция по сборке",
        "value": "Текст инструкции в html c html-escape разметкой"
      }
    ],
    "delivery": {
      "logo": "https://..russian_post.svg",
      "title": "Почта России",
      "contract_title": "Курьер Онлайн",
      "sorting_center_acceptance_date": "2021-07-17",
      "maximum_place_weight": 30000,
      "maximum_places_count": 1
    },
    "items": [
      {
        "id": "some-item-id",
        "article": "A0121202",
        "title": "Норвежская лесная Эдалт 2 кг",
        "quantity": 5,
        "image": "https://..image.jpg",
        "image_preview": "https://..image_preview.jpg",
        "require_weight": true,
        "require_dimensions": true,
        "kit_id": 102012,
        "kit_title": "Большой набор разных товаров",
        "barcodes": [
          {
            "type": "COMMON",
            "barcode": "40010030040"
          },
          {
            "type": "WILDBERRIES",
            "barcode": "1122334455"
          }
        ],
        "scan_serial_numbers": [
          {
            "code": "imei",
            "title": "IMEI код",
            "template": "some-template"
          },
          {
            "code": "chestniy_znak",
            "title": "Честный знак",
            "template": "some-template"
          }
        ]
      }
    ],
    "ad_attachments": [
      {
        "name": "Салфетка",
        "quantity": 1,
        "note": "примечание"
      }
    ],
    "places": [
      {
        "id": "5646564",
        "packaging_id": "4445566633211",
        "sequence_num": 1,
        "weight": 567,
        "items": [
          {
            "id": "some-item-id",
            "barcode_used": "40010030040",
            "quantity": 1,
            "serial_numbers": [
              {
                "code": "imei",
                "value": "821821291291929"
              },
              {
                "code": "chestniy_znak",
                "value": "010460370285702421"
              }
            ]
          }
        ]
      }
    ],
    "pallets": [
    {
      "id": "12345",
      "num": "1",
      "places": [
        "placeId1",
        "placeId2"
      ],
      "weight": 567,
      "dimensions": {
        "width": 10,
        "height": 10,
        "depth": 10
      }
    }
  ]
  },
  "packagings": [
    {
      "id": "some-id",
      "title": "Коробка 50х30х20",
      "barcodes": [
        "BX-503020",
        "BX*503020"
      ]
    },
    {
      "id": "some-id-2",
      "title": "Коробка 50х30х10",
      "barcodes": [
        "BX-503010"
      ]
    }
  ]
}

Описание полей

Поле Тип Описание
success Boolean true - заказ успешно получен, false - заказ получить не удалось, в массиве errors набор ошибок
errors Array Массив объектов ошибок
order Object Объект заказа
id Text Номер заказа
operationType enum

Перечисление:

  • PACKAGING_B2B - заказ Озон ФБО или Wildberries ФБО, статус "На сборке"
  • PACKAGING_B2C - не (Озон ФБО или Wildberries ФБО), статус "На сборке"
  • RELABELING_BOXESRELABELING - перемаркировка мест, т.е. статус "Упакован и Документы"
RELABELING_PALLETS - перемаркировка маллет, статус "Упакован и Документы"
  • RELABELING_PALLETS_AND_BOXES - перемаркировка мест и паллет, статус "Упакован и Документы"
  • shipmentTyperelabelingType enum

    Перечисление:

    • BOXES - Wildberries_ФБО или Озон_ФБО и maxBoxesWithoutPallet < Заказ.фф_УпаковкиЗаказов.Количество()
    • PALLETS - Озон_ФБО и maxBoxesWithoutPallet >= Заказ.фф_УпаковкиЗаказов.Количество()
    • BOXES_AND_PALLETS - в остальных случаях
    maxBoxesWithoutPallet integer

    Количество коробов, с которого обязательна палета.

    preferred_barcode_type string

    Для FBO заказов - предпочтительный тип ШК товара. Если сосканирован не такой - запрос стикера. Значения - из ENUM Тип штрихкода

    date Datetime Дата и время заказа
    packing_state enum

    Статус упаковки заказа

    • awaiting_packing - ожидает упаковки, упаковка не начата
    • on_packing - упаковка начата, в процессе
    • packed - упаковка завершена
    require_place_weight Boolean

    Требуется снятие веса места

    shipping_guidelines string Общее описание отгрузки (на весь аккаунт клиента))
    shipping_comments string Пожелания клиента к отгрузке данного заказа
    shippingOptions
    Object Опции доставки
    monopackingsOnly
    Boolean Признак упаковки только монокоробами
    shipping_form Array Массив вопросов и ответов анкеты отгрузки
    id string Идентификатор вопроса
    title string Наименование вопроса
    value string Ответ клиента на вопрос
    delivery Object Информация о доставке
    logo string Ссылка на логотип. 
    title string Наименование способа доставки, например "Почта России"
    contract_title string Наименование продукта, например "Курьер Онлайн"
    sorting_center_acceptance_date Date Планируемая дата приемки в сортировочном центре. В первую очередь, для Почты России.
    maximum_place_weight integer Максимальный вес одного места в граммах
    maximum_places_count integer Максимальное количество мест в заказе. Ограничение некоторых курьерских служб.
    items Array Массив объекта товаров
    id string Идентификатор
    title string Наименование товара
    article string Артикул
    quantity integer Количество товара к упаковке
    image string Ссылка на картинку товара в полном размере
    image_preview string Ссылка на картинку товара (с низким разрешением, уровня "иконка")
    require_weight boolean Для данной номенклатуры надо измерить вес
    require_dimensions boolean Для данной номенклатуры надо измерить габариты
    barcodes Array Массив штрихкодов
    type string Тип штрихкода. COMMON - без специфики, общий шаблон.
    barcode string Значение штрихкода
    scan_serial_numbers Array Задания на сканирование серийных номеров, массив
    code string Код
    title string Наименование
    template string Шаблон для проверки (если есть)
    options Object Дополнительные опции упаковки для данной позиции 
    label_with_barcode string

    Если не пустое значение, задание наклеить этикетку с указанным штрихкодом, при условии, что товар при отгрузке имеет иной штрихкод, чем указано в данном параметре. 

     

    Этикетка и параметры передаются в отдельном блоке label.

    label_all_items boolean Если передан true, необходимо наклеить этикетку на каждую позицию. Этикетка и параметры передаются в отдельном блоке label.
    ad_attachments Array Массив дополнительных вложений
    name string Наименование
    quantity integer Количество
    note string Примечание
    places Array Массив упакованных мест заказа
    packagings Array Массив упаковочной тары
    id string Идентификатор
    title string Наименование упаковки
    barcodes Array of string Штрихкоды упаковки

     

    Ошибка:

    {
    "success": false,
    "errors": [
     {
     "code": "ORDER_NOT_FOUND",
     "message": "Заказ с номером LT1234567890 не найден",
     "errorsticker":{"content":"base64 pdf","printer": "STICKER_6x6"}
     }
    ]
    }

    Типовые ошибки:

    Code Message
    ORDER_NOT_FOUND Заказ с номером LT1234567890 не найден
    ORDER_ON_PACKING Упаковка заказа LT1234567890 уже начала на рабочем столе DM-13
    ORDER_ALREADY_PACKED Заказ LT1234567890 уже упакован (рабочее место DM-13, оператор Оператор 12)

     

     

    2. Получение заказа

    /packing/order/{order_id}

    Метод полностью аналогичен методу /packing/order/{order_id}/start по части возвращаемых полей, за следующим исключением:

    • Метод не инициирует начало упаковки
    • Получить заказ возможно в любом статусе

     

    3. Получение последних упакованных заказов

    /packing/orders/last

    Пример вызова:

    GET /packing/orders/last?limit=10

    Параметр вызова limit отвечает за количество возвращаемых заказов. Если не передан, по умолчанию возвращается 10 заказов.

    Сервер возвращает заказы, упакованные данным оператором.

    {
      "success": true,
      "orders": [
        {
          "id": "LT123456",
          "packing_state": "packed",
          "packed_at": "2021-07-15T14:23:11"
        }
      ]
    }

     

    4. Продолжение упаковки заказа

    /packing/order/{order_id}/resume

    Для продолжения упаковки заказа, необходимо выполнить запрос вида /packing/order/LT1234567890/resume

    Метод требует расширенных прав. Данный метод вызывает на бэкенде следующие действия у заказа:

    • обновляется оператор,
    • обновляется текущий рабочий стол

    Бэкенд возвращает текущее состояние заказа - включая уже упакованные места (places)

    Успех

    {
      "success": true,
      "order": {объект Упаковка заказа как в методе POST /start}
    }

     

     

     

    5. Сброс упаковки заказа

    /packing/order/{order_id}/reset

    Для сброса упаковки заказа, необходимо выполнить запрос вида /packing/order/LT1234567890/reset

    На бэкенде метод:

    • Очищает все места, присвойки, упакованные товары
    • Очищает все места в DLV
    • Удаляет информацию по видеонарезке
    • Удаляет информацию по старте упаковки, рабочему месту старта упаковки и т.д.

     

    6. Добавление/редактирование места к заказу

    /packing/order/{order_id}/place

    Метод создает или обновляет место к заказу.

    Для создания нового места вызов: /packing/order/{order_id}/place, для редактирования места к заказу: /packing/order/{order_id}/place/{place_id}

    При создании нового места - возвращает стикер в формате pdf (base64).

    Пример вызова

    {
      "place": {
        "packaging_id": "some-id",
        "sequence_num": 4,
        "is_final": false,
        "weight": 567,
        "dimensions": {
          "width": 10,
          "height": 10,
          "depth": 10
        },
        "items": [
          {
            "id": "some-item-id",
            "packed_at": "2021-07-18T12:21:22",
            "barcode_used": "40010030040",
            "quantity": 1,
            "serial_numbers": [
              {
                "code": "imei",
                "value": "821821291291929"
              },
              {
                "code": "chestniy_znak",
                "value": "010460370285702421"
              }
            ]
          }
        ]
      }
    }

    Описание

    Поле Тип Описание
    place Object Объект места
    packaging_id string ID упаковочной тары
    sequence_num integer Порядковый номер места (нумерация начинается с 1)
    is_final boolean Признак последнего места, устанавливается в true, когда отсканированы все позиции, и данное место - последнее
    weight integer Вес в граммах
    dimensions Object Размеры (габариты) места - передаются только в случае нестандартной упаковки (packaging_id: "oversize")
    items Array Массив отсканированных товаров для данного места
    id string ID товара
    packed_at datetime Дата и время сканирования товара
    barcode_used string Использованный штрихкод (какой именно штрихкод был отсканирован для данного товара). 
    serial_numbers Array Массив серийных номеров
    code string ID серийного номера
    value string Значение отсканированного серийного номера

     

    Успех

    {
      "success": true,
      "place_id": "ID созданного или обновленного места",
      "sticker": {
        "content":"base64 pdf",
        "printer": "STICKER_6x6"
      }
    }

     

    Ошибка:

    {
    "success": false,
    "errors": [
     {
     "code": "ERROR",
     "message": "Описание ошибки",
     "errorsticker": {"content":"base64 pdf","printer": "STICKER_6x6"}
     }
    ]
    }

    Коды ошибок:

    Code Message
    INCORRECT_WEIGHT Введенный вес места (5000 грамм) существенно отличается от планового
    OTHER_ERROR Прочая ошибка

    7. Получение стикера места

    /packing/order/{order_id}/place/{place_id}/sticker

    Для получения стикера места, необходимо выполнить запрос вида: /packing/order/LT1234567890/place/43043403404/sticker

    Опциональный параметр operationType - передается для печати стикера в операциях перемаркировки. Значение брать из operationType  заказа.

    В ответ возвращается стикер в pdf, закодированный в base64

    Успех

    {
      "success": true,
      "sticker": {
        "content":"base64 pdf",
        "printer": "STICKER_6x6"
      }
    }

     

    Ошибка:

    {
    "success": false,
    "errors": [
     {
     "code": "NOT_FOUND",
     "message": "Стикера с указанным местом 4030004403040 не существует"
     }
    ]
    }

    8. Добавление/редактирование палеты

    /packing/pallet

    Метод создает или обновляет палету.

    Для создания нового места вызов: /packing/pallet, для редактирования места к заказу: /packing/pallet/{pallet_id}

    При создании нового места - возвращает стикер в формате pdf (base64).

    Пример вызова

    {
      "pallet": {
        "pallet_num": 1,
        "weight": 567,
        "dimensions": {
          "width": 10,
          "height": 10,
          "depth": 10
         },
        "places": [{"placeId":"978020137962","orderId":"KK23423"}, {"placeId":"978020137964","orderId":"KK23423"}]
      }
    }
    

    Успех

    {
      "success": true,
        "pallet_id": "0000000008",
        "pallet_num": 1,
        "sticker": {
            "content": "base64 pdf",
        	"printer": "STICKER_6x6"
        }
    }

    Описание запроса

    pallet Object Объект палеты
    pallet_num Integer Порядковый номер палеты в сценарии упаковки, определяется на стороне front-end
    weight Integer Все палеты в граммах
    dimensions Object Измерения палеты (см. описание объекта в п.8 Таблица 2)
    width Integer Ширина в мм
    height Integer Высота в мм
    depth Integer Глубина в мм
    places Array Массив объектов отсканированных мест в составе палеты
    placeId String Штрихкод отсканированного места
    orderId String Номер заказа (в случае наличия такой информации, это ускорит процесс поиска в back-end)

    Описание ответа

    success Boolean Признак успешного выполнения операции
    pallet_id String Идентификатор (номер документа) палеты в back-end. По этому номеру можно вызывать команду редактирования палеты
    pallet_num Integer Порядковый номер палеты в сценарии упаковки, возвращается без изменений.
    sticker Object Объект для печати стикера
    content String Стикер в pdf в формате base64
    printer String Формат печати этикетки

    9. Получение стикера палеты

    /packing/pallet/{pallet_id}/sticker

    Опциональный параметр operationType - передается для печати стикера в операциях перемаркировки. Значение брать из operationType  заказа.

    В ответ возвращается стикер в pdf, закодированный в base64

    Успех

    {
      "success": true,
      "sticker": {
        "content":"base64 pdf",
        "printer": "STICKER_6x6"
      }
    }

    10. Перевод заказа в статус Упакован (packed) после перемаркировки

    /packing/order/{order_id}/packed

    Метод переводит заказ с номером {order_id} в статус Упакован.

    11. Присвоение нового ШК места при перемаркировке

    /packing/order/{order_id}/place/{place_id}/barcode/new

    {
      "id": "123456",   //id места
      "new_barcode" : "ABCD1245"
    }

    Метод добавляет основной ШК месту при перемаркировке по FBO заказам

    Успех

    {
      "success": true,
       "place": {
         	"id": "ABCD1245"
            "packaging_id": "fsdf",
            "sequence_num": 1,
            "weight": 567,
            "items": [
              {
                "id": "some-item-id",
                "packed_at": "2021-07-18T12:21:22",
                "barcode_used": "40010030040",
                "quantity": 1,
                "serial_numbers": [
                  {
                    "code": "imei",
                    "value": "821821291291929"
                  },
                  {
                    "code": "chestniy_znak",
                    "value": "010460370285702421"
                  }
                ]
              }
            ]
          }
    }

    12. Присвоение нового ШК паллеты при перемаркировке

    /packing/pallet/{pallet_id}/barcode/new

    {
      "id": "123456",   //id паллеты
      "new_barcode" : "ABCD1245"
    }

    Метод добавляет основной ШК паллете при перемаркировке по FBO заказам

    Успех

    {
      "success": true,
       "pallet": {
          "id": "ABCD1245",
          "num": "1",
          "places": [
            "placeId1",
            "placeId2"
          ],
          "weight": 567,
          "dimensions": {
            "width": 10,
            "height": 10,
            "depth": 10
          }
        }
    }

    13. Получение палетного листа

    /packing/pallet/{pallet_id}/form

     

    В ответ возвращается печатная форма в pdf, закодированная в base64

    Успех

    {
      "success": true,
      "sticker": {
        "content":"base64 pdf",
        "printer": "STICKER_6x6"
      }
    }