> For the complete documentation index, see [llms.txt](https://docs.pakk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pakk.io/suppliers-and-purchasing/purchase-orders/stock-receipts.md).

# Stock Receipts

Once the order has been placed with the supplier and tracked through the administrative and logistics chain (which you can do easily within Pakk), the first action you normally need to do is a Receipt

We've already observed that *non dispatchable* products cannot be "received", so we can ignore those. For *non stockable* items, receipt is relatively simple - since their stock is not counted or tracked, they are simply taken off 'On Order' at product level and the line 'Received' and 'To Receive' levels update to reflect the fact that the stock has come in.

Receipt of standard, *stockable* products is slightly more complicated.

> **Remember** All stock in Pakk is tracked through the batch system. All receipts of stockable products need to be assigned a batch.

Since all trackable stock in Pakk needs to be in a batch, batches must exist in order to be assigned to a receipt. You **cannot** receive quantities of stockable products without first creating a batch and then assigning a batch reference to the receipt line.

Thankfully, the process of creating batches and receiving stock into them is greatly sped up by the "intelligent" *Receive* action.

#### Automatically Receiving Stock <a href="#automatically-receiving-stock" id="automatically-receiving-stock"></a>

You can *Receive* a Purchase Order by using the action button on its drilldown page. *Receive* covers the most common workflow and can be supplemented by manually creating/editing receipts. It makes the following assumptions:

* that all previously unreceived stock is being received
* that it is being received in a single 'receipt'
* that the full quantity of each line is being received

Of course, you can always use the *Receive* action to get 90% of the way there and then do some manual tweaking of individual *receipts* and/or *receipt lines* if not all stock was received as expected.

*Receive* does the hard work of creating batches for you, behind the scenes. Batches are created with a simple code based on the SKU of the product and timestamp and an optional expiry date is added if you supply one when executing the action. If you don't supply one, the system will assume that your products have no expiry date.

> **Expiry Dates** When running the *Receive* action, quite a few batches might be created in the backgound, but you are only asked for one expiry date before executing the action. This expiry date will be used on **all** created batches. You can always go into the batch records afterwards and tweak the expiry dates if they are different for each product.
>
> **What if I don't track batches?** Then just ignore the batch system! Stock quantity is 'aggregated' up to product level, so you can always see product availability directly on a product record with ease. The batch system will always be there in case you need to track stock at a more granular level.

Of course, the *Receive* action will not create batches for *non stockable* products and will ignore *non dispatchable* products completely.

#### Manually Receiving Stock <a href="#manually-receiving-stock" id="manually-receiving-stock"></a>

Of course, if necessary, you can create manual receipts directly on the 'Receipts' tab of Purchase Orders. Just select the products that have been received and choose batches for stockable products (these must exist first). This can be useful if, say, only a very small part of an order has been received.

#### Received Status <a href="#received-status" id="received-status"></a>

As mentioned above, Purchase Order lines reflect the 'Received' and 'To Receive' quantities as receipts are logged. Once all lines that can be received are received, you will see a zero quantity in the 'To Receive' field of each line and the order status will be `Fully Received`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.pakk.io/suppliers-and-purchasing/purchase-orders/stock-receipts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
