Locations
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.
A location is a physical store. It owns the address, the stock, the receipt branding, the payment configuration and the staff of that store, and pushes all of it to every register there.
Creating a Location
- Open Hyvä POS → Store Setup → Locations and add a new location.
- Fill in General: a display Name, a unique Code (lowercase letters, numbers and hyphens only - it cannot change easily later, pick something stable like
amsterdam-01), and Active. - Work through the fieldsets below, then save.
Address
Either tick Use Store View Configuration to pull the address from the website's active store view (Stores → Configuration → General → Store Information), or untick it and enter street, city, country, region, postcode and phone explicitly. The address prints on receipts (via the store-info template) and identifies the store.
VAT Number optionally overrides the store view's VAT number for this location - relevant when each branch has its own registration. Leave empty to inherit.
Magento Integration: the MSI Source Mapping
This fieldset is the most consequential one:
- Website: which Magento website the location's orders belong to.
- Inventory Source: the MSI source this store sells from and, if you use in-store pickup, the source pickups draw down. Best practice is a separate source per store, so warehouse stock and shelf stock never blur. Everything stock-related on the register - quantities shown, low-stock warnings, the pickup queue's ready / awaiting-stock classification - is computed against this source.
- Allowed Store Views: restrict which store views the registers at this location may switch to. Empty allows every store view in the selected website.
Receipt Configuration
Header, footer, logo, store-info template and placement, logo size, header display, staff-name display and format, order-number display, and the QR text and URL - the same fields as the global receipt defaults, but per location.
Every field has a Use Default Value checkbox: ticked means the location inherits the global default (including future changes to it); unticked means this location's own value wins. This is the inheritance pattern the whole form uses - override exactly the fields that differ per store, inherit the rest.
The Checkout Auto-Print switches (customer receipt, customer terminal slip, merchant terminal slip) override the same way, each independently.
POS Configuration
- Payment Methods: which tenders are available at this location's registers. Empty allows all.
- All Categories / POS Navigation Categories: with All Categories on, every active top-level category appears as a tile on the register landing page. Turn it off to pick a subset - a store that only carries part of the catalog shows only its part. Lockable chain-wide via Lock POS Navigation Categories.
- Low Stock Threshold: at or below this quantity the register warns before selling, so the shelf does not silently sell what was just bought online.
Layaway, Walk-in and Pickup
Each of these overrides its global default per location, with the same Use Default pattern:
- Layaway Configuration: minimum deposit, expiry days, cancellation fee.
- Walk-in Customer Defaults: the customer identity booked on anonymous sales at this store.
- Pickup Configuration: auto-ready for backorder and online pickups, the post-pickup order status, and the Damaged-Stock MSI Source for damaged returns at this location.
Card Payments
- Mode: Manual (cashier confirms the transaction) or Mollie (payments routed through a physical Mollie terminal).
- Enable Mollie Terminal Payments: when on, the Mollie credentials below (Organisation ID, live and test API keys, test mode) are pushed to this location's registers during onboarding. A payment terminal can be shared between the location's registers. See Mollie.
Tax Configuration
The tax address drives the register's tax calculation, and it syncs to the registers so device settings can never drift from Magento:
- Use Store Location on: the tax country, region and postcode are read from the Address fieldset above.
- Use Store Location off: capture a distinct tax-registration address - for the case where the tax registration differs from the physical address.
Get the tax country right before the first sale: it determines which Magento tax rules the registers apply.
Staff at the Location
Assign staff members to the location under Hyvä POS → Staff; their PINs and roles then work on the location's registers. Staff flagged for all locations work everywhere. See staff and roles.
Held Carts Across the Location
With shared held carts enabled, a sale parked on one register can be recalled on any register at the same location: the customer walks to whichever counter is free.
Troubleshooting
- The register shows the wrong stock numbers: the location points at the wrong Inventory Source, or the store's stock is booked on a shared source. Check the source assignment first - every quantity the register shows comes from that source.
- Receipts print the wrong address: Use Store View Configuration is on and the store view's Store Information is stale, or the store-info template references fields you have not filled in. Empty template lines drop out silently.
- Tax comes out wrong at the register: the tax country / region on the location does not match a Magento tax rule. Fix the Tax Configuration fieldset; the registers pick it up on their next heartbeat.
- A location edit does not reach the registers: same heartbeat rules as every setting - see global settings.