Inbound Process

Summary

An inbound process maps all processes around incoming goods in a store or warehouse. This can include delivery of goods but also interfacility transfers, returns or similar processes. As of now, inbound processes can only be triggered through a purchase order. > Is this correct? Whenever a purchaseOrder or a receipt is created, a corresponding inboundProcess is automatically created as well.

An overview of all inbound process can be found in the inbound view or in the inventory app. Incoming goods can be accepted via the inbound section of our inventory app. The event of checking and accepting incoming goods is represented via Receipts.

Sub-Entities

The inbound process has sub-entities, which can be created and modified as part of the inbound process, or alternatively via their own API.

Purchase Order

A purchase order is issued when new stock is ordered for a store or warehouse. It includes the following information (only not self-explanatory information is listed below):

  • orderDate: Date when the order was placed

  • requestedDate: Date when the order is expected to arrive

  • requestedItems:

    • information on IDs and quantities of ordered products (maximum of 200 items can be processed)

    • information on stock properties of requested items such as expiry date (optional)

  • cancelled: If no further deliveries are expected, a purchaseOrder can be cancelled by an admin via Backoffice or via API. This is also possible, if several items have already been accepted.

  • supplier: information on supplier of delivery (name)

Receipt

After a goods receipt was performed and goods have been accepted, a receipt is issued that adds the stock to the facility. It includes the following information (only not self-explanatory information is listed below):

  • receivedDate: Daten when the order was accepted in the facility

  • receivedItems: For each product that was announced via purchaseOrder the following information can be provided:

    • acceptedQuantity: how much was accepted

    • rejectedQuantity: how much was rejected (due to being, e.g., broken). Attention: rejectedItems are not a subset of acceptedItems.

    • comments: information relevant for that specific lineItem

    • storageLocationRef: the storage location on which the product was placed

    • stockProperties: information specific to that lineItem such as expiry date or batch number

  • comments: information relevant for that specific delivery

  • status: If a goods receipt has been started via inventory app, the status of the receipt changes to IN_PROGRESS and then to FINISHEDafter the process was completed in the app.

Status

The inboundProcess itself as well as its sub-entities can have different status. Our clients show the status that are most relevant to the user in the inbound view and in the inventory app.

StatusMeaningEntity

OPEN

Delivery has not arrived yet

inboundProcess

PARTIAL_DELIVERY

Items in the delivery were missing

inboundProcess

CLOSED

All items that were announced via purchase order have arrived (either as accepted or rejected quantity) or purchase order was cancelled.

inboundProcess

ON_HOLD

Inbound process should be paused for now. Can be set manually via Backoffice or via API.

inboundProcess

CANCELLED

No further deliveries are expected. No real status, can be either true or false. Can be set manually via Backoffice or via API.

purchaseOrder

OPEN

No functional meaning

purchaseOrder

IN_PROGRESS

Goods receipt for (one part of the) delivery has been started (via inventory app)

receipt

FINISHED

Goods receipt for (one part of the) delivery has been finished (via inventory app)

receipt

Validation in inbound process

Unit validation in inbound processes

If there is a measurementUnitKey defined for a listing that is part of the inboundProcess, each new line item in inboundProcess.purchaseOrder.requestedItems and inboundProcess.receipts.receivedItems is validated against it: All quantities MUST match the unit of the Listing.

Attention: When creating an inboundProcess with a purchaseOrder with unit "xyz" and changing the listing.measurementUnitKey to something else ("qwe") the inboundProcess.purchaseOrder must now be patched/replaced to reflect the correct unit again before a receipt can created in the inventory app. This is intentional and ensures the consistency of new stock levels in the facility. In general it is not advised to change the unit of a product in a facility without careful consideration, but in some cases it might be desired to start with no unit on the listing (= no validation) and transition to stricter rules later.

For more information on measurementUnits, click here.

Stock property validation in inbound processes

If there are stockProperties defined for a listing that is part of the inboundProcess, each new line item in inboundProcess.purchaseOrder.requestedItems and inboundProcess.receipts.receivedItems is validated against it. The validation for requested and received items behaves slightly different as we do not expect systems to know the exact properties of all items before they have arrived.

Validation for requestedItems

  • All stockProperties that are part of the requestedItems must also be defined in the stockProperties of the listing.

  • Not all stockProperties that are part of the listing must also be present in the requestedItems.

  • This means, it is allowed to create a purchaseOrder without stockProperties in the requestedItems even though the included listing has stockProperties defined.

Validation for receivedItems

  • All stockProperties that are part of the receivedItems must also be defined in the stockProperties of the listing.

  • Not all stockProperties that are part of the listing must also be present in the requestedItems. Only stockProperties where required is true need to be present in both listing and receivedItems. This is because creating a stock without providing a value for a required property is forbidden and will fail.

For more information on stockProperties on listing, click here.

Api Documentation

Inbound Process

Purchase Order

Receipt

Last updated