OrderEasy

Software for one shop, and the people who already buy there.

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.

Written 19 Aug 2026 From the live repos, not a brochure No user counts, GMV, or city claims

The problem it is built for

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.

Retailer app

Run the shop

POS, purchases, suppliers/khata, products and stock, categories, incoming orders, reviews, customers, offers, profile, operating hours. Live at retailer.ordereasy.win.

Customer app

Order from a known shop

Pick a retailer serving a city/pincode, browse that shop’s catalogue, cart, checkout, orders, addresses, wishlist, rewards. Live at customer.ordereasy.win.

API

Django + DRF

One backend for both fronts. Live at api.ordereasy.win/api/. Repo: RetailerCustomerPlatform.

Scanner

Ingest, not POS

A Flutter camera app with barcode scanning and OCR text recognition. It is for bringing products into the catalogue, not for billing the counter.

What the retailer app actually has

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.

SurfaceWhat the code doesWhere
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

What the customer app actually has

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.

SurfaceWhat the code doesWhere
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

API and scanner

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.

Deliberately not this

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.

Live

ordereasy.win retailer.ordereasy.win customer.ordereasy.win api.ordereasy.win/api/

This page is static HTML. Live at ordereasy.win.