Import past and upcoming orders
Bring your existing bookings into OnTote when you switch over, from picking the right sheet to how imported orders affect availability.
You've got a spreadsheet of bookings and you don't want to retype them. The import wizard turns each row into an order in OnTote: past orders land as history, and future ones come in as confirmed bookings that hold inventory like any other order.
One row is one line item, not one order. Rows that share an order_reference become one order. Columns that describe the order (dates, customer, payment, address, notes) repeat on every row and must agree with each other. An order can have at most 250 lines.
Before you start
The required columns are order_reference, start_date, end_date, sku, quantity, and customer_name. The optional ones cover customer email and phone, status, unit price, amount paid, payment method, paid-on date, location, fulfillment, the delivery address columns, and notes.
If you're switching from another system, export your bookings to CSV or Excel first and work from a copy. Keep the original. You'll thank yourself if something in the file needs a second look.
Running the import
1. Open the Reservations page, open the menu behind New order ("More order actions"), and click Import. The Import orders dialog opens.
2. Click Choose a file and pick your CSV or .xlsx file. If the workbook has more than one sheet, a Sheet dropdown appears on the mapping step. Pick the sheet and the wizard re-reads it without re-uploading. A CSV only ever has one sheet, so the dropdown never appears for those.
3. Check the column mapping. The wizard guesses, and it says so: "We've guessed the columns; change anything that looks wrong." Unlike the customer and inventory imports, there are no match options to choose here: an order reference that was already imported is always skipped.
4. Review the preview. Counts are in orders, not rows: a five-line order is one order. Under the counts, a summary line reads off what the file holds, including how many are historical, how many are upcoming, likely conflicts, new customers, and orders in progress (which are rejected).
5. Click Import to bring in the orders that can go. If some can't, the banner says how many and gives you the choice: import the ones that can, or cancel and fix the file. Download the problem rows gives you a CSV of just the bad ones.
6. The result step tells you what was created, what was left unchanged, and what wasn't imported. Orders refused for inventory are left as drafts, with a link to each one.
What happens to each order
The wizard sorts orders by start date, and earlier orders in the file get first claim on inventory. The preview predicts conflicts across the whole file, so what you see in preview is what the commit does.
- Historical (cancelled, or ended before today). Imported as a closed or cancelled order with its lines, customer, and payment. It touches no holds, balances, or ledger. If the row has an amount paid, the import records one manual payment against the order.
- Upcoming (starts today or later). The wizard drafts the order and confirms it through the normal availability check. Imported future orders count against availability exactly like orders you create by hand, so a double-booked date shows up the same way it would anywhere else. If inventory refuses, only the confirm is rolled back: the order stays as a draft and the result links to it with a note saying why.
- In progress (started before today, hasn't ended). Rejected. The message tells you the two options: "This order is in progress: it started before today and has not ended. Import it as upcoming with today as the start date, or import it after it is returned."
- Already imported (the order reference exists). Skipped. Re-running the same file changes nothing, so a re-import is always safe.
Imported orders never count toward your plan's included online orders.
Things worth knowing before you click Import
- Customers are matched on live email first, then phone. No match creates a new customer. An import never edits an existing customer; the file's address columns fill in only a newly created one. If two live customers share the email or phone, the order errors instead of guessing.
- Delivery fees are not added to imported orders. The preview warns you per order.
- Money columns take at most two decimal places (12.50 or $1,250).
- A real Excel date cell imports as YYYY-MM-DD no matter how the workbook formats it. This only applies to .xlsx; CSV is read exactly as typed. Typed dates accept YYYY-MM-DD or M/D/YYYY, with two-digit years read as 20YY. Anything else, including 2/30, is an error.
- One bad row rejects its whole order: "Row N of this order has a problem, so none of its rows will import." An order with a missing line would be a different order, so none of it is sent.
- An order outside your rental period rules imports with a warning ("Outside the rental period rules. It will be confirmed with an override.") and confirms with an override.
When something goes wrong
- The Sheet dropdown never appears. The wizard only shows it when the workbook has more than one sheet. A CSV always has exactly one.
- Row N of this order has a problem, so none of its rows will import. Fix the flagged row in the file and re-import. Rows that already imported are skipped, so the re-run is safe.
- An order has more lines than allowed. "This order has N lines. An order can have at most 250." Split it across two order references.
- Not enough inventory. Left as a draft. The result step links to the draft. Open it, fix the shortfall (fewer totes, different dates), and confirm it by hand.
If the file keeps fighting you, you can skip the import and create the orders the way you always have. See Creating and editing a booking. See also: Import your customers and inventory from a spreadsheet.
Updated October 14, 2026