A lightweight barcode/QR code scanner app for Shopify POS that verifies active memberships via Beacon CRM API.
✅ HID Scanner Compatible - Works with any barcode/QR scanner in HID mode
✅ Instant Lookup - Auto-submits on scan (Enter key)
✅ Clean UI - Shows member name, email, membership #, and status
✅ Secure - API keys kept server-side via Netlify Functions
✅ Ultra Minimal - Single HTML file + one serverless function
index.html- Main app interfacefunctions/checkMembership.js- Netlify serverless function to query Beacon CRMnetlify.toml- Netlify configuration
- Push this repo to GitHub/GitLab/Bitbucket
- Go to Netlify
- Click "Add new site" → "Import an existing project"
- Connect your Git repository
- Netlify will auto-detect settings from
netlify.toml - Click "Deploy site"
# Install Netlify CLI
npm install -g netlify-cli
# Login to Netlify
netlify login
# Deploy
netlify deploy --prod- Create a zip file of this project
- Go to Netlify Drop
- Drag and drop the zip file
- Open the deployed URL in Shopify POS browser
- The input field will auto-focus
- Scan a membership barcode/QR code with your HID scanner
- The scanner will type the code and press Enter automatically
- Member info will display instantly
- The field clears and is ready for the next scan
- Scanner in HID mode types the membership ID into the input field
- When Enter is pressed, JavaScript sends the data to the Netlify serverless function
- The function queries Beacon CRM API to lookup the member
- Results are displayed showing member status, name, email, and membership number
- Input field auto-clears and refocuses for the next scan
The app uses the following Beacon CRM endpoints:
GET /people?search=<membershipId>- Search for memberGET /people/<personId>/memberships- Check active memberships
Authentication is handled via Bearer token in the serverless function.
The API key is stored in the serverless function code. For enhanced security in production:
- Use Netlify Environment Variables instead of hardcoded credentials
- Go to Site Settings → Environment Variables
- Add
BEACON_API_KEYandBEACON_ACCOUNT_ID - Update the function to use
process.env.BEACON_API_KEY
Works in all modern browsers including:
- Safari (iOS/iPadOS for Shopify POS)
- Chrome
- Firefox
- Edge
For issues with:
- Beacon API: Check Beacon CRM API Docs
- Netlify Deployment: See Netlify Docs
- Shopify POS: See Shopify HID Scanner Guide