Customer Pickup & Gift Wrap
Configure store pickup, product-level pickup availability, location stock, and optional gift wrap.
Store pickup starts in Fulfilment settings and is enabled per product in the product editor. Gift wrap is a separate optional extra on the same settings screen. Both are off by default.
Not the same as Warehouses
Pickup locations are a different thing from the warehouse addresses covered in Warehouses & Products — a warehouse is where you ship from; a pickup location is where a customer collects their order in person. A location can serve both purposes, but you configure them in two different places.
Screen: Go to Settings, then open the Fulfilment card (same location and label on both
the classic and new admin sidebar) — or go directly to /settings/fulfillment.
Toggles and the fee need Save — locations don't
The Enable store pickup toggle and the three gift-wrap controls below only take effect after you click Save next to the pickup toggle — flipping a toggle or editing the fee alone changes nothing until you save. Adding, editing, deleting, or activating/deactivating a pickup location is different: each of those saves immediately when you confirm the dialog or flip the row's Active switch, with no separate Save step.
Customer pickup
Turning it on
The Enable store pickup toggle at the top of the page is the master switch. It's off by default. Turning it on doesn't show anything to customers by itself — you also need at least one pickup location (below) before the pickup option appears at checkout, and you need to click Save for the toggle itself to take effect.
Managing pickup locations
Once pickup is enabled, the Pickup locations list becomes a full manager:
| Field | Notes |
|---|---|
| Location name | A label customers will recognise — e.g. "Main Store", "Warehouse Pickup Counter" |
| Address | Free-text — the full address a customer needs to find you |
| Latitude / Longitude | Optional — decimal coordinates, for a future map view |
| Pickup hours | Optional free text — e.g. "Mon–Sat 10am–7pm" |
Use Add location to create one, the pencil icon to edit, and the trash icon to delete (a confirmation dialog checks first — deleting removes it from checkout immediately). Each location also has its own Active toggle — switch a location off temporarily (during a move, for example) without deleting it.
Manage pickup stock by location
Each pickup-location row also has an inventory icon whose accessible name is Manage pickup stock. Use it when the same product has a different on-hand quantity at each collection point.
Open the location's stock dialog
Go to Settings → Fulfilment and save Enable store pickup as on. Under Pickup locations, find the location and select Manage pickup stock. The dialog title includes that location's name, so check it before entering quantities.
Find the product
Use Search products. Results are loaded 10 at a time; use Previous and Next and check the Page N of M indicator for a larger catalogue. A search with no match shows No products match this search.
Enter its location quantity
The table shows Product, SKU, and Quantity. Enter a whole number of zero or more. The current Admin dialog records base-product stock only; individual variants do not have separate rows here. That base row is the fallback for any variant that does not already have an exact variant allocation. Enter 0 to clear a quantity. A pickup-inventory row cannot be deleted.
Save only what changed
Save remains disabled until at least one valid quantity differs from its loaded value. Saving sends only those changed products, so browsing to another page does not rewrite untouched stock. On a complete save, the dialog reports how many product quantities were saved.
If only some rows save, the error gives a saved/requested count followed by the failed products and reasons. Leave the dialog open, correct those failed quantities, and select Save again; rows that succeeded are already treated as saved and are not resent unless you change them.
Enable pickup for a product
Finish the store-level setup
Go to Settings → Fulfilment, save Enable store pickup as on, and keep at least one pickup location active. Enter the product's quantity with Manage pickup stock on each location that should offer it.
Turn on the product switch
In the new admin, go to Products → Add product / Edit → Selling features → Store pickup. Turn on Store pickup, select Done, then select Save product. This switch is saved with the product and can be configured during creation. In the classic theme, create the item from Inventory → Add Product → Fulfillment & shipping, turn on Store pickup, then finish the inline Save product flow. To change an existing item, go to Inventory → Edit Product → Fulfillment & shipping, change Store pickup, then select the dialog's main Save. The classic checkbox remains available even when carrier-specific shipping controls are hidden. The product switch starts disabled on a new product, and its saved value controls whether the storefront can offer pickup for that product.
Check the customer page
Open the saved product on the storefront. The pickup block says Available for pickup at N stores when any active location has stock, or Not available for pickup right now when the active locations are out of stock. Each location is labelled In stock or Out of stock.
When the shopper selects a different variant, the block may reload. Availability uses an exact variant allocation when one exists; otherwise it falls back to the base-product quantity managed by the current Admin dialog. Admin does not provide separate per-variant pickup-stock controls in this release.
Why don't customers see Store pickup at checkout?
First confirm Enable store pickup is on and saved in Settings → Fulfilment, and that at least one pickup location has Active on. Then check every product in the bag: checkout offers pickup only when every item has its product-level Store pickup switch on. One delivery-only product hides the pickup controls for the whole bag. If the customer had already selected pickup, adding that item switches the bag back to delivery, clears the chosen location, and shows Store pickup isn't available for everything in your bag, so this order will be delivered. The note appears in the cart, cart drawer, and checkout. It clears automatically when the bag becomes pickup-eligible again. If the option is visible but a location cannot fulfill the order, use Manage pickup stock to confirm that location has enough stock for each cart quantity.
Why did my customer's order switch from pickup to delivery?
The customer added a product whose Store pickup switch is off after already choosing pickup. The bag must remain eligible as a whole, so the storefront changed Pick up in store back to delivery, cleared the old location, and explained the change. Remove the delivery-only item or turn on and save that product's pickup switch; after the bag response is eligible again, the explanation clears and the customer can choose pickup again.
Why can't I see the stock action?
Confirm the page-level Enable store pickup switch is on and saved. When that master switch is off, the pickup-location manager and its stock action are disabled. The row's Active switch is separate: an inactive location disables Manage pickup stock and shows Activate this pickup location to manage its stock. Turn Active on before entering that location's quantities.
Two empty/disabled states
Turn pickup on with zero locations added and the list shows an empty state prompting you to add one. Leave the master toggle off and the list shows a different, disabled message telling you to turn on pickup first — either way, customers never see a pickup option they can't actually use.
What the customer sees
On a pickup-enabled product, customers first see the per-location availability described above. The cart offers Pick up in store only when every item in the bag has Store pickup on; the control is hidden for a mixed bag. Adding a delivery-only product after choosing pickup immediately switches the bag back to delivery, clears the location, and shows Store pickup isn't available for everything in your bag, so this order will be delivered. The note also appears if the shopper has already reached checkout, and clears after the bag becomes pickup-eligible again. When pickup remains eligible, choosing Pick up in store shows the active locations. If exactly one eligible location is returned, it is selected automatically; checkout therefore opens with that location already chosen. With multiple locations, the customer chooses one.
Each returned location is also checked live against the items already in the cart: a location that doesn't currently stock every cart item there shows disabled with Not in stock at this location for your cart and can't be selected. An unavailable location is never the one auto-selected when only one is returned. If every returned location is unavailable for the cart, pickup withdraws automatically — the same as a mixed pickup/delivery-only cart — and the customer sees Store pickup isn't available for everything in your bag, so this order will be delivered., with delivery used instead. At order placement, the service checks every product again, the chosen location must still be Active, and that location must have enough pickup stock for every ordinary, non-preorder line. Checkout reserves and reduces the effective location row — the exact variant allocation when present, otherwise the base-product row — inside the order transaction. If stock changed first, the order is rejected instead of overselling. Preorder lines keep their separate preorder stock rules.
Their choice carries through to checkout: shipping cost is set to zero and the courier rate-shop step is replaced with a summary card confirming the location they picked. The order confirmation and order detail pages show that same pickup location instead of a shipping address.
What the customer sees when an order is ready
When staff select Ready for pickup on the order in the POS Orders screen (Pickups tab), the order keeps its normal Processing status; readiness is a separate marker. The customer's order detail page and order tracking page then show a Ready for pickup notice at the top, and the same notice appears above the status timeline on the tracking page. If the order has no captured payment (an unpaid Pay at shop order), the notice adds Pay at the shop counter when you collect your order. No online payment needed now.
The notice disappears when the order is handed over, and it is not shown on a cancelled or refunded order's timeline. Readiness never means paid: the customer still pays at the counter, and staff cannot hand over a Pay at shop order until it is paid. The customer's order list can still show Processing for a ready order; only the order's own pages carry the notice. To tell a customer their order is ready, use the notice together with a message from you, because marking ready does not send one.
Taking payment on a Pay at shop pickup
When a customer chose Pay at shop, staff collect on the original order from the POS Orders screen (Pickups tab): select the order, then pick Cash, UPI, Card or Split payment under Counter payment. UPI on a pickup is always a manual check. The sheet is titled Manual UPI fallback, shows the store name and the amount, and has no QR code; ask the customer to pay the store by UPI, check your bank app for the amount, optionally enter the last 4 digits of the reference, then select Received. A connected UPI gateway or card terminal is not used for pickup collection. See Pickup Collection for the full counter flow.
If the store has no UPI ID saved, selecting Received closes the sheet and shows The store UPI ID is not set up yet. Ask the owner to add it in settings, or take cash or card. Cash and card stay usable on the same order.
Gift wrap
In the same Fulfilment page, below pickup locations:
| Setting | What it does |
|---|---|
| Enable gift wrap | Master toggle — off by default. Lets customers add gift wrap to their order at checkout. |
| Gift wrap fee | A flat amount (0 or more) added to the order total when a customer chooses gift wrap. |
| Allow gift message | A second toggle, only usable once gift wrap is enabled — lets customers add a short personal note (up to 200 characters) printed with the gift. |
Customers see the gift-wrap toggle both in their cart and again in the checkout order summary, so they can turn it on right up until they pay. The fee — computed by BillionBiz from your saved setting, not sent by the customer's browser — appears as its own line in the order total the moment gift wrap is selected.
The fee is set server-side
The gift-wrap fee your customer is charged always comes from your current setting on this page, not from anything the checkout page sends — so changing the fee here takes effect on the next order immediately, and a customer can't manipulate what they're charged.
On the order
Once an order includes pickup or gift wrap, that shows up wherever you review the order:
- A Store pickup tag and the pickup location's name/address. Appointment (booking) orders never carry this tag or a pickup location, even though they are stored with a pickup fulfilment method: nothing is collected from a shelf, so their Channel column and order-detail header show a Booking chip instead.
- A Gift wrap tag, the customer's gift message (if they left one), and the gift-wrap fee as its own line in the order totals.
Both show up the same way on the classic and new admin sidebar. See Order Detail: Status, Cancellation & Fulfilment Handoff for exactly where each of these appears on the order screen.
Troubleshooting
Customers don't see a pickup option. Either Enable store pickup is off, you haven't clicked Save after turning it on, there's no active pickup location, or at least one product in the bag has its Store pickup switch off. A location with its row-level Active toggle off doesn't count, even with the master toggle on. See Troubleshooting & FAQ for the full recovery steps.
A pickup location the customer wants is greyed out, or pickup disappears entirely. This is expected when that location — or every one of your active locations — has run out of stock for something in the customer's cart. It's the same per-location stock check the order-placement step already enforces, shown earlier so the customer doesn't pick a location that would be refused at checkout. Restock the item at that location so it covers the cart's quantity (Settings → Fulfilment → Pickup locations → Manage pickup stock on that location), or the customer can remove or reduce the out-of-stock line themselves — either clears it, since the check re-runs live.
A customer says their order is ready but still sees "Processing". In the order list the status chip stays Processing. Ask them to open the order (order detail or tracking page): the Ready for pickup notice shows there only after staff marked the order ready on the POS Orders → Pickups card, and only while the order is still pending, confirmed or processing. If the notice is missing on the detail page too, check on the POS Pickups card that Ready for pickup was actually selected and that the card does not show Already updated on another device. Reload orders.
The order shows a "Booking" chip, not "Store pickup". This is expected for appointment orders: they are not collected from a pickup location, so the Store pickup tag and pickup-location row only appear on ordinary pickup orders.
Staff cannot take UPI through a QR on a pickup order. Pickup collection is manual by design: use UPI, check the bank app, then select Received. If the sheet instead reports that the store UPI ID is not set up, the owner needs to add it in POS settings, or take cash or card.
Customers don't see gift wrap. Enable gift wrap is off, or you edited the toggle/fee but didn't click Save. The gift-message textarea additionally needs Allow gift message on — it stays hidden even with gift wrap enabled if that second toggle is off.
Next steps
- Order Detail: Status, Cancellation & Fulfilment Handoff — where pickup and gift-wrap details appear on an order.
- Warehouses & Products — the separate concept of where you ship from.
- Troubleshooting & FAQ — recovery steps if pickup or gift wrap isn't showing up as expected.