OrderEasy is a kirana / local-retail stack: the counter, the stock, the inward bills, and a customer app that orders from a shop the buyer already knows. It is not a marketplace. It does not run last-mile delivery. This page is a working note of what is actually in the code, not a pitch.
A neighbourhood grocery still has to know what is on the shelf, what came in from which supplier, and what just sold at the counter. Regulars still want to order from that shop, not from a catalogue of strangers. OrderEasy is the software for that loop. If a feature is not on this page, it was either not found in the apps or is explicitly unfinished.
POS, purchases, suppliers/khata, products and stock, categories, incoming orders, reviews, customers, offers, profile, operating hours. Live at retailer.ordereasy.win.
Pick a retailer serving a city/pincode, browse that shop’s catalogue, cart, checkout, orders, addresses, wishlist, rewards. Live at customer.ordereasy.win.
One backend for both fronts. Live at api.ordereasy.win/api/. Repo: RetailerCustomerPlatform.
A Flutter camera app with barcode scanning and OCR text recognition. It is for bringing products into the catalogue, not for billing the counter.
These are the sidebar items in the Next.js retailer dashboard, plus a few screens hanging off products. Reports are not in the sidebar, so they are not listed as a product surface here.
| Surface | What the code does | Where |
|---|---|---|
| POS billing | Counter sessions with payment modes cash, UPI, credit, or a split across those three. Credit needs a customer mobile. | retailer_ordereasy_njs · src/app/dashboard/pos/page.tsx |
| Purchases | Inward bills on new/edit pages. Supplier is a searchable select. Line items come from the shop product catalogue. | retailer_ordereasy_njs · src/app/dashboard/purchases/new/page.tsx, purchases/edit/page.tsx |
| Khata / suppliers | Supplier book in the nav as “Khata/Suppliers”. | retailer_ordereasy_njs · src/components/layout/Sidebar.tsx · src/app/dashboard/suppliers |
| Products + stock | Search by name, barcode, or category. Filters for in stock, out, low, and negative. Inline quantity updates. A stock ledger of quantity_change / previous / new. | retailer_ordereasy_njs · src/app/dashboard/products/page.tsx, products/ledger/page.tsx |
| Categories | Shop categories as their own dashboard section. | retailer_ordereasy_njs · src/app/dashboard/categories |
| Orders | Incoming orders. Sidebar shows a pending count from stats, refreshed on an FCM event and polled every 60s. | retailer_ordereasy_njs · src/components/layout/Sidebar.tsx · src/app/dashboard/orders |
| Offers | Offer types in the UI: BXGY, percentage, flat amount, cart value, tiered price, flat price. Benefit can be a discount or credit points. Copy on the page also mentions loyalty settings. | retailer_ordereasy_njs · src/app/dashboard/offers/page.tsx |
| Operating hours | Per-day is_open, opening_time, closing_time. | retailer_ordereasy_njs · src/app/dashboard/operating-hours/page.tsx |
| Customers and reviews | Shop-side customer list and reviews screens, both in the nav. | retailer_ordereasy_njs · src/app/dashboard/customers, dashboard/reviews |
The customer app is not a mall. After a city/pincode is chosen, it lists retailers that serve that area and you shop inside one of them.
| Surface | What the code does | Where |
|---|---|---|
| Shop picker | Load retailers for a selected city/pincode, then open that retailer’s catalogue. Copy on the page: “Choose a retailer to start shopping.” | customer_ordereasy_njs · src/app/retailers/page.tsx · src/app/retailer/* |
| Cart and checkout | Checkout reads shop flags accepts_cod, accepts_upi, and offers_delivery. Payment options in the UI: COD, cash pickup, UPI. There is no payment-gateway brand in that file. offers_delivery is a shop flag, not a courier product. | customer_ordereasy_njs · src/app/cart/page.tsx · src/app/checkout/page.tsx |
| Orders, chat, addresses | Order list, order detail, order chat, address book (list/create/edit). | customer_ordereasy_njs · src/app/orders · src/app/addresses |
| Wishlist, rewards, profile, support | Those routes exist as first-class pages. Login, signup, verify-email, forgot-password also exist. Capacitor 7 is in the project, so this is a web app that can be wrapped. | customer_ordereasy_njs · src/app/wishlist, rewards, profile, support, login, signup |
The backend is Django 5.2 + Django REST Framework in RetailerCustomerPlatform. Apps on disk include authentication, cart, customers, offers, orders, products, retailers, and returns. GST on the retailer side, as shipped, is shop GSTIN; HSN / line-item GST was not found as a product surface and is not claimed here.
The scanner repo buyeasy_retailer_scanner is Flutter. Its pubspec pulls in camera, google_mlkit_barcode_scanning, and google_mlkit_text_recognition. That is ingest (barcode + OCR), not a replacement for POS billing.
This writeup is sourced from the OrderEasy GitHub repos under github.com/vin8003: retailer_ordereasy_njs, customer_ordereasy_njs, RetailerCustomerPlatform, and buyeasy_retailer_scanner.
No delivery company. No rider app. A shop may flag that it offers delivery at checkout; that is not a logistics network and is not being built as one.
No marketplace. The customer does not browse a shared catalogue of every seller. They pick a shop, then that shop’s products.
No HSN / line-item GST engine on the pages we read. No invented GMV, user counts, or “cities launched.”
Hostnames that are live: ordereasy.win, retailer.ordereasy.win, customer.ordereasy.win, api.ordereasy.win.
This page is static HTML. Live at ordereasy.win.