# Order modification

The order modification feature allows users to adjust both original order details and process flows, enhancing flexibility and responsiveness in order handling.

To enable order modification within Backoffice, you must edit the [remote configuration](https://docs.fulfillmenttools.com/documentation/by-pillar/store-operations/remote-configuration) and set the `PROCESS_DETAILS_EDIT_ORDER_ENABLED`. You'll then need to add the required permission. The general permission `ORDER_LINEITEM_WRITE` can be used, or you can add more granular permissions. See the tables in the sectinos below to ensure that each role can only perform the specific operation it's authorized for.

## **Original order modification**

<table><thead><tr><th width="148.62109375">Action</th><th width="161.64453125">Description</th><th width="333.45703125">Conditions</th><th>Effect</th></tr></thead><tbody><tr><td><strong>Edit line items</strong></td><td>Delete items or adjust quantities to correct errors or reflect stock/customer needs.</td><td><ul><li>All associated operational entities are in the "open" state</li><li>Order line item is not attached to a <a href="../store-operations/services/custom-services">custom service</a> or <a href="../store-operations/services/bundled-line-items">bundled</a> with another item in the order</li><li>The feature is activated via the order modification configuration in the <a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#put-/api/configurations/ordermodification">REST API</a></li><li><p>Each edit action requires its own <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>:  </p><ul><li><strong>General write access:</strong> <code>ORDER_LINEITEM_WRITE</code></li><li><strong>Add item</strong>: <code>LINE_ITEM_ADD</code></li><li><strong>Delete item:</strong> <code>LINE_ITEM_DELETE</code></li><li><strong>Increase quantity:</strong> <code>LINE_ITEM_QUANTITY_INCREASE</code></li><li><strong>Decrease quantity:</strong> <code>LINE_ITEM_QUANTITY_DECREASE</code></li></ul></li></ul></td><td>Reroute order</td></tr><tr><td><strong>Add new line item</strong></td><td>Extend the order by adding additional items.</td><td><p></p><ul><li>All associated operational entities are in the "open" state</li><li>Order line item is not attached to a <a href="../store-operations/services/custom-services">custom service</a> or <a href="../store-operations/services/bundled-line-items">bundled</a> with another item in the order</li><li>The feature is activated via the order modification configuration in the <a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#put-/api/configurations/ordermodification">REST API</a></li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ORDER_LINEITEM_WRITE</code> and <code>LINE_ITEM_ADD</code> is set</li></ul></td><td>Reroute order</td></tr><tr><td><strong>Edit or add preferred date</strong></td><td>Add or change the delivery/handover date.</td><td><p></p><ul><li>All associated operational entities are in the "open" state</li><li>The feature is activated via the order modification configuration in the <a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#put-/api/configurations/ordermodification">REST API</a></li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ORDER_WRITE</code> is set</li></ul></td><td>Reroute order</td></tr><tr><td><strong>Edit custom attributes</strong></td><td>Add or change attributes to tailor orders, for example, new routing criteria.</td><td><ul><li>All associated operational entities are in the "open" state</li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ORDER_CUSTOM_ATTRIBUTES_WRITE</code> is set</li></ul></td><td>Reroute order</td></tr><tr><td><strong>Edit customer address</strong></td><td>Correct address errors. A new shipping label might be required.</td><td>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ORDER_CONSUMER_WRITE</code> is set</td><td>If a shipping label has already been generated, it becomes obsolete and must be recreated.</td></tr></tbody></table>

### Impact of original order modifications

A reroute results in the release of the inventory reservation. But an order might become unroutable if inventory is reserved for another order during the reroute process.

## **Process modification**

<table><thead><tr><th width="214.3125">Action</th><th width="195.4765625">Description</th><th width="303.25390625">Conditions</th></tr></thead><tbody><tr><td><strong>Cancel order</strong></td><td>Cancels all entities of an order.</td><td><ul><li>All pick jobs are open </li><li>No items have been picked</li><li>No shipping labels requested</li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ORDER_CANCEL</code> is set</li></ul></td></tr><tr><td><strong>Force cancel order</strong></td><td>Sets all entities to canceled regardless of processing status. Releases reserved stock. If items are already picked, manual steps are required to return items to storage and align physical inventory with system records.</td><td><ul><li>Must be enabled via <a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#put-/api/configurations/ordercancelation">REST API</a></li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ORDER_FORCE_CANCEL</code> is set</li></ul></td></tr><tr><td><strong>Carrier change</strong></td><td>Changes the carrier for the picking task. A new label must be generated.</td><td><ul><li>Ship‑from‑store orders only</li><li>Handover job is open</li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>SHIPMENT_WRITE</code> is set</li></ul></td></tr><tr><td><strong>Assign order</strong> </td><td>Assigns the order to a new facility and creates a new pick job there. Deletes existing pick jobs.</td><td><ul><li>Ship‑from‑store orders only</li><li>All pick jobs are open</li><li>No items have been picked</li><li>No labels have been requested</li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>PROCESS_WRITE</code> is set</li></ul></td></tr><tr><td><strong>Reroute order</strong></td><td>Performs new routing if the current routing isn't optimal.<br>Deletes existing pick jobs.</td><td><ul><li>All pick jobs are open</li><li>No items have been picked</li><li>No labels have been requested</li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>PROCESS_REROUTE</code> is set</li></ul></td></tr><tr><td><strong>Reroute unroutable order</strong></td><td>Re-evaluates the order against routing rules to find an optimal path. Can be executed in bulk to process multiple unroutable orders simultaneously.</td><td><ul><li>Order or articles within the order are not routable</li><li> The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ROUTING_WRITE</code> is set</li></ul></td></tr><tr><td><strong>Task reroute</strong></td><td>Enables manual rerouting of tasks. Blocks the facility previously processing the order (if activated in the settings).</td><td><ul><li>Pick job is open</li><li>The necessary <a href="../../getting-started/authentication-and-authorization/user-management">permission</a>  <code>ROUTING_WRITE</code> is set</li></ul></td></tr></tbody></table>

## Order modification events

Order modifications trigger specific events that enable tracking changes or integrating with other systems. See the complete list of [available events](https://docs.fulfillmenttools.com/documentation/by-pillar/order-management/broken-reference).

<br>
