Vendors / Open source & self-hostable
POS Awesome
POS Awesome (ERPNext POS)
The highest-starred project in this batch (510 stars) and the deadest: the last release is Version-6-2-0 published 2024-02-09, the default branch's last commit is the same day, and the README still advertises ERPNext Version 14 support — roughly two and a half years stale with no successor fork showing meaningful traction, so listicles calling it a live ERPNext POS are wrong.
scored unknown legacy rubric
- Claims in scope
- 278
- Scored
- 45
- Assessed
- 33
- Unknown
- 245
- Not applicable
- 36
- Cells challenged
- 0
unknown, never as no.Identity
- Owner
- ucraft-com / original author's project (GPL-3.0). Not a Frappe Technologies product — a third-party ERPNext app.
- Parent
- Frappe/ERPNext ecosystem
- Who it is for
- Existing ERPNext/Frappe deployments — mostly retail, pharmacy and small hospitality, heavily used in East Africa and the Middle East — wanting a faster POS front end than stock ERPNext POS
- Site
- https://github.com/ucraft-com/POS-Awesome
Pricing
transparency: unknown · unit: free app (GPL-3.0); cost is inherited from the underlying ERPNext hosting · processor lock-in: no
- Software
- Free and open source under GPL-3.0 as a Frappe app installed onto an existing ERPNext site. No published pricing of its own; total cost is whatever the ERPNext hosting or Frappe Cloud plan costs.
Capabilities
Every claim is binary and checkable. Grades: A primary documentation · B product documentation · C pricing or feature page · D marketing claim · E third-party reporting · F inference with no source. A yes on a differentiator claim requires A or B.
Order capture & FOH workflow
order-capture-floor-plan-editor
Not scored by this record.
order-capture-seat-level
Not scored by this record.
order-capture-coursing-hold-fire
Not scored by this record.
order-capture-split-merge
Source (HEAD a86fd29): there is no check, table or seat model anywhere — a sale is a single ERPNext Sales Invoice cart, and the only order-holding constructs are held Drafts and Sales Orders. No operation divides one invoice by item, seat, N-way or amount, and none merges invoices or tables; every 'split'/'merge' hit in the code is String.split or bundled-library internals. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
order-capture-bar-tab-preauth differentiator
Not scored by this record.
order-capture-transfer-audit
Not scored by this record.
order-capture-native-handheld
Not scored by this record.
order-capture-offline-order-entry
Source (HEAD a86fd29, 2024-02-09): the Vue client has no offline layer — no service worker, no IndexedDB, no local order queue; invoice save/submit and item/customer lookups are live frappe.call requests to the ERPNext server, and the posa_local_storage toggle only caches item/customer lists for search speed. Order entry survives a WAN outage only when the ERPNext site is self-hosted on the local network, and the project publishes no statement of offline scope. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
order-capture-qr-same-check differentiator
Not scored by this record.
order-capture-kiosk-first-party differentiator
Not scored by this record.
order-capture-drive-thru
Not scored by this record.
order-capture-drive-thru-timers
Not scored by this record.
order-capture-voice-ai differentiator
Not scored by this record.
order-capture-throttling differentiator
Not scored by this record.
order-capture-scheduled-orders
Future-dated capture exists: a posa_delivery_date custom field on the invoice and, when the POS Profile enables posa_allow_sales_order, before_submit maps the cart to a submitted ERPNext Sales Order carrying that delivery date (invoice.py create_sales_order/make_sales_order). The shortfall is everything after capture: the product has no make queue at all (no KDS or kitchen printing exists), no per-channel lead time, and no computed fire time — the future order just sits as an ERPNext Sales Order document until someone acts on it. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
order-capture-catering
Not scored by this record.
order-capture-order-ready-signal differentiator
Not scored by this record.
order-capture-void-comp-controls
Not scored by this record.
Menu, modifiers & pricing engine
menu-pricing-nested-modifiers
README documents template items with variants and item bundles, which is a retail construct, not restaurant modifier groups with min/max.
menu-pricing-modifier-price-by-parent-size
The full source contains no modifier data model at all — no doctype, Vue component or field for modifier groups, toppings or option pricing ('modifier' and 'topping' appear nowhere in the code). Item customization is ERPNext template items with variants (Variants.vue), which swaps in a differently priced item code; a per-parent, per-size modifier price matrix has no substrate to exist on. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
menu-pricing-fractional-placement differentiator
Not scored by this record.
menu-pricing-half-and-half-rule differentiator
Not scored by this record.
menu-pricing-topping-quantity-tiers
No modifier or topping construct exists anywhere in the source, and there is no quantity-tier or per-tier price-multiplier logic; quantity is the plain sales-invoice line qty. Light/regular/extra/double tiering is absent from the code. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
menu-pricing-size-style-matrix differentiator
Not scored by this record.
menu-pricing-included-allowance differentiator
Not scored by this record.
menu-pricing-combos
Not scored by this record.
menu-pricing-upsell-prompts differentiator
Not scored by this record.
menu-pricing-86-propagation
Not scored by this record.
menu-pricing-countdown-auto-86 differentiator
Not scored by this record.
menu-pricing-dayparting
Not scored by this record.
menu-pricing-channel-price-books
Not scored by this record.
menu-pricing-dual-pricing differentiator
Not scored by this record.
menu-pricing-allergen-nutrition
Not scored by this record.
menu-pricing-recipe-linkage differentiator
Not scored by this record.
menu-pricing-3p-menu-push
Not scored by this record.
menu-pricing-dynamic-pricing
Not scored by this record.
Payments & money movement
payments-processor-choice differentiator
Not scored by this record.
payments-published-rates differentiator
Not scored by this record.
payments-dual-pricing differentiator
Not scored by this record.
payments-surcharge-guardrails differentiator
Not scored by this record.
payments-emv-nfc
Software-only ERPNext app with no first-party terminals; README lists Mpesa mobile payment and cash as tender modes. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
payments-softpos-tap-to-pay differentiator
Not scored by this record.
payments-pay-at-table
Not scored by this record.
payments-qr-guest-pay differentiator
Not scored by this record.
payments-tip-adjust
Not scored by this record.
payments-tip-pooling differentiator
Not scored by this record.
payments-offline-store-and-forward differentiator
Not scored by this record.
payments-offline-decline-liability differentiator
Not scored by this record.
payments-gift-cards
README documents POS Coupons, customer credit notes and referral codes, but not stored-value gift cards with cross-location balance tracking.
payments-house-accounts
Not scored by this record.
payments-split-tender
Not scored by this record.
payments-refund-void-controls
README documents returns from POS as cash or customer credit; role-gated void approval with an immutable approver audit log is not documented. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
payments-chargeback-tooling differentiator
Not scored by this record.
payments-card-on-file differentiator
Not scored by this record.
payments-payout-timing differentiator
Not scored by this record.
payments-p2pe-pci4
Not scored by this record.
Kitchen & production
kitchen-station-routing
The complete doctype list (POS Opening/Closing Shift, POS Offer, POS Coupon, Delivery Charges, Referral Code, Mpesa doctypes) and the full Vue component list contain no KDS, kitchen-printer, station or routing artifact; 'kitchen' and 'kds' appear nowhere in the source. The only print path opens a browser window on the ERPNext Sales Invoice /printview, so there is nothing to route. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
kitchen-expo-consolidation
No expo or kitchen display surface exists anywhere in the source — the product ships no kitchen screen of any kind (consistent with this record's hardware-kds: no), so there are no stations to consolidate and no bump state to track. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
kitchen-course-firing differentiator
Not scored by this record.
kitchen-prep-time-pacing differentiator
Not scored by this record.
kitchen-order-throttling differentiator
Not scored by this record.
kitchen-channel-pause-propagation differentiator
Not scored by this record.
kitchen-order-ready-callback differentiator
Not scored by this record.
kitchen-bump-bar-hardware
No KDS of any kind ships — 'bump', 'kds' and 'kitchen' appear nowhere in the source (consistent with this record's hardware-kds: no) — so there is no kitchen screen for a bump bar or keypad to drive, and no supported-models documentation exists. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
kitchen-all-day-counts
Not scored by this record.
kitchen-sla-alerts
Not scored by this record.
kitchen-printer-fallback differentiator
Not scored by this record.
kitchen-offline-operation differentiator
Not scored by this record.
kitchen-item-build-screens differentiator
Not scored by this record.
kitchen-pizza-fractional-display differentiator
Not scored by this record.
kitchen-recall-refire
Not scored by this record.
kitchen-order-modification-alerts differentiator
Not scored by this record.
kitchen-guest-ready-notification differentiator
Not scored by this record.
kitchen-waste-logging
Not scored by this record.
kitchen-speed-of-service-reporting
Not scored by this record.
kitchen-prep-forecasting
Not scored by this record.
Delivery, dispatch & third-party channels
delivery-driver-roster
'driver', 'dispatch' and 'courier' appear nowhere in the source. The product's entire delivery footprint is the Delivery Charges doctype (a fee attached to the invoice) plus the posa_delivery_date field; there is no driver entity, no clock-in/out, no assignment state and no per-driver run history. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
delivery-dispatch-board
The complete Vue surface (Navbar, Pay, ClosingDialog, Customer, Drafts, Invoice, ItemsSelector, Mpesa-Payments, NewAddress, OpeningDialog, Payments, Pos, PosCoupons, PosOffers, Returns, SalesOrders, UpdateCustomer, Variants) is cashier screens only — no dispatch or expo board, no undispatched-order view, no driver availability, no elapsed-time display and no run batching exist anywhere in the source. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
delivery-route-map differentiator
Not scored by this record.
delivery-driver-tracking differentiator
Not scored by this record.
delivery-zones-polygon differentiator
Not scored by this record.
delivery-zone-pricing
README lists a delivery charges feature, but nothing indicates address-validated zones with per-zone minimums and promise times.
delivery-address-validation
Not scored by this record.
delivery-driver-comp differentiator
Not scored by this record.
delivery-cash-reconcile
Not scored by this record.
delivery-daas-dispatch
Not scored by this record.
delivery-daas-fallback differentiator
Not scored by this record.
delivery-3p-direct-integration differentiator
Not scored by this record.
delivery-3p-injection
Not scored by this record.
delivery-menu-push
Not scored by this record.
delivery-86-sync
Not scored by this record.
delivery-store-pause
Not scored by this record.
delivery-3p-reconciliation differentiator
Not scored by this record.
delivery-injection-error-visibility differentiator
Not scored by this record.
delivery-tracking-page
Not scored by this record.
delivery-promise-time differentiator
Not scored by this record.
delivery-offline-behavior
Not scored by this record.
Digital ordering & guest-facing channels
digital-first-party-web
The only web surface the app ships is the /posapp cashier page (posawesome/posawesome/page/posapp); templates/pages is empty. There is no guest-facing ordering site of any kind in the product — no cart, checkout or menu page a customer could reach — so no first-party web ordering exists to be commission-free or branded. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
digital-menu-single-source
Structurally impossible here: the product ships no first-party digital ordering channel at all (its only web surface is the cashier /posapp page), so there is no digital menu to generate from the ERPNext Item catalog and no channel for an item edit to propagate to. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
digital-native-app differentiator
Not scored by this record.
digital-account-saved-payment
No guest-facing channel exists for an account to live on, and the source contains no tokenization or card-on-file construct ('tokeniz', saved-card and reorder constructs appear nowhere); tender is cashier-side cash, Mpesa and ERPNext payment modes. Customer addresses exist only as cashier-entered ERPNext Address records (NewAddress.vue), not a guest self-service account. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
digital-upsell-engine differentiator
Not scored by this record.
digital-scheduled-pacing
Not scored by this record.
digital-fulfillment-modes
Not scored by this record.
digital-qr-table
Not scored by this record.
digital-kiosk differentiator
Not scored by this record.
digital-group-ordering
Not scored by this record.
digital-catering-portal differentiator
Not scored by this record.
digital-voice-ai-phone differentiator
Not scored by this record.
digital-drivethru-ai
Not scored by this record.
digital-sms-ordering
Not scored by this record.
digital-google-order differentiator
Not scored by this record.
digital-apple-business-connect
Not scored by this record.
digital-loyalty-attach
Not scored by this record.
digital-subscriptions
Not scored by this record.
digital-promo-parity
Not scored by this record.
digital-guest-data-ownership differentiator
Not scored by this record.
digital-checkout-pci-sca
Not scored by this record.
digital-surcharge-transparency differentiator
Not scored by this record.
Guest data, loyalty & marketing
guest-loyalty-unified-profile
The product has exactly one channel — the in-store cashier page — so there are no first-party web/app or kiosk transactions to merge. Guest identity is the host site's ERPNext Customer record selected by the cashier, and no dedup or merge behavior exists anywhere in the source or README ('dedup'/customer-merge constructs absent). https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
guest-loyalty-thirdparty-identity-attach differentiator
Not scored by this record.
guest-loyalty-accrual-models
README documents customer loyalty points plus POS Offers and coupons; only one accrual model is evidenced, not two. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
guest-loyalty-tiers differentiator
Not scored by this record.
guest-loyalty-offline-behavior differentiator
Not scored by this record.
guest-loyalty-offer-stacking-rules differentiator
Not scored by this record.
guest-loyalty-targeted-offers differentiator
Not scored by this record.
guest-loyalty-rfm-segmentation differentiator
Not scored by this record.
guest-loyalty-lifecycle-automation
The app stores a posa_birthday custom field on Customer, but nothing consumes it beyond returning it in the customer-info panel, and the app ships no guest messaging capability at all — no email/SMS send anywhere in the source, and hooks.py's scheduler_events block is commented out, so no triggered job of any kind runs. The 'campaign' references are ERPNext Campaign attribution on coupons/referral codes, not lifecycle sends. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
guest-loyalty-native-email-sms differentiator
Not scored by this record.
guest-loyalty-consent-management
Not scored by this record.
guest-loyalty-10dlc-registration
Not scored by this record.
guest-loyalty-campaign-attribution differentiator
Not scored by this record.
guest-loyalty-data-export-portability differentiator
Not scored by this record.
guest-loyalty-review-capture-routing differentiator
Not scored by this record.
guest-loyalty-referral-program
Not scored by this record.
guest-loyalty-wallet-pass differentiator
Not scored by this record.
guest-loyalty-privacy-rights-tooling
Not scored by this record.
guest-loyalty-redemption-fraud-controls
Not scored by this record.
guest-loyalty-ai-offer-recommendation differentiator
Not scored by this record.
guest-loyalty-stored-value-gift
Not scored by this record.
Labor & workforce
labor-clock-in-at-pos
POS shifts exist for cashier sessions, but that is a drawer session concept, not employee time and attendance.
labor-photo-punch-verification differentiator
Not scored by this record.
labor-offline-time-punch differentiator
Not scored by this record.
labor-granular-rbac
Discrete-action gates exist, but as POS Profile custom fields — posa_allow_delete, posa_allow_return, posa_allow_user_to_edit_rate, posa_allow_user_to_edit_item_discount, posa_allow_user_to_edit_additional_discount, posa_max_discount_allowed, posa_allow_credit_sale, posa_allow_print_draft_invoices — which are per-profile booleans applying uniformly to every user of that profile, not per-role grants; doctype and report access falls back to Frappe's fixed role list. No comp, void-approval or drawer-open permission exists. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
labor-manager-override-audit
The source contains no override or approval flow of any kind — searching for override/approve/supervisor/PIN constructs finds none. Restricted actions are simply enabled or disabled in advance per POS Profile, so there is no individual approver to attribute and no override event to audit; Frappe's generic document versioning is not an override trail. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
labor-native-scheduling differentiator
Not scored by this record.
labor-demand-labor-forecast differentiator
Not scored by this record.
labor-realtime-labor-percent differentiator
Not scored by this record.
labor-overtime-prevention differentiator
Not scored by this record.
labor-break-compliance-by-state differentiator
Not scored by this record.
labor-minor-labor-rules
Not scored by this record.
labor-tip-pooling-rules
Not scored by this record.
labor-tip-distribution-audit-trail
Not scored by this record.
labor-qualified-tips-w2-reporting differentiator
Not scored by this record.
labor-native-payroll differentiator
Not scored by this record.
labor-payroll-export-formats
Not scored by this record.
labor-shift-swap-workflow differentiator
Not scored by this record.
labor-server-performance-metrics differentiator
Not scored by this record.
Inventory, purchasing & cost control
inventory-recipe-bom-costing
Underlying ERPNext has multi-level BOMs, but POS Awesome itself documents no recipe or plate-cost feature.
inventory-unit-conversion-yields
README documents UOM-specific barcode and pricing plus weighted/scale product sales; yield and waste percentages are not documented. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
inventory-theoretical-vs-actual differentiator
Not scored by this record.
inventory-realtime-depletion differentiator
Not scored by this record.
inventory-86-auto-sync differentiator
Not scored by this record.
inventory-count-modes
Verified against the full source at HEAD a86fd29: POS Awesome itself ships no counting feature — no doctype, page, component or API endpoint touches stock counting ('stock_reconcil', 'cycle_count', physical-count constructs appear nowhere), and neither the README's 31-feature list nor the wiki index mentions counts. Any counting would be the host ERPNext's generic Stock Reconciliation in the ERP desk UI, outside this product, and whether that satisfies full/spot/scheduled-cycle counts with per-count variance history was not established from this product's own documentation — same boundary as this record's inventory-recipe-bom-costing.
inventory-mobile-count-offline
Not scored by this record.
inventory-vendor-catalogs-edi differentiator
Not scored by this record.
inventory-invoice-ocr differentiator
Not scored by this record.
inventory-price-change-alerts differentiator
Not scored by this record.
inventory-par-auto-suggest differentiator
Not scored by this record.
inventory-waste-logging
Not scored by this record.
inventory-shelf-life-expiry
Not scored by this record.
inventory-bar-partial-bottle
Not scored by this record.
inventory-cogs-gl-export
Not scored by this record.
inventory-native-not-partner differentiator
Not scored by this record.
inventory-menu-margin-linkage differentiator
Not scored by this record.
Reporting, BI & data access
reporting-realtime-dashboard
The app ships zero report or dashboard artifacts of its own (no report/ or dashboard/ directory in the package). Sales post immediately as standard ERPNext Sales Invoices, so the host ERPNext site's browser-based reports and dashboards reflect them in real time from anywhere the site is reachable — but there is no first-party live sales dashboard, no mobile app, and the posa_allow_submissions_in_background_job option defers invoice submission to a queue. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
reporting-eod-closeout
POS shift closing exists, but no published report reconciling tax, tips, discounts, refunds and expected deposit in one document.
reporting-pmix-modifier-level
Modifier-level PMIX is structurally impossible here: the app has no modifier data model and ships no reports at all. Item-level sales analysis exists only through generic ERPNext Sales Invoice reports, which carry no daypart or revenue-center dimension of POS Awesome's making. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
reporting-comps-voids-audit
Not scored by this record.
reporting-cash-over-short
Not scored by this record.
reporting-labor-productivity
Not scored by this record.
reporting-server-scorecards differentiator
Not scored by this record.
reporting-channel-profitability differentiator
Not scored by this record.
reporting-scheduled-delivery
Not scored by this record.
reporting-public-api differentiator
Not scored by this record.
reporting-webhooks differentiator
Not scored by this record.
reporting-api-not-upcharged differentiator
Not scored by this record.
reporting-tier-paywall differentiator
Not scored by this record.
reporting-history-retention differentiator
Not scored by this record.
reporting-anomaly-alerts differentiator
Not scored by this record.
reporting-nl-query
Not scored by this record.
reporting-guest-cohorts differentiator
Not scored by this record.
reporting-sales-forecast differentiator
Not scored by this record.
reporting-tip-tax-compliance
Not scored by this record.
Multi-location, franchise & enterprise governance
multi-location-org-hierarchy
Verified against the full source at HEAD a86fd29: the app has no organizational hierarchy construct of its own — locations are flat per-company POS Profiles, and no region/group object, hierarchy-scoped report or hierarchy-scoped permission exists anywhere in the code, README or wiki. The host Frappe/ERPNext platform does have a Company tree and user permissions, but whether that amounts to a named three-level hierarchy that this POS's reporting and permissions can be scoped to was not established from this product's own documentation, so the cell stays unresolved rather than crediting or denying substrate behavior.
multi-location-central-menu-publish
The catalog is the host ERPNext site's shared Item and Price List masters — there are no per-location menu instances, so an item edit is simply live site-wide the moment it is saved. No publish action, location targeting, or push/version history exists anywhere in the app ('publish' appears only as the app_publisher metadata field); the claim's publish-with-history workflow has no substrate to exist on. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
multi-location-price-zones
README documents customer and customer-group price lists and batch-based pricing; per-location, per-channel and per-daypart tiers are not documented. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
multi-location-consolidated-reporting
Not scored by this record.
multi-location-cross-location-giftcard
Not scored by this record.
multi-location-cross-location-loyalty
Not scored by this record.
multi-location-multi-brand differentiator
Not scored by this record.
multi-location-multi-tax-jurisdiction
Not scored by this record.
multi-location-central-labor-policy
Not scored by this record.
Hardware & physical footprint
hardware-commodity-devices differentiator
Not scored by this record.
hardware-os-platforms
Browser-based Vue/Vuetify front end for ERPNext, but no supported-browser list, minimum OS versions, or device specs are published.
hardware-handheld-purpose-built
Not scored by this record.
hardware-handheld-battery-swap differentiator
Not scored by this record.
hardware-handheld-lte
Not scored by this record.
hardware-offline-mode
The browser client has no offline layer — no service worker, no IndexedDB, no queued orders; posa_local_storage only caches item/customer lists for search. Order taking, cash sales and receipt printing survive an internet outage only when the ERPNext site is self-hosted on the local network (a deployment topology, not a terminal capability); kitchen printing does not exist in the product at all, and the vendor publishes no statement of which functions degrade offline. Those are the shortfalls carrying the partial, consistent with this record's order-capture-offline-order-entry. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
hardware-kds
The README enumerates 29-plus features with no kitchen display; it is a retail-oriented POS front end for ERPNext. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
hardware-kiosk differentiator
Not scored by this record.
hardware-drive-thru
Not scored by this record.
hardware-printer-compatibility
Not scored by this record.
hardware-peripherals
Not scored by this record.
hardware-p2pe-terminal
Not scored by this record.
hardware-tap-to-phone differentiator
Not scored by this record.
hardware-pricing-transparency differentiator
Not scored by this record.
hardware-ownership-vs-lease differentiator
Not scored by this record.
hardware-usable-after-churn differentiator
Not scored by this record.
hardware-rma-sla differentiator
Not scored by this record.
hardware-byod
Not scored by this record.
hardware-remote-device-management differentiator
Not scored by this record.
hardware-selfpour-scales
Not scored by this record.
hardware-callerid-integration
Not scored by this record.
Integrations, API & extensibility
extensibility-public-api-docs
Full GPL-3.0 source is public and it inherits Frappe's public REST API, but POS Awesome publishes no API reference of its own. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
extensibility-api-access-cost differentiator
Not scored by this record.
extensibility-free-sandbox differentiator
Not scored by this record.
extensibility-oauth-partner-apps
Frappe framework provides OAuth 2.0, but POS Awesome documents no scoped, operator-granted, revocable third-party app model.
extensibility-webhooks-push
Frappe supports webhooks generically, but POS Awesome documents no order lifecycle event webhooks of its own.
extensibility-webhook-reliability differentiator
Not scored by this record.
extensibility-order-injection-api
Not scored by this record.
extensibility-menu-write-api differentiator
Not scored by this record.
extensibility-doordash-preferred differentiator
Not scored by this record.
extensibility-first-party-delivery-integrations differentiator
Not scored by this record.
extensibility-middleware-compatibility
Not scored by this record.
extensibility-accounting-connectors
Not scored by this record.
extensibility-payroll-export
Not scored by this record.
extensibility-app-marketplace
Not scored by this record.
extensibility-headless-embedded
Not scored by this record.
extensibility-data-portability-exit differentiator
Not scored by this record.
Reliability, offline & operations
reliability-offline-order-entry
Nothing continues on-terminal: every invoice save/submit and lookup is a live frappe.call to the ERPNext server, and check printing is a browser window on the server-rendered /printview. Order entry and receipt printing therefore survive a lost internet connection only when the ERPNext site is self-hosted on the LAN; ticket routing does not exist in the product in any connectivity state. Server-dependence and the absent routing are the named shortfalls. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
reliability-offline-card-auth differentiator
Not scored by this record.
reliability-offline-decline-liability differentiator
Not scored by this record.
reliability-lan-degraded-multi-terminal differentiator
Not scored by this record.
reliability-local-transaction-engine differentiator
Not scored by this record.
reliability-offline-kds-printing
There is no kitchen display and no kitchen printer routing in the product at all — 'kitchen' and 'kds' appear nowhere in the source and the only print path is the browser /printview receipt window — so no kitchen output path exists to keep functioning offline. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
reliability-printer-fallback
No printer management layer exists: printing is window.open on the ERPNext /printview URL with trigger_print — browser receipt printing only. There are no configured kitchen printers, no printer-reachability monitoring, and no failover or alert logic anywhere in the source. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04
reliability-sync-conflict-handling
Not scored by this record.
reliability-offline-feature-matrix
Not scored by this record.
reliability-public-status-page
Not scored by this record.
reliability-247-live-support
Not scored by this record.
reliability-onsite-install differentiator
Not scored by this record.
reliability-menu-build-service differentiator
Not scored by this record.
reliability-hardware-replacement-sla
Not scored by this record.
reliability-pci-dss-4-attestation
Not scored by this record.
reliability-mfa-role-based-access
Not scored by this record.
reliability-self-serve-training
Not scored by this record.
reliability-failover-terminal-role differentiator
Not scored by this record.
reliability-cellular-backup
Not scored by this record.
Commercial, compliance & data ownership
commercial-month-to-month-contract differentiator
Not scored by this record.
commercial-no-early-termination-fee differentiator
Not scored by this record.
commercial-autorenew-terms-published
GPL-3.0 app with no subscription of its own; any renewal terms belong to the ERPNext host, not this project.
commercial-processing-not-bundled differentiator
Not scored by this record.
commercial-interchange-plus-published differentiator
Not scored by this record.
commercial-rate-increase-clause differentiator
Not scored by this record.
commercial-pricing-published
Unambiguously free: GPL-3.0 licensed ERPNext app with no commercial tier; hosting cost is separate and external. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
commercial-module-unbundling differentiator
Not scored by this record.
commercial-hardware-purchase-outright
No first-party hardware sold, so no mandatory lease; operators supply their own terminals, scales and printers. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01
commercial-hardware-not-locked differentiator
Not scored by this record.
commercial-data-export-self-serve
Not scored by this record.
commercial-export-customer-and-loyalty differentiator
Not scored by this record.
commercial-post-termination-export-window differentiator
Not scored by this record.
commercial-data-ownership-clause differentiator
Not scored by this record.
commercial-pci-p2pe-tokenization
Not scored by this record.
commercial-pci-dss-4-controls
Not scored by this record.
commercial-privacy-dsar-tooling
Not scored by this record.
commercial-wcag-kiosk-accessibility differentiator
Not scored by this record.
commercial-dual-pricing-compliant differentiator
Not scored by this record.
Adversarial verification
An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 24 values — 0 upheld, 0 downgraded, 0 upgraded. This is published in full because a reader who can see which values were contested, on what evidence, and which way they moved has something no affiliate-funded comparison offers.
Capability claims
| Claim | As first scored | Verdict | What the verifier found |
|---|---|---|---|
| order-capture-offline-order-entry | unknown, grade F — "No public documentation located during the 2026-08-01 research pass." (placeholder; cell never examined) | resolve-to-partial | Read the full source at HEAD a86fd29: no service worker, no IndexedDB, no local order queue — every invoice save/submit is a live frappe.call to the ERPNext server; posa_local_storage only caches item/customer lists. Continuity through a WAN outage exists only when the ERPNext site is self-hosted on-LAN, and no offline scope is published — that named shortfall is the partial. source |
| menu-pricing-modifier-price-by-parent-size | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence from complete source: no modifier doctype, component or field exists anywhere ('modifier'/'topping' appear nowhere); customization is ERPNext item variants, which substitutes a different item code. A modifier price matrix cannot exist without a modifier model. source |
| menu-pricing-topping-quantity-tiers | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence from complete source: no modifier/topping construct and no quantity-tier or per-tier multiplier logic; quantity is the plain invoice line qty. source |
| kitchen-station-routing | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence from complete source: the full doctype and Vue component inventory contains no KDS, kitchen printer, station or routing artifact; the only print path is a browser window on the Sales Invoice /printview. source |
| kitchen-expo-consolidation | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence from complete source: no kitchen display surface of any kind ships, so there are no stations to consolidate and no bump state; consistent with the existing hardware-kds: no. source |
| labor-granular-rbac | unknown, grade F — placeholder rationale, cell never examined | resolve-to-partial | Source shows real discrete-action gates (posa_allow_delete, posa_allow_return, posa_allow_user_to_edit_rate, item/additional discount toggles, posa_max_discount_allowed) but they are per-POS-Profile booleans applying uniformly to all users of the profile, not per-role grants; no comp, void-approval or drawer-open permission exists. Named shortfall carries the partial. source |
| labor-manager-override-audit | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence from complete source: no override/approval flow exists anywhere — restricted actions are pre-enabled or disabled per POS Profile, so there is no approver to attribute and no override event to write to any audit trail. source |
| reporting-realtime-dashboard | unknown, grade F — placeholder rationale, cell never examined | resolve-to-partial | The app ships no report or dashboard artifacts of its own, but sales post immediately as standard ERPNext Sales Invoices visible to the host site's browser reporting in real time. Shortfalls named: no first-party dashboard, no mobile app, and the background-job submission option defers invoice submission. source |
| reporting-pmix-modifier-level | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: modifier-level PMIX is structurally impossible in a product with no modifier data model and no shipped reports; item-level analysis exists only via generic ERPNext reports with no daypart/revenue-center dimension. source |
| reliability-offline-kds-printing | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: there is no KDS and no kitchen printer routing at all in the source, so no kitchen output path exists to continue functioning offline. source |
| reliability-printer-fallback | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: no printer management layer exists — printing is a browser window.open on /printview with trigger_print, with no configured kitchen printers, no reachability monitoring and no failover or alerting logic. source |
| order-capture-split-merge | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence from complete source at HEAD a86fd29: no check/table/seat model exists — a sale is one Sales Invoice cart, order-holding is Drafts or Sales Orders, and no operation splits an invoice by item/seat/N-way/amount or merges invoices; all 'split'/'merge' hits are String.split or bundled-library code. source |
| order-capture-scheduled-orders | unknown, grade F — placeholder rationale, cell never examined | resolve-to-partial | Future-dated capture is real: posa_delivery_date plus the posa_allow_sales_order profile flag makes before_submit map the cart to a submitted Sales Order carrying the delivery date (invoice.py). The named shortfall is that no make queue, per-channel lead time or computed fire time exists — the product has no kitchen output at all, so the order just sits as an ERPNext document. source |
| kitchen-bump-bar-hardware | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: no KDS ships ('bump'/'kds'/'kitchen' appear nowhere in source), so there is no screen for a bump bar to drive and no supported-models documentation; consistent with the record's hardware-kds: no. source |
| delivery-driver-roster | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: 'driver'/'dispatch'/'courier' appear nowhere in source; the delivery footprint is the Delivery Charges fee doctype and posa_delivery_date — no driver entity, clock-in/out, assignment state or run history. source |
| delivery-dispatch-board | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: the complete Vue component inventory is cashier screens only; no dispatch/expo board, undispatched-order view, driver availability, elapsed-time display or run batching exists anywhere. source |
| digital-first-party-web | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: the app's only web surface is the /posapp cashier page and templates/pages is empty — no guest-facing ordering site, cart, checkout or menu page exists in the product. source |
| digital-menu-single-source | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Structural absence: with no first-party digital ordering channel in the product, no digital menu exists to be generated from the Item catalog and no channel exists for an edit to propagate to. source |
| digital-account-saved-payment | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: no guest-facing channel for an account to live on, and no tokenization or card-on-file construct anywhere in source; addresses are cashier-entered ERPNext Address records, tender is cash/Mpesa/ERPNext payment modes. source |
| guest-loyalty-unified-profile | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: the product has one channel (the cashier page), so there are no cross-channel transactions to merge; identity is the cashier-selected ERPNext Customer record and no dedup/merge behavior exists in source or README. source |
| guest-loyalty-lifecycle-automation | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Positive absence: posa_birthday is stored on Customer but nothing consumes it beyond display; the app has no email/SMS send anywhere, hooks.py's scheduler_events block is commented out so no triggered job runs, and 'campaign' references are ERPNext Campaign attribution on coupons/referrals, not sends. source |
| multi-location-central-menu-publish | unknown, grade F — placeholder rationale, cell never examined | resolve-to-no | Structural absence: the catalog is the single ERPNext site's shared Item/Price List masters with no per-location menu instances, so edits are instantly live site-wide; no publish action, location targeting or push/version history exists anywhere in the app. source |
| hardware-offline-mode | unknown, grade F — placeholder rationale, cell never examined | resolve-to-partial | Same substrate finding as order-capture-offline-order-entry: no client offline layer (no service worker, IndexedDB or order queue), continuity only under LAN self-hosting, no kitchen printing in the product, and no vendor documentation of offline degradation. Those named shortfalls carry the partial. source |
| reliability-offline-order-entry | unknown, grade F — placeholder rationale, cell never examined | resolve-to-partial | Every save/submit and lookup is a live frappe.call and check printing is the server-rendered /printview, so nothing continues on-terminal; order entry and receipt printing survive internet loss only with a LAN-hosted ERPNext site, and ticket routing does not exist in any connectivity state. Server-dependence and absent routing are the named shortfalls. source |
Sources
Every URL this record cites. 4 in total.