Medusa’s New Feature: Order Editing
Tags: showdev, javascript, programming, opensource
Published: 2023-01-25 14:13:55

[Medusa](https://medusajs.com/) is happy to announce Order Editing and Payment Collections as the latest additions to the Order API, strengthening one of the most critical parts of any commerce application. This is an essential step in our mission to deliver commerce building blocks that developers can use to create bespoke digital commerce experiences without reinventing core commerce functionality.

{% embed https://github.com/medusajs/medusa %}

The Order Editing and Payment Collection features solve the problems faced when businesses need to change already placed orders. Systems that rely on order data, like fulfillment and accounting systems, will have to be updated, and payment discrepancies may arise. These updates and discrepancies often require error-prone, manual work. 

Medusa’s new capabilities offer a simple and worry-free approach to creating order edits while giving your customers the best experience.

## How Order Editing Works

The Order Edit flow consists of three simple steps:

1. Select the changes you wish to make.
2. Ask the customer to confirm your changes or, as an admin, force a confirmation.
3. See the order edit merged into the order and continue managing your order as usual.

<video controls="controls">
 <source src="https://medusajs.com/videos/order-editing.mp4" type="video/mp4" />
</video>

Editing orders in Medusa allows you to update, add and remove line items on already placed orders with a few easy steps.

Helpful timeline events ensure that you and your team have visibility to understand the order’s history and assist customers with questions about their orders.

To learn more about how we designed Medusa’s order editing capabilities, check out [this article that dives deeper into the solution](https://medusajs.com/blog/git-inspired-order-editing-feature/).

### Give your customers confidence and peace of mind

The confirmation step is essential to the order editing flow and ensures that your customer is always in the loop about changes to their order. You can configure notifications that automatically inform customers that they must accept changes to their orders.

They can confirm their changes with simple steps and pay for potential shipping and total differences.

<video controls="controls">
 <source src="https://medusajs.com/videos/payment-collection.mp4" type="video/mp4" />
</video>

Customers can accept order edits to stay in the loop about changes to their order and pay for potential differences. 

For businesses, Medusa’s extensible API also provides a new opportunity to upsell customers and highlight products.

## New possibilities with great APIs

Everything we build at Medusa is deliberately designed to give a robust starting point while remaining open for customizations and extensions that can make Medusa truly your own. This is also the case for Order Editing and Payment Collections, where plugins and projects can now listen to a comprehensive set of new events that can act as triggers for automations and integrations.

Accounting and fulfillment plugins, for example, will be able to listen for changes to orders and update systems to ensure consistency throughout your stack. This eliminates manual work while giving your customers a fast and smooth experience.

```tsx
// src/subscribers/my-subscriber.ts

eventBus.subscribe(OrderEditService.REQUESTED, async ({ id }) => {
  const analyticsData = await getTrackingData(id)
  analyticsProvider.track("Order Edit Requested", analyticsData)
})
```

Finally, our Payment Collection API will soon expand to support broader use cases like re-authorizing expired payment authorizations and creating new payment experiences for your customers, like installments or deposit payments.

## Try it out now

We are excited to see what unique new experiences and plugins will be built with the new Order Editing and Payment Collection capabilities.

Try it out now by upgrading to the latest version of Medusa:

```bash
yarn add @medusajs/medusa@latest
```

Or start a new project:

```bash
yarn create medusa-app
```

If you’re interested in learning more about this feature, check out [this article which goes over how Git and GitHub inspired the design of the Order Editing capabilities](https://medusajs.com/blog/git-inspired-order-editing-feature/).

You can also learn more about order editing in our documentation:

- [How to implement order editing functionalities for administrators](https://docs.medusajs.com/advanced/admin/order-edit)
- [How to implement order editing functionalities in a storefront](https://docs.medusajs.com/advanced/storefront/handle-order-edits)
- OrderEdit [Admin](https://docs.medusajs.com/api/admin/#tag/OrderEdit) and [Store](https://docs.medusajs.com/api/store/#tag/OrderEdit) API reference