Take pickup orders
Customers order from your website’s menu and pick up at a time they choose. Take it all when they order, or a deposit now and the rest at pickup.
Pickup orders are on once your menu has dishes. Customers pick dishes and a pickup time on your Menu page and pay by card. We suggest a deposit for big orders: set the share under Schedule, Tables, Pickup orders, and the rest goes on the same card when you tap Picked up. Without payments connected, they pay when they pick it up. Once an order is paid, or when you take it yourself, it shows under Coming up and in Orders with its pickup time and any note, and you get a notification. An order still waiting on the card shows in neither. Cancelling an order refunds what they paid online.
For agents
Turn pickup on or off and set the deposit with restaurant.setPickup (on, depositPercent 1–99 or null for all of it now). Customers order with restaurant.order (items of {productId, quantity} from restaurant.menu, pickupAt from restaurant.pickupTimes, an optional note, an optional requestId to retry safely). Each order is a commerce sale, and its order (orderId, null while it waits for the card) is in commerce.orders with pickupAt. List pickups by time with commerce.pickups (from, or agreementIds). restaurant.pickedUp (orderId) charges the rest on the saved card, marks the order picked up and waits for the owner’s OK; restaurant.cancelOrder (orderId) ends the sale, refunds and cancels the order.