Connect a till
Sign a till in to your store with a staff account or a device key.
Open your till
Open app.vendurepos.com. On Sign in to Vendure, choose Email and password or Device key. Use one browser tab per till: a second tab is told the till is open in another tab.
Enter your store details
Enter the store URL; a trailing /admin-api is accepted.
Enter the channel token. For staff sign-in it is optional: blank means the default channel.
For Barcode field (optional), enter the name of an existing single text
ProductVariant custom field, such as barcode, to use for scanning. Leave it blank to turn this off.
The barcode field is set when signing in; Settings shows the field you chose.
Sign in with a staff account
Choose Email and password and sign in as a Vendure administrator who can read
the channel's catalogue and settings and has TallyPosSell (plugin 0.2.0+) or CreateOrder.
Create and use a device key
You need plugin 0.2.0 or later and Vendure's React Dashboard. See Plugin setup for installation.
-
Add
'api-key'toauthOptions.tokenMethod:tokenMethod: ['bearer', 'cookie', 'api-key'], -
In the Dashboard, switch to the till's channel first. A key works only in the channel it was created in, and the dialog names that channel.
-
Go to System → API keys → New POS till key and name the key after the device. This creates or extends the
vendurepos-pos-tillrole withTallyPosSelland the reads a till needs, creates the key with that role and shows the key once. -
On the till, choose Device key, paste the key and the till's channel token, and sign in.
The till shows the key's name on receipts as Till: <name>.
Rotate or delete a key on its own page in the Dashboard.
Signing out forgets the key on that device; it does not revoke it.
A till whose key is revoked asks for a new one and keeps its cart.
Make the key button available in a pnpm project
For pnpm projects, the Dashboard build does not find the button unless its Vite
plugin points at your node_modules:
vendureDashboardPlugin({
// ...your existing options
pluginPackageScanner: { nodeModulesRoot: path.resolve(__dirname, 'node_modules') },
}),npm projects need nothing extra.
Fix a sign-in problem
See the quick start's troubleshooting steps and Troubleshooting.