Your shop online — using the products you already have.
No Shopify subscription. No CSV imports. No glue code.
Every product in your NinoPOS catalog can show up on a public, mobile-first storefront at /shop/<your-slug>. Customers add to cart, choose Cash on Delivery or M-Pesa, and the order lands in your Online Orders inbox. The storefront is in PREVIEW — feature-complete for COD; M-Pesa STK push is rolling out.
Today, without Public Storefront
- Shopify costs USD 30+ per month plus per-transaction fees
- Keeping product prices in sync between POS and online is manual
- Most e-commerce platforms don't support M-Pesa or COD natively
- Mobile-first checkout is rare — and most customers are on phones
- Building anything custom needs a developer
With NinoPOS Public Storefront
- Storefront is included in your subscription — no extra fee
- Products, prices, and stock auto-sync from your POS in real time
- Cash on Delivery + M-Pesa native to the checkout
- Mobile-first by default — checkout works on a 4-inch screen
- No code. Toggle a feature flag, set your slug, you're live
Everything in Public Storefront
No add-ons, no upsells — included on every plan.
Branded shop on your slug
Your shop lives at ninopos.com/shop/<your-slug> with your logo, colors, and company name. SEO-friendly URLs for every product.
- Custom slug per company
- Logo & color theming
- SEO-ready URLs (/shop/foo/p/bar)
- Open Graph metadata baked in
Mobile-first cart & checkout
Designed for the phone first — sticky cart, large tap targets (≥44pt), and a checkout that fits on one screen.
- Touch targets above iOS HIG minimum
- Sticky add-to-cart on mobile
- One-screen checkout
- Works offline once loaded
COD + M-Pesa + bank transfer
Cash on Delivery for everyone, M-Pesa STK push for instant payments, and bank transfer for B2B customers — choose what your business accepts.
- COD on by default
- M-Pesa Daraja STK push
- Bank transfer with reference
- Per-method enable toggle
Inventory-aware (no overselling)
Stock counts are read live from your POS. When the last unit sells (in-store or online), the storefront marks it sold out — no double-bookings.
- Live stock per product
- Out-of-stock state
- Multi-store stock aggregation
- No background sync delay
Order notification emails
Customer and admin both get email when an order is placed and at every status change. Powered by SMTP2GO with idempotency built in.
- Customer order confirmation
- Admin new-order alert
- Status change emails
- Idempotent — no duplicates
Subscription-gated, feature-flagged
PREVIEW gate means it's opt-in for now. When ready, flip the FEATURE_STOREFRONT flag and your storefront goes live — no migration, no data move.
- PREVIEW feature flag
- Per-tenant enable
- Zero-migration go-live
- Roll back instantly if needed
How Public Storefront works in practice
Step by step — from the customer touch to the final ledger entry.
1. Set your slug
In Settings → Storefront, pick the URL you want — e.g. ninopos.com/shop/my-shop.
2. Pick which products to publish
Toggle products visible on storefront from the product list. Hidden products stay POS-only.
3. Choose payment methods
COD on by default. Add M-Pesa with your Daraja keys, or bank transfer with your account info.
4. Share the link
WhatsApp it to customers, put it on your Instagram bio, run a Facebook ad. The shop is live.
5. Orders flow in
Each order shows up in Online Orders. Confirm, ship, deliver, collect.
6. Track revenue source
The dashboard shows storefront vs in-store revenue side-by-side. See growth at a glance.
Local payments, currencies, and connectivity — sorted out of the box
Public Storefront ships with M-Pesa Daraja, multi-currency, full offline mode, and WhatsApp customer messaging baked in — no plugin, no add-on.
- M-Pesa Daraja STK push for instant payments
- TZS, KES, UGX, RWF, USD — multi-currency invoicing
- Offline mode for areas with unstable internet
- WhatsApp for receipts, reminders, and orders
- Local tax (VAT) reporting baked in
Frequently asked questions
Specific to Public Storefront.
How is this different from Shopify or WooCommerce?
Shopify is a separate inventory and customer database that you sync to your POS. NinoPOS Storefront IS your POS — same products, same stock, same customers. Nothing to sync, nothing to break.
What does PREVIEW mean exactly?
It means we're still polishing edges. Core flows (browse, cart, COD checkout, order email) work end-to-end. M-Pesa STK push is in final testing. Once stable, the PREVIEW badge comes off.
Can I use my own domain?
Custom domain support is on the roadmap. Today, your shop lives on ninopos.com/shop/<slug> — which is good for SEO since the parent domain has authority.
Is there a transaction fee?
No platform transaction fee on COD or bank transfer. M-Pesa has Safaricom's standard Daraja fees (you pay them directly, not us).
Will this work for B2B / wholesale?
Yes. Logged-in B2B customers see their negotiated prices and credit limits at checkout. Public visitors see retail prices.
How do I disable it temporarily?
Settings → Storefront → toggle off. The /shop/<slug> page returns 404 immediately. Re-enable any time without losing data.
Pairs well with
Modules that work hand-in-hand with Public Storefront.
Ready to put Public Storefront to work?
Free to start, no credit card required. Live within an hour.