To create a Notion order form, build an Orders database with properties for the customer, product, quantity and delivery details, add a Form view, and share its link with customers. Each order is saved as a new row. A Formula property then works out the total, and a Status property tracks the order from new to delivered.
The form records orders. It doesn’t take payment.
What a Notion order form needs to collect
A Notion order form needs four kinds of information: who’s ordering, what they want, how they’ll pay and the terms they agree to. That’s the list on Notion’s own order form templates page: customer information, product details with quantities and prices, a payment section, and terms covering returns, cancellations and delivery timelines.
The same page warns against overly complex fields and forms that break on phones, so keep it short. These questions cover it, with the property behind each:
| Question | Notion property | Notes |
|---|---|---|
| Your name | Title | Required |
| Required, for the confirmation | ||
| Phone | Phone | Optional, for delivery issues |
| Product | Relation (to Products) | Pulls in the price |
| Quantity | Number | Required |
| Delivery address | Text (long answer) | Skip for pickup-only shops |
| Needed by | Date | When they want it |
| Notes | Text | Custom requests |
| I agree to the terms | Checkbox | Link the terms in the description |
Order number, status and total stay off the form. Your team or Notion fills those in.
Setting up the Orders and Products databases
The cleanest Notion order setup uses two databases: Products, with one row per item and its price, and Orders, with one row per order. A Relation property links each order to the product it’s for, so prices live in one place.
Products database:
- Name (Title)
- Price (Number, formatted as currency)
- Active (Checkbox), so you can hide sold-out items
Notion’s property reference says a Number property can be formatted as currency, which keeps prices readable.
Orders database:
- Customer name (Title), Email, Phone
- Product (Relation to Products)
- Quantity (Number)
- Order no. (ID), which Notion numbers automatically and nobody can change
- Ordered (Created time)
- Status (Status): New, Confirmed, In progress, Ready, Delivered, Cancelled
- Payment (Select): Unpaid, Invoiced, Paid
Notion’s status tags fall into three groups: To-do, In Progress and Complete. Put New and Confirmed under To-do, In progress and Ready under In Progress, and Delivered and Cancelled under Complete.
Calculating the order total with a formula
A Notion order form can’t show a running total to the customer, but the Orders database can calculate one the moment the order is saved. You need two properties.
- Unit price (Rollup). Choose the Product relation, the Price property, and the Sum calculation. Notion’s relations and rollups guide describes Sum as adding up the numeric properties of related pages. With one product per order, that’s its price.
- Total (Formula). Enter
prop("Unit price") * prop("Quantity").
That’s the same pattern as the examples on Notion’s formula syntax page, such as prop("Average cost") * 12. If you open the formula editor from an order row, the formulas guide says you’ll see a live preview of the result, which is the fastest way to check it.
To show the total as money in a text field, such as an email template, wrap it: formatNumber(prop("Total"), "usd", 0).
Orders with several products
Allow more than one page on the Product relation, and the Sum rollup adds up all the selected prices. Notion’s own rollup example does exactly this, adding up the prices of each item related to a customer.
That only works when the customer wants one of each. For “3 of this and 2 of that”, create an Order items database: each row links to one order and one product and has its own quantity and line total. Then roll up the line totals onto the order. Notion says you can’t roll up a rollup, so make the line total a formula, not a rollup.
Building and sharing the form
You build the order form as a Form view on the Orders database. Click + next to the views, choose Form, and add one question per property from the table above. Notion’s forms help page says each question is connected to a property, and its type matches the property type.
Then:
- Mark name, email, product and quantity as Required. Notion won’t accept the order without them.
- On the Product question, set a maximum number of selections. Notion supports this for relation questions, so set it to 1 if each order is for one product.
- Turn on the email copy of each submission in the Submit screen settings, so you see orders as they come in.
- Under Who can fill out, pick Anyone on the web with link.
Customers don’t need a Notion account to order. Their responses are automatically anonymous, though, so the required name and email questions are how you know who ordered. The guide to sharing a Notion form publicly covers the sharing options, and this explainer covers the account question.
Taking payment for orders saved in Notion
A Notion order form records the order but doesn’t collect money. Notion’s forms help page doesn’t mention payments anywhere, so payment happens in a separate step.
The simplest workflow for a small shop:
- The order arrives as a row with Status New and Payment Unpaid.
- You confirm stock and the date, then send an invoice or payment link from whatever you already use.
- Set Payment to Invoiced, then Paid when the money lands.
- Add a Board view grouped by Status for daily work, and a filtered view of Payment = Unpaid to chase late payers.
My take: at a handful of orders a week, the manual step helps, because you confirm details before anyone pays. At dozens a day, switch to a checkout that charges when the order is placed, and keep Notion for tracking fulfilment.
Using a form builder instead of the native form
A separate form builder makes sense when you need things the native form can’t do on your plan, such as showing a delivery address question only when someone picks delivery. Notion’s conditional logic is limited to Business and Enterprise plans.
nDBForms is one such builder. Its form writes each order straight into your Notion database, it has number, select, email and phone questions plus a Notion relation question for picking products, and its logic rules work with any Notion plan on its Pro tier. The limitation: its listed integrations are Notion and Google Drive, so you still take payment separately, and the Free plan stops at 3 forms and 100 responses a month. See how it compares on the alternatives page, or read about Notion form templates and what native Notion forms can’t do.
FAQ
Can a Notion order form take payments?
No. Notion’s forms help page doesn’t mention payments, so the form only records the order. Send an invoice or a payment link after the order arrives, and track it with a Payment status property.
Can a Notion form calculate the order total?
Not on the form itself. Add a Formula property such as prop("Unit price") * prop("Quantity") to the Orders database, and Notion works out the total on each row once the order is saved.
Do customers need a Notion account to place an order?
No, if you share the form with Anyone on the web with link. Those responses are anonymous, so make the name and email questions required.
How do I let customers order several products at once?
Allow more than one page on the Product relation, then use a rollup with Sum to add up the related prices. That works for one of each item; for different quantities per item, use a separate Order items database.