VRt.Packer [PC] (6.20.2289)

Veeroute Support Team: servicedesk@veeroute.comLicense: Proprietary

Veeroute Packer API.

Description

The service is designed to calculate the placement of goods inside given packages.

Types of packages

Pallet

pallet

Mono-pallet

If the pallet is fully equipped with the same product, then such a pallet is called mono-pallet, such a pallet has the following loading rules:

  1. The maximum allowable height of the pallet with the goods laid on it is taken into account.
  2. The maximum allowable weight of the loaded pallet is taken into account.
  3. Goods packages can only be stacked parallel to the walls of the pallet.
  4. It is allowed to rotate packages around the vertical Z-axis and only at a right angle.
  5. In order to equalize the height between the positions (to place another pallet on top), empty spaces can be added to the stacking by layers.

Zone tray

After the formation of mono-pallets, the remaining part of the goods of the same article is placed on the next pallet, which is divided into zones by means of a cardboard partition in such a way that only one item of goods is placed in each zone, while the zones have the following restrictions:

  1. The zones are rectangular.
  2. The ratio between the sides of the zones can be any.
  3. One of the sides of any zone is always in contact with the edge of the pallet.
  4. Permissible number of zones on a pallet: from 2 to 6.
  5. Each zone is filled according to the rules for filling a mono-pallet.
  6. The stacking height of all goods does not exceed 50 mm, so that another pallet can be placed on top of such a pallet.
  7. It is allowed to form pallets with different stacking heights for different positions (height difference is more than 50 mm), if these are the top pallets in the stack.

Mixbox

mixbox

If the above steps fail to place the item in this way, so that the pallet is of the required height or weight, mixboxes are used:

  1. Mixbox can only be placed in one layer.
  2. Different goods can be placed in one mixbox, in this case it is divided by partitions similarly to a pallet (the only difference is that the height of the packed goods is not aligned).
  3. Mixboxes can be mixed with items on the same pallet.
  4. One product can be packed in different mixboxes.

Slot

slot

The loaded pallets are stacked on top of each other, the slot is where the stack of pallets is placed. The slot has no physical body - so the dimensions of the body of the slot are zero.

Coordinate system

coordinates

To indicate the location of packages and goods, a local coordinate system is used, in which the coordinates of a particular object are indicated relative to the near left lower corner of the parent object, while:

  • Horizontal plane - axes X, Y
  • Vertical - Z axis

The ratio of the axes of goods and packages:

  • Width - X
  • Length - Y
  • Height - Z

Entity diagram

erd

Pack

Calculation of the placement of products inside the packages.

Packing (SYNC)

Planning the optimal package.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for calculation.

required
Array of objects (product) [ 1 .. 70001 ] items unique

List of products.

required
Array of objects (package) [ 1 .. 11 ] items unique

List of packages. It is obligatory to have at least one package of each type (SLOT, PALLET, MIXBOX).

object (pack_settings)

Packing settings.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (blueprint) [ 0 .. 70001 ] items

A product layout plan as a list of packaging locations. The first level contains a list of pallet stacks.

required
object (pack_statistics)

General statistics for packing scheme.

Array of objects (entity_warning_list) [ 0 .. 70001 ] items

List of warnings. Depending on the flag calculation_settings.treat_warnings_as_errors - triggered checks are interpreted as errors or result in the removal of incorrect data from the calculation.

object (unpacked_items)

Unpacked items list.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
Example
{
  • "products": [
    ],
  • "packages": [
    ],
  • "pack_settings": {
    }
}

Response samples

Content type
application/json
Example
{
  • "tracedata": {
    },
  • "blueprint": [
    ],
  • "statistics": {
    },
  • "progress": 100,
  • "info": {
    },
  • "warnings": [ ],
  • "unpacked_items": {
    }
}

Packing (ASYNC)

The result can be obtained using the result method, removing - with delete.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for calculation.

required
Array of objects (product) [ 1 .. 70001 ] items unique

List of products.

required
Array of objects (package) [ 1 .. 11 ] items unique

List of packages. It is obligatory to have at least one package of each type (SLOT, PALLET, MIXBOX).

object (pack_settings)

Packing settings.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

id
required
string<uuid> (calculation_id)

Calculation identifier.

Request samples

Content type
application/json
Example
{
  • "products": [
    ],
  • "packages": [
    ],
  • "pack_settings": {
    }
}

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "id": "11111111-2222-3333-4444-555555555555"
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string<uuid> (calculation_id)
Example: 11111111-2222-3333-4444-555555555555

Calculation identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "progress": 52,
  • "info": {
    }
}

Cancel calculation

Cancel calculation process by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string<uuid> (calculation_id)
Example: 11111111-2222-3333-4444-555555555555

Calculation identifier.

Responses

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "message": "bad task data",
  • "schema_errors": [ ],
  • "logical_errors": [
    ],
  • "warnings": [ ]
}

Getting the result

Getting the result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string<uuid> (calculation_id)
Example: 11111111-2222-3333-4444-555555555555

Calculation identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (blueprint) [ 0 .. 70001 ] items

A product layout plan as a list of packaging locations. The first level contains a list of pallet stacks.

required
object (pack_statistics)

General statistics for packing scheme.

Array of objects (entity_warning_list) [ 0 .. 70001 ] items

List of warnings. Depending on the flag calculation_settings.treat_warnings_as_errors - triggered checks are interpreted as errors or result in the removal of incorrect data from the calculation.

object (unpacked_items)

Unpacked items list.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (blueprint) [ 0 .. 70001 ] items

A product layout plan as a list of packaging locations. The first level contains a list of pallet stacks.

required
object (pack_statistics)

General statistics for packing scheme.

Array of objects (entity_warning_list) [ 0 .. 70001 ] items

List of warnings. Depending on the flag calculation_settings.treat_warnings_as_errors - triggered checks are interpreted as errors or result in the removal of incorrect data from the calculation.

object (unpacked_items)

Unpacked items list.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
Example
{
  • "tracedata": {
    },
  • "blueprint": [
    ],
  • "statistics": {
    },
  • "progress": 100,
  • "info": {
    },
  • "warnings": [ ],
  • "unpacked_items": {
    }
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string<uuid> (calculation_id)
Example: 11111111-2222-3333-4444-555555555555

Calculation identifier.

Responses

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "message": "bad task data",
  • "schema_errors": [ ],
  • "logical_errors": [
    ],
  • "warnings": [ ]
}

Data validation

Checking data before planning.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for calculation.

required
Array of objects (product) [ 1 .. 70001 ] items unique

List of products.

required
Array of objects (package) [ 1 .. 11 ] items unique

List of packages. It is obligatory to have at least one package of each type (SLOT, PALLET, MIXBOX).

object (pack_settings)

Packing settings.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 70001 ] items

List of warnings. Depending on the flag calculation_settings.treat_warnings_as_errors - triggered checks are interpreted as errors or result in the removal of incorrect data from the calculation.

Request samples

Content type
application/json
Example
{
  • "products": [
    ],
  • "packages": [
    ],
  • "pack_settings": {
    }
}

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "warnings": [ ]
}

System

System functions. Auxiliary functionality common to all services.

Checking the availability

Checking the service availability.

Responses

Response Schema: application/json
health
required
number<double> [ 0 .. 1 ]

Current health.

Response samples

Content type
application/json
{
  • "health": 0.999
}

Getting the service version

Getting the service version.

Responses

Response Schema: application/json
major
required
integer<int32> [ 1 .. 100 ]

Product version. Within a single version, compatibility of common data structures between services is guaranteed. A version change indicates changes that are incompatible with previous versions of the product (and all services).

minor
required
integer<int32> [ 0 .. 111 ]

Minor version of the service. A version change indicates new functionality. The update is backward compatible with the major version of the service.

build
required
string [ 1 .. 64 ] characters

Build version.
Contains backwards compatible bug fixes and docs update.

Response samples

Content type
application/json
{
  • "major": 4,
  • "minor": 4,
  • "build": "1754RC"
}

Getting the documentation

Getting the file with this service documentation.

path Parameters
filename
required
string [ 6 .. 128 ] characters
Example: file_en.html

File name.

Responses

Response Schema:
string (file_html)

File with data in HTML format.

Response samples

Content type
application/json
{
  • "resource_id": "resource_id",
  • "detail": {
    }
}