Vendra - POS And Inventory System PHP

Description
The POS that can't oversell.
Vendra is a complete, self-hosted point-of-sale and inventory system for retail shops, cafés, market stalls, boutiques — any store selling physical goods. Ring up sales on a fast, barcode-ready POS screen; keep stock counts you can prove are right; know your true profit; and balance the drawer every night. One-time purchase, your server, your data.
INVENTORY YOU CAN AUDIT Cheap POS scripts fall apart on stock: counts drift, overselling happens, profit numbers are fiction. Vendra ships with an automated test suite you can run yourself — 206 assertions, plus a separate race test that spawns real concurrent cashiers. Overselling is enforced at the database level, even when two cashiers sell the last unit at the same instant. Every stock change posts to an immutable movement ledger with cost, reference and user. One click re-derives every count from that ledger and proves the numbers match. Weighted-average costing captures true cost of goods on every sale line, so profit reports show real margins.
RUN THE SHOP, NOT JUST THE TILL Purchases and receiving from suppliers. Returns, partial or full, restocked at original cost and refunded from what was actually paid. Register sessions with an opening float, pay-ins and pay-outs, and a counted close with over/short. Reports on revenue, gross profit and tax by product, cashier and date range — with a Z-report PDF at the end of the day.
IT IS YOURS, DOWN TO THE PLUMBING Vendra is not a locked box. It has a REST API with revocable keys, outbound webhooks, and an MCP endpoint so an AI assistant can read your data and record sales through the same guarded checkout the till uses. Two-factor authentication and optional OIDC single sign-on. Scheduled backups with a tested restore path. A full audit log of who did what. Your own branding on receipts and PDFs. Saved views and bulk actions for the lists you open every day. Product import. Customer anonymisation for GDPR erasure requests. It installs to a phone or tablet home screen as an app, and it has a dark mode.
NEW IN 3.1 — IT CAN NOW WRITE TO THE PEOPLE YOU SERVE Email the customer their receipt through your own SMTP server. Close the drawer and the Z-report — takings by tender, the counted difference, the day's numbers — lands in your inbox, so the record exists outside the till the moment the day ends. Both ship switched off, both run on your own mail credentials, and neither can break the thing that triggered it: with no SMTP configured at all, the receipt still prints and still shows on screen.
WHY SELF-HOSTED POS SaaS charges per register, per month, forever. Vendra is bought once and runs on hosting you already pay for. Backup is one database. It never phones home.
TECH Plain PHP 8 + MySQL (SQLite also supported for instant local trials). No framework, no Composer, no build step, no external APIs. 2-minute web installer. Dockerfile included.
WHAT'S INCLUDED Full source code, web installer, 12-product sample store, Dockerfile, the engine test suite, and written guides in the download: README.md, QUICKSTART.txt, API.md and a deploy-for-a-client walkthrough. 6 months support.
HONEST LIMITS — READ BEFORE BUYING
- One shop per installation (single stock ledger, single drawer). - Vendra records card tender; it does not process cards. - No e-commerce or website stock sync. - Emailed receipts and the day-close email need your own SMTP details and ship switched off. - Barcode hardware: keyboard-wedge USB scanners work as typed input; no driver-level integration.
LIVE DEMO https://vendra.ownware.io — opens straight into the dashboard, already signed in, on a sample store. No sign-up, no password. Everything resets every hour.
Features
- Fast POS grid with category tabs and instant search; barcode-scanner ready (keyboard-wedge scanners just work) - Split payments (cash + card), quick-cash buttons, automatic change; hold and resume sales - Line discounts and whole-sale discounts, tax computed after discounts per line; integer-cents math throughout - Print-ready receipts and receipt PDFs carrying your own branding; attach a customer or sell to walk-ins - Email the receipt to the customer through your own SMTP — off until you switch it on - Day-close Z-report emailed to you when the drawer is counted, plus a Z-report PDF - Immutable stock-movement ledger per product — every in and out with type, cost, reference and user - Oversell-proof checkout enforced at the database level, proven by a parallel race test - One-click "Verify ledger integrity" re-derives every count from the ledger - Purchases and receiving from suppliers — stock and weighted-average cost update automatically - Returns, partial or full, restocked at original cost and refunded from what was actually paid - Register sessions — opening float, pay-ins and pay-outs, counted close with over/short - Reports on revenue, gross profit and tax by product, cashier and date range; dashboard with 7-day chart and low-stock list - Product import, bulk actions and saved views for the lists you open every day - REST API with revocable keys, plus outbound webhooks for your own integrations - MCP endpoint — an AI assistant can read your data and record sales through the same guarded checkout
- Two-factor authentication, optional OIDC single sign-on, invite-based user setup - Scheduled backups with a restore path, and a full audit log of who did what - Customers with anonymisation for GDPR erasure requests - Suppliers, categories, product images, and your own branding on receipts and PDFs - Installs to a phone or tablet home screen as an app (PWA) — no app store, and business data is never cached offline - Dark mode; roles for admin and cashier (POS and own register only) - 2-minute web installer, 12-product sample store, Dockerfile included
Requirements
- PHP 8.0 or newer (tested on 8.3), with the PDO extension — standard on virtually all hosts
- MySQL 5.5.3+ / MariaDB (InnoDB, utf8mb4) — or SQLite, which is bundled with PHP and needs no setup
- Any Apache or LiteSpeed shared host with mod_rewrite, or Nginx / VPS
- No Composer, no Node, no build step, no external services required
- Optional: your own SMTP server, for emailed receipts and the day-close report
- Optional: an OIDC provider, if you want single sign-on instead of local logins
- Optional: PHP's pcntl extension (CLI only), if you want to run the concurrency race test yourself
Instructions
1. Upload the contents of the app/ folder to your web root (e.g. public_html).
2. Visit your domain — the web installer opens automatically.
3. Enter database details (MySQL, or SQLite for zero setup), store name, timezone and your admin login. Click Install.
4. Sign in, add products with barcodes and stock or import them in bulk, open a register with a float, and start selling from the POS screen.
5. Optional: php bin/demo.php loads a realistic sample store (12 products, purchases, a register session with sales).
6. Optional: in Settings, add your SMTP details to enable emailed receipts and the day-close report — both stay off until you switch them on.
7. Optional: turn on two-factor authentication under Security, and issue API keys or webhooks under API settings if you are integrating.
8. Optional: set a scheduled backup, then confirm the restore path works before you rely on it. Manual alternative: copy config.sample.php to config.php and edit. Local trial: php -S localhost:8000 router.php. Full details in README.md, QUICKSTART.txt and API.md inside the download.
| Author | ownware |
|---|---|
| Category | Scripts & Code / PHP Scripts / POS |
| Price | $64 |
| Extended License | $192 |
| Likes | 1 |
| First Release | Jul 3, 2026 |
| Last Update | Sep 7, 2026 |
| Database | MySQL 5.x |
| Files included | .php, .css, .html, JavaScript .js |
| Software version | PHP 8.0, PHP 8.1, PHP 8.2, PHP 8.3, PHP 8.4 |
Categories
Tags
External listing. code.market does not sell this product and does not process payment for it. Pricing, payment, delivery, licensing, refunds, and support are handled by the third-party merchant on its own website. We may earn an affiliate commission from a referral. Details.
Products of the Week.
Submit🥇
STOP GUESSING WHAT TO POST
AI that learns your brand voice and builds a month of consistent, on-brand social content: carousels, posts and hooks that sound like you, not like everyone else's AI.
SaaS · 3,100 views · 28 clicksSaaS · Week 45 · 3,100 views · 28 clicks
🥈
Conversational Backlinks for Busy Founders
Place Backlink Relevant Conversation for your domain across Forums and Conversations
Website · 40,494 views · 216 clicksWebsite · Week 45 · 40,494 views · 216 clicks
🥉
upvote.club
Free Social Media Engagement that Helps Boost Your Content. Upvote Club supports 19 social networks with 100+ engagement actions in one dashboard. Add links to your posts and get free engagement from real users.
SaaS · 38,583 views · 110 clicksSaaS · Week 45 · 38,583 views · 110 clicks
#4
Substack Posting API
Onboard your Agent to Substack. Write Publish on Substack via API
SaaS · 57,623 views · 197 clicksSaaS · Week 45 · 57,623 views · 197 clicks
#5
Seenshot App
Free, Fast, MacOS Screenshot app. Make Screenshot cmd+shift+2 and send it via link
Desktop App · 27,055 views · 119 clicksDesktop App · Week 45 · 27,055 views · 119 clicks
#6
Hand-Placed Backlinks $9.99 per link. Flat rate.
Buy hand-placed forum, Q-A and directory backlinks. Flat $9.99 per link, no subscriptions — you only pay for approved listings.
Website · 2,992 views · 18 clicksWebsite · Week 45 · 2,992 views · 18 clicks
#7
Free Invoice Generator - PDF Invoices in Your Browser, No Sign-Up
A free invoice maker for freelancers and small businesses: fill in the invoice, check the live preview, and download a PDF that looks exactly like it. Any currency, tax per item, three templates, no sign-up, and nothing leaves your device.
1,688 views · 16 clicksWeek 45 · 1,688 views · 16 clicks
#8
Merge PDF Files Free - Combine PDFs in Your Browser, No Upload
A free PDF merger for office workers, students, and freelancers: combine PDFs and images into one file in the browser, reorder files and pages, pick page ranges, keep bookmarks, and open password-protected PDFs. Nothing is uploaded, no sign-up, no watermark.
1,580 views · 13 clicksWeek 45 · 1,580 views · 13 clicks