September 2, 2025·Product
Implement Pre-Order Functionality
Shahed Nasser

Shahed Nasser
Learn how to build a complete product pre-order system for Medusa. This step-by-step tutorial covers backend logic, automation workflows, and storefront customization.

The pre-order functionality is essential to many industries, including businesses selling merchandise, digital products, or tickets. It allows customers to purchase a product before its availability date and receive it once it becomes available. This feature helps businesses manage inventory, build anticipation, and secure early revenue.
Building Pre-Orders with a Customizable Commerce Platform
Medusa is a digital commerce platform with a built-in Framework for customization. You can extend it to build any custom feature for your business use case, including a product pre-order system. Medusa's framework makes it possible to add new data models, hook into existing flows, and automate background processes.
These capabilities are especially useful when implementing pre-orders. Developers can store custom pre-order data, create robust pre-order workflows, trigger actions when a customer places a pre-order, and automate fulfillment once products become available.
Implement Pre-orders in Medusa
Follow this step-by-step guide
Step-by-Step Guide to Implement Pre-Orders
The pre-orders tutorial in our documentation will guide developers into building the backend logic for pre-orders, with Next.js storefront customizations. The tutorial is ideal for developers looking to create a custom pre-order implementation without relying on third-party plugins.
By following the pre-order tutorial, you'll learn how to:
- Set up a product pre-order system from scratch.
- Create pre-order workflows to manage pre-order variants and create pre-orders.
- Automate fulfillment logic when pre-ordered products become available.
- Automatically cancel pre-orders when an order is canceled.
- Automatically create or cancel pre-orders based on order edits.
- Show pre-order information on the Next.js Starter Storefront.
