Skip to content

Orders

Hyvä POS is in closed beta

Hyvä POS is currently in a closed beta (pilot phase) with a small group of merchants. It is not yet generally available: the App Store release follows the pilot, and features and configuration may still change - possibly in backwards-incompatible ways - before the general release. Want to take part? Sign up at hyva.io/pos.

The Orders tab shows every order of the store - online and in-store - live from Magento's order API. Browsing reads; nothing is written until the cashier takes an action, and every action lands as a regular Magento operation your admin, ERP and reporting already understand.

Search and Filters

Search covers order number, customer email and customer name. Filters and sorting:

  • Status - multi-select across your order statuses.
  • Pickup - a pill that narrows the list to in-store pickup orders (and becomes the classified queue on PRO, below).
  • Customer, date range, has-discount, has-tax - for narrowing down "that sale last Tuesday".
  • Sort by date, total or order number.

Recently fetched orders are cached on the device, so when the connection drops the list keeps working: search, the status filter and sorting run against the cache, while the customer, date and amount filters need the connection.

Order Detail

Opening an order shows the full record:

  • Lines and totals - items, quantities, discounts, tax, grand total.
  • Payment - method and payment details as Magento recorded them.
  • Addresses - billing and shipping.
  • Documents - invoices, shipments with tracking, credit memos, and POS refund receipts, each expandable to its own detail view.
  • Status history - every comment and state change, including the audit comments POS actions write.
  • Pickup banner - pickup orders show their current state (awaiting stock, ready, picked up) at the top.
  • Returns (RMA) - their own section on PRO.

The app also knows which orders came from a register: POS orders carry their origin in the payment metadata, and only those offer register actions like receipt reprint - a web order can never accidentally be "refunded from the drawer".

Order Actions

From the detail view the counter does real order work, not just reading:

  • Add Comment - a note into the order's status history, visible in the Magento admin.
  • Resend Email - the order confirmation or the invoice email, with an editable recipient for the guest who mistyped their address at checkout.
  • Ship with carrier - create a shipment with carrier and tracking number, for all items or a subset. Covers fulfilling a web order from the store and recovering an order whose automatic shipment failed.
  • Refund - a credit-memo refund against the order, described on the returns page. If a refund was started but never settled, Finish Refund and Abort Refund tiles take its place so nothing hangs half-done.
  • Reorder - the same items into the current cart for a repeat purchase.
  • View Receipt - reprint or resend the receipt of a POS-origin order.

Refunds respect the staff refund permission. On PRO, the standalone refund tile can be hidden from global settings for merchants whose refunds run through an external RMA module, and two actions are added: Process Return (the staged RMA workflow) and packing-slip printing on shipments.

Buy Online, Pick Up in Store

A customer who ordered online walks in to collect. Find the order, hand over the goods, tap Complete Pickup. The completion:

  • records who collected - prefilled with the order's customer, editable when a delegate collects - plus an optional comment ("ID checked");
  • creates the shipment if none exists yet, so Magento deducts the stock;
  • appends the handoff to the order's status history;
  • offers a per-pickup email confirmation toggle (on by default) - turn it off when the customer is standing at the counter and doesn't need the extra paper trail.

Handover works on the free tier: the register creates a standard Magento shipment and records who collected in the order history, and Magento closes the order once every line is shipped. Two parts of the completion need the PRO module, which owns the server-side completion route:

  • the shipment is booked against the terminal's location source. A free register has no location, so Magento picks the source by its own rules;
  • the order is flipped to a post-pickup status you configure per location, and the email is the dedicated pickup confirmation. On the free tier the toggle sends Magento's shipment email instead.

When completion fails because stock is not assigned to the location's source, the app names the SKUs and links straight into stock management to fix it, so the customer is not kept waiting on an admin round-trip.

On PRO, a not-yet-shipped pickup order can also be canceled from the same screen: the reserved stock is restored, and the required reason lands in the order history.

The Pickup Queue

On PRO, with the terminal bound to a location, the Orders tab's pickup pill becomes a classified queue scoped to the location's stock source. Magento classifies every open pickup and each row wears its state as a badge:

  • Ready for Collection - every line has stock at the location's source.
  • Awaiting Stock - at least one line is still short.
  • Stale - awaiting stock for more than two weeks; the orders someone should chase.

The cashier switches slices per lookup. Which slice the tab opens with is Settings → Checkout → Pickup Queue → Default Pickup Filter; the same default can be set centrally in Stores → Configuration → Hyvä → POS and locked. Locked, the Magento value always wins; unlocked, it only fills the gap until the cashier picks a slice themselves.

What Makes an Order Ready

Nobody flips a pickup to ready - the queue computes it, live, on every fetch. An order is ready when the location's stock source holds enough on-hand quantity for every line still awaiting handover; otherwise it is awaiting stock, and after 14 days of waiting it becomes stale so old promises stop hiding in the list. There is no admin action, no cron job and no button: receive the goods in Magento - a purchase-order receipt, a source transfer, a stock correction - and the order shows ready the next time a register fetches or polls the queue.

Because readiness is a computed answer rather than a stored event, no automatic "your order is ready" email exists in the POS flow - the customer email fires at completion, when the goods are handed over. Ready-time notification is Adobe Commerce's notify-ready flow, which the queue respects: lines already shipped through it count as handed over.

The Dashboard Pickup Tile

The register dashboard's Pickup tile can carry a live ready-for-collection count. Enable Check for New Pickups under Settings → Checkout → Pickup Queue and pick a Check Interval - every 1, 2, 5 or 15 minutes. Polling is strictly opt-in and only runs while the dashboard is on screen, so a fleet of registers does not quietly poll the store all day. Tapping the tile lands straight on the ready slice, and completing a pickup refreshes the count.

Refund an Online Purchase In-Store

Someone bought online and the product arrived damaged? Refund them at the counter against the original order, exactly like a return of an in-store sale. One system means the channel where a sale happened never limits where you can make it right.

Where It's Configured

What On the register In the Magento admin Which wins
Default pickup-queue slice Settings → Checkout → Pickup Queue Stores → Configuration → Hyvä → POS, lockable (PRO) Magento when locked; otherwise the cashier's choice
Pickup polling + interval Settings → Checkout → Pickup Queue - Device, always opt-in
Post-pickup order status - Per-location fulfillment settings (PRO) Magento, always
Built-in refund tile - Stores → Configuration → Hyvä → POS (PRO) Magento; shown by default

PRO

PRO adds the staged RMA workflow, the classified pickup queue with its dashboard tile, pickup cancellation, special orders with backorder-and-pickup-later lines, and shipping labels from the cash drawer.