Stock dispositions & UATFs

Context

Stock disposition is used to track tempory stocks types, which can serve to flag temporarily unavailable units, or flag unites as undergoing a specific operation. Stock with dispositions can be deducted in stock queries, making unites unavailable in stock exports https://onestock.atlassian.net/wiki/spaces/DOCUMENTAT/pages/357007377/Stock+queries#Deductions.

The acronym UATF stands for 'Unable to Fulfill', indicating that the store has temporarily unavailable stocks during order preparation.

Setting up dispositions

Adding a new disposition

You can define your own stock dispositions and give them the name you want. Each disposition has a key and a linked attribute.

The key is just an identifier, which is not meant to be displayed. You will see in the next paragraph how to define translations to have a name ready for display, in each language.

By default, the linked attribute can be set to: in_stock or not_in_stock. These attributes are referenced in stock queries, to allow to easily deduct all dispositions marked as not_in_stock.

Keys and attributes are configured in the backoffice, both from Configuration > Stock > General stock parameters and Configuration > Store App > General Settings > UATF Reasons

image-20241021-133859.png

Adding backoffice translations

To display a clean disposition name in the backoffice, you need to define a translation.

To do so, you need to add a backoffice translation for a new translation key: this key must be stock.dispositionTypes.<disposition_key> Replace <disposition_key> by the key you defined earlier for your stock disposition.

Here is the instruction to add a backoffice translation key: https://onestock.atlassian.net/wiki/spaces/DOCUMENTAT/pages/226492426/Translations#Add-a-new-translation-key

Setting up dispositions proposed in the Store App

Dispositions are also utilized to flag “unfulfillable” lines in the Store App. In situations where a product line cannot be prepared at the store due to either insufficient available stock or defective remaining stock, dispositions can be implemented to mark the line and make it unavailable.

You may decide to propose all the stock dispositions you defined before, or propose only some of them in the Store App (and for example, use the others only for warehouse stock dispositions).

“Unfulfillable” reasons are those flagged as Store App enabled, this change can be donde both from Configuration > Store App > General Settings > UATF Reasons or Configuration > Stock > General stock parameters

image-20241021-134607.png

 

The configuration page displays all dispositions already configured in the stock page (above section). If you want to add a new stock disposition, you first have to add it the the Stock configuration (see paragraphe above).


For each stock disposition, you can define:

  • comment:

    • No comment: the user that marks the item as unavailable with this reason will not have the possibility to add a comment.

    • Optional comment: the user that marks the item as unavailable with this reason can add a comment to explain why it is unavailable.

    • Required comment: the user that marks the item as unavailable with this reason must add a comment to explain why it is unavailable.

  • Store App Enabled:

    • if enabled, this reason will be proposed to the users in the Store app.

    • if disabled, this reason will not be proposed in the Store app.

The Store App pages that support marking items as unavailable are the preparation pages, that is: pack, pack_scan, bag, bag_scan and picking.

From the Store App, we limit the number of declared unavailabilities to 1000 for each article. If this value is exceeded, an error will occur.

Adding store application translations

To display a clean disposition name in the Store App, you need to define a translation.

To do so, you need to add a Store app translation for a new translation key: this key must be uatf.<disposition_key> Replace <disposition_key> by the key you defined earlier for your stock disposition.

Here is the instruction to add a Store app translation key: https://onestock.atlassian.net/wiki/spaces/DOCUMENTAT/pages/226492426/Translations#Add-a-new-translation-key

Displaying unavailable stocks

In the backoffice, in the page Stocks > Unavailable items, you can see all piece groups in the state uatf.

See https://onestock.atlassian.net/wiki/spaces/DOCUMENTAT/pages/688145/Stock#Unavailable-articles for more details.

You can also delete it to make this stock available again.

Any Stock disposition created without a piece group will not be shown in the back office.

Manipulating Stock Disposition

API

Dispositions can be declared through the API without using the store app. For example, you can declare “unfulfillable” lines in a scenario where a warehouse that doesn’t have a Store App notifies that some lines are “unfulfillable”.

https://developers.onestock-retail.com/paths/stock_dispositions/post

Piece group

A piece group is an internal entity used in the store app. It can be used to create stock disposition using its state uatf.

Create disposition

In the transition from its initial state fulfillable to uatf, the action notify_uatf creates as many stock disposition as the piece group quantity.

DIY

CODE

action_after: - type: notify_uatf

Delete disposition

The disposition is removed during the opposite transition from uatf to fulfillable.

DIY

CODE

actions_after: - type: notify_uatf parameters: decrement: true

Automatically delete disposition

To automatically delete a disposition, the corresponding piece group should automatically go to fulfillable. This can be achieved by using notifications, as a notification will be automatically triggered after the programmed delay. The notification used in the action send_change_state_notification is change_state and can be configured in Configuration > Outbound messages > Notifications.

DIY

CODE

actions_after: - type: send_change_state_notification parameters: enable: true to: fulfillable

What occurs when stock is marked unavailable in the Store App?

Default Action

By default, declaring a disposition in the store app results in the entire order being instantly unclaimed.

Partial Unclaiming

To declare a disposition without unclaiming the order, you can enable partial unclaiming. In this scenario, only the unavailable line_item_groups will be unclaimed after completing all operations on the current page.

Enable Partial Unclaim Per Stock Location - Recommended

It is recommended to activate partial unclaiming for a selection of store app pages for specific stock locations using the unclaim_policy_partial tag. Simply select the pages from the dropdown menu.

Enabling partial unclaim per Store App page scope - Not Recommended

The recommended approach is to activate partial unclaims per stock location thanks to the unclaim_policy_partial in the stock location page.

To enable partial disposition at a page scope, go to https://admin.onestock-retail.com/c00/config/store_app/entry/general_settings in advanced configuration.

The possible values for unclaim_policy_partial are pack (for pack and pack_scan), bag (for bag and bag_scan and picking.