Skip to content

Changelog

Changelog

Every release of RKCoders POS, newest first.

We follow semantic versioning. Anything that changes how your existing data behaves is called out explicitly.

1.0.28

Current release Released

A paid Eyewear add-on for sunglasses shops: model details, included cases and kits, and an eyewear sales report.

Added

  • Eyewear add-on (licence module eyewear): products gain item type, brand, model name, model number, colour code and size, with brand and bundle filters and model-number search at the till. Windows and Android.
  • Per-item bundles: "With included items" takes the pair and its case or cloth out of stock together; "Kit" has no stock of its own and sells its parts. Voiding a bill returns exactly what that sale took out.
  • Eyewear sales report for today, this month or custom dates: sunglasses and accessories sold, total sales, profit, best sellers, sales by brand and day, included items given, and stock. Print or save to Excel.

Changed

  • The barcode on the bill is smaller, so a receipt uses less paper.
  • On a white-label install, the licence screen tells the cashier to contact the reseller by name instead of RKCoders.

1.0.27

Released

Large customer and supplier lists stay fast, with a dedicated activity ledger and the same tools on Products.

Added

  • Settings → Database can export every table to one Excel workbook for a readable backup. Restore the till from the .db file; password hashes and device keys stay out of the spreadsheet.
  • Customers and suppliers use server-side search, scope filters, sort, and paging so tens of thousands of rows stay responsive. Activity opens on its own screen with date filters, KPIs, and a paginated ledger.
  • Party activity includes a type-to-find combobox backed by live search, recent parties, and quick links to collect payment or open purchases.
  • Products uses the same hub pattern: search, category filter, sort, and paging for large catalogues.
  • Sales quotations (Q…) mirror purchase orders: draft, issue, print, then invoice at the till with partial qty against open quote lines. Windows and Android.

Changed

  • Customer and supplier screens use larger touch targets; activity mode hides the wrong tab so list and ledger roles stay clear.
  • When RKCoders signs a Core key in ops, the till picks it up from the licence server within seconds—no manual paste—on sign-in and on About & License.

Fixed

  • Back to list on customer or supplier activity works reliably even when the party finder dropdown is open.

1.0.26

Released

Send an open table order to the kitchen, and download the same version for Android.

Added

  • Send an open order to one kitchen printer. Only categories marked Send to kitchen are included. The slip shows the table, quantities, names, and notes, with no prices. A later send prints only what was added or removed. Paying prints the customer receipt only.
  • The same version is published for Android as RKCoders-POS-1.0.26.apk. latest-android.json names the current package. Older packages stay on the releases page. The till does not install the new package by itself.

Changed

  • On the visual till, Send to kitchen is one row on the item list. The slide-out menu fits at touch size, and the back-office window buttons are centered.
  • A phone uses the same Android app in portrait, with a compact product grid, a cart bar, and a sale receipt. The camera button scans a barcode on a phone or a tablet.
  • In Bahrain a sale over BD 500 is a full tax invoice, and Walk-in cannot settle it.

1.0.25

Released

Closing a shift or the day asks you to confirm before the report prints.

Changed

  • Close shift asks you to confirm before the shift closes and the report prints. Close day asks the same before the day closes.

1.0.24

Released

Print barcode labels from Products. A blank window after sleep reloads, and it can be closed.

Added

  • An Android tablet can run the same shop offline, with its own database. The download page stays the Windows installer until an APK and its SHA-256 are published.
  • Products can print barcode labels on the receipt roll, on 40×30 mm or 50×25 mm stickers, or on an A4 sheet. The same labels can be saved as a PDF. Settings has a label printer and a test label.
  • A separate installer for 64-bit Windows 7. The Windows 10 and 11 setup is unchanged and still will not start on Windows 7.

Changed

  • First-time setup requires the store name and a store email before it continues. Both are sent with the licence request.

Fixed

  • After sleep, a dropped network, or a lost graphics process, a white till window reloads itself. If it is still dead, closing it from the taskbar or with Alt+F4 works immediately.
  • The Windows 7 Start menu and desktop shortcuts open the program. If an earlier Windows 7 setup only shows Unspecified error, install this Windows 7 setup over it.

Known limitations

  • The Windows 7 installer does not update from inside the app, and OneDrive backup is not available on Windows 7.

1.0.23

Released

A4 prints a full-page invoice. Thermal rolls keep the receipt.

Added

  • Settings can keep each database backup in OneDrive. The live shop file stays on this PC, and OneDrive receives a finished copy.
  • Settings → Company has an email field. It prints under the seller phone on thermal receipts, A4 invoices, and shift reports.

Changed

  • On the product form, price, display order, cost, and opening quantity use a number keyboard at the bottom of the screen. Cost and opening quantity can be typed only on a new item. Editing them opens a stock adjustment for that item.
  • About and License are one screen opened from the home screen. They are no longer inside Settings.
  • First-time setup leaves the store name empty until you type it, and asks for the inventory opening date used on opening stock.
  • With paper set to A4, Save & print and reprints use an invoice page: seller and customer side by side, one row per item, totals, a VAT summary, and the QR at the foot. 58 mm and 80 mm stay on the receipt layout.
  • In Bahrain, a sale over BD 500 or to a buyer with a VAT number is a full tax invoice. It needs a named customer with a full address. Smaller walk-in sales stay simplified.

Fixed

  • Opening Settings no longer crashes when the Company sidebar label reads the store country.

1.0.22

Released

The licence server now receives the store name you enter in the install wizard, including after a reinstall on the same PC.

Fixed

  • A fresh install no longer registers its trial before setup, so the store no longer shows up under its Device ID.
  • Reinstalling on the same PC replaces the store name from the earlier install instead of carrying it over. Editing the company name in Settings updates it too.

1.0.21

Released

Sell on customer credit with On account at the till, then collect and allocate Cash or Card against open invoices.

Added

  • On account tender for all or part of a sale. Requires a named customer and respects the credit limit. Walk-in cannot charge.
  • Credit payments screen collects Cash or Card and allocates to open on-account invoices. Customer list shows balance due.
  • Cities & areas master in Settings for Saudi Arabia and Bahrain. Customer and delivery forms pick city then area from the list (editable in back office).
  • VAT customers (including On account) require a country-mapped national address — Saudi ZATCA (building/street/district/city/postal) or Bahrain e-invoice (building/road/block/area/city). Columns stay mirrored for both.
  • Install wizard asks for country (SA/BH), seller VAT/TRN, phone, and national address before the store is ready. Values remain editable in Settings.

Changed

  • POS defaults to Walk-in, shows the selected customer in the header chip (click to change), and a bottom status bar with credit limit/due/available, lines, total, cashier, and shift.
  • Shift and end-of-day tender totals include customer collections; On account does not inflate expected cash in the drawer.
  • Voiding a sale that already has credit collections allocated is refused until those allocations are cleared.

Fixed

  • Known limitations no longer claim missing cash-drawer kick, live scale, or purchase orders.

1.0.20

Released

Stock adjustments for qty or cost, purchase edits that rebuild average cost, and clearer document links from Activity.

Added

  • Stock adjustment documents from Stock: qty or cost, draft or post. Add lines by search, category, or Excel. Posting rebuilds average cost; drafts do not move stock.

Changed

  • Editing a received purchase updates that receipt’s stock lines on the invoice date (same document number) and rebuilds average cost from the ledger.
  • Editing an earlier purchase or qty adjustment refreshes later cost adjustments in the background so the till does not freeze on large ledgers.
  • Purchase-order receive uses a full-screen item picker.
  • Stock activity and Documents open the purchase or stock adjustment instead of the tax-invoice screen.

Fixed

  • Stock activity shows price and margin only on sales, and purchase rows use the invoice’s local date.

1.0.19

Released

Close shift is one full-screen window: type how many notes and coins you have, and see the difference as you go.

Added

  • Each product has a Display order. The till uses that order unless Best sellers first is turned on in Settings. Visual POS can set how many product columns fit on a row. Each tile stays square, and space under the grid is left empty.

Changed

  • Close shift fills the screen. Expected cash, the counted total, and the difference stay in view. Notes and coins are a short list you type. Print and Close shift stay on the bottom bar.
  • On Income / Expense, Add entry is separate from Filter. Filter only changes the list: dates, All, Income, Expense, and search.
  • Close is an X on dialogs. Sale complete keeps that one X in the title and no longer shows a second Close button.
  • Closing the program asks “Leave the till?” with a warning mark. An open ticket stays on the device.
  • Stock activity shows one item at a time, with purchases and sales in separate coloured sections, date and type filters, profit cards, and a profit trend.
  • Entering a payment amount and pressing Enter lands that amount on the matching payment button.

Fixed

  • Paying a bill no longer fails after a product on that bill was edited. The till keeps the same unit, and an open ticket still completes.
  • Save and Save & print no longer wait for Fatoora. A simplified bill is signed and the receipt prints, then the report is sent in the background. A standard tax invoice still waits for clearance before it can be printed.

1.0.18

Released

A product can allow a price change when it is scanned, and the till has a Price button for that line.

Added

  • Products have “Price can change when scanned”. Scanning or tapping that item opens a price pad, starting from the catalogue price. A lower price is a discount on that line, refused when it passes the cashier’s discount limit or goes below cost. A pencil in front of the price opens the pad again.
  • The version number sits in small text under the POS name wherever the RK logo is shown.

Changed

  • The till pad button is labelled Items.
  • Settings, users, the licence, tax, payment types, company details, and backup can be changed only by an administrator. Cashiers can still set language, zoom, and POS shortcuts.

1.0.17

Released

Touch tills open a price pad in the app, and each licence feature is requested from its own row.

Added

  • On a touch till, tapping a product price opens a large number pad in the app, so staff do not have to find the Windows keyboard.

Changed

  • The Licence page keeps Activate now on each feature. Add-ons stay visible during the trial and can be requested only after Core has a lifetime key. Several features can be requested without waiting for the last key.

1.0.16

Released

Bug fixed.

Changed

  • The Licence page is one compact screen: status and Device ID at the top, feature chips, and tabs to paste a key or request one.
  • The Licence page speaks like a shop: can you sell, what is ending, and Activate now on each feature. Lifetime Core has no Remove. Optional extras stay in “add later”. Each requested row waits for its own key.
  • Activate now stays on that feature row. The row waits there — it does not jump to the top. You can send another feature without waiting for the last key. Add-ons stay visible during the trial with After Core, and Activate now appears only after Core has a lifetime key. Feature text is one line and no longer repeats the name.

Fixed

  • Bug fixed.

1.0.15

Released

Smart Visual item order from sales history, ticket lines come back after an accidental close, and closing the app asks first.

Added

  • Visual tiles are ordered from completed sales — most frequently sold first — on Home and inside a category, so cashiers reach everyday items faster.
  • Items already on this ticket sit first on the Visual grid, then the sales-frequency list.
  • Closing the till asks for confirmation, so a tap on X or the power button does not quit by accident.

Changed

  • An unfinished ticket is restored when you open the till again. Do not worry if the window was closed by accident — the selected items are still there.
  • A discount over the user’s max % is refused when you apply it, not only at Pay. Notices sit in the centre of the screen and wait for OK.
  • Visual Home includes parent-category items. The category strip is compact and touch-sized, keeps the selected category visible, and pages with arrows instead of a scrollbar.
  • The login PIN pad stays on screen without a scrollbar, and the keys are large enough for a finger.

1.0.14

Released

A sold product cannot be deleted, each user has a max discount, and categories are edited on a full page.

Added

  • Each user has a max discount %. Zero blocks Discount and Change Total. Promotions are not limited by this.

Changed

  • A product on a sale, purchase or stock movement cannot be deleted. SQLite foreign keys keep that history. Deactivate it instead. A category still holding products, or used by a promotion, is also blocked.
  • Adding and editing categories is a full-page workspace with a tree on the left, not a cramped popup.

1.0.13

Released

The website RK mark is the app brand, Visual tiles and ticket lines are easier to read, and Browse item shows a category tree.

Changed

  • The blue RK square from pos.rkcoders.com is in the window title bar and next to POS on the checkout. Sign-in keeps the name only on the card.
  • Visual product tiles are compact and finger-sized, with the name above the price.
  • Browse item has a category tree on the left and products on the right. A parent includes its children.
  • The Visual selected-item list shows name (qty × price) on one line, with a smaller qty × price, and no discount column. Up/down arrows and the keyboard arrows move the selected line.
  • Visual hides the category strip when no product is assigned to a category, and hides empty categories.

1.0.12

Released

Standard checkout opens again, square Visual tiles with a quantity badge, and a Close / Esc control on the amount pad.

Changed

  • Visual products are square tiles with the photo centred. A badge shows how many of that item are on the ticket.
  • The payment (and other) amount pad has a Close / Esc button. Esc and a tap outside also dismiss it.
  • The ticket footer shows the currency code only on To pay.

Fixed

  • Standard POS no longer crashes on open. The centre watermark referred to a missing logo file.

1.0.11

Released

Change the ticket total from the pad, and a cleaner checkout without Lock and Transfer keys.

Changed

  • Change Total Amount [Incl VAT] is a pad button. The footer only shows Items, Discount, Net, VAT, and To pay.

Removed

  • Lock and Transfer are off the POS pad. Use Sign out in More, Save sale to park a ticket, and Lock on the back-office home tiles.

1.0.10

Released

Sign-in opens the checkout, Visual till layout that fits a 1024 screen, and ticket totals a cashier can read at a glance.

Added

  • Laptop till preview in Settings → Appearance: pick 1024×768 or another common POS size so you can check the checkout without a panel.

Changed

  • After a successful sign-in the checkout opens. Back office is Management in the POS menu, or the RKCODERS mark.
  • The sign-in keyboard is a popup on the field you tapped, not a floating pad over Sign in.
  • Visual categories sit in a top strip with Home, Back, and left/right arrows. Ticket lines and totals stay readable at 1024×768.
  • The ticket footer reads Items, Discount, Net, VAT, and To pay.

1.0.9

Released

Purchase orders and supplier payment vouchers, a touch login keyboard, shift income and expense, and thermal QRs that scan more reliably.

Added

  • Printing settings can upload the receipt header logo and two optional extra header lines (branch, slogan, or licence text).
  • Purchase orders (O), goods receipts that can pick several orders including a partial qty, and payment vouchers (K) that allocate cash across receipts. Return notes already reduce what those receipts still owe.
  • Shift income and expense: category, method, party, and note, shown on shift close, day close, and Reports.
  • On-screen login keyboard (ABC, 123, Arabic) so a touch till with no physical keyboard can sign in. The Windows tablet keyboard stays closed.

Changed

  • On Visual checkout, one or two category tiles use a narrow single-column strip so products keep the rest of the screen.
  • The login keyboard and the payment amount pad float and can be dragged, so the ticket and the login form stay visible on a touch till.
  • Product image selection is a square visual button that shows the chosen photo.
  • A wide receipt logo uses the full paper width. A smaller logo keeps its natural size and is not stretched.
  • The company logo set in Settings prints on receipts, tax invoices, purchase notes, and shift or day-close reports.
  • Dropdowns are search boxes: type a few letters to find a supplier, tax rate, printer, or payment type.
  • Thermal ZATCA QR codes print larger, with a white quiet zone and high error correction, so thin paper or a light print is more likely to scan.

Fixed

  • Tapping Pay no longer flashes the amount pad or Sale complete popup closed. Touch tills were sending the same tap through the overlay.
  • Enter on the payment pad keeps Sale complete open so the bill can finish.
  • Receipts no longer waste space above the header, and seller addresses print darker, larger, and with clearer separators.
  • Receipt text stays on the roll: bilingual labels stack instead of running off the right edge, and all lines print in solid black.
  • The ZATCA QR stays on the same receipt page. The till prints one continuous page with feed after the code so the cutter fires below it, not through it.
  • Line discounts on a ZATCA bill stay on the lines, so Fatoora no longer rejects the XML for BR-CO-15 or BR-32.
  • Product photo Choose/Remove buttons no longer overlap the rest of the edit form.

1.0.8

Released

Phone delivery orders as a paid add-on, Bahrain customer addresses, and a clear simulation flag on Fatoora test bills.

Added

  • Delivery licence module (`delivery`): a per-till subscription. Without it the POS Delivery button and the Deliveries screen stay locked. Counter sales stay in Core.
  • Delivery orders: take a phone sale, confirm the drop, print a pick slip, hand the bag to a driver (stock leaves then), and settle cash, card, or already paid when they report back. The tax invoice is issued at settle.
  • Look up a customer by phone on a delivery call. One customer can keep several Bahrain national addresses (building, road, block, area).
  • Bills submitted to Fatoora simulation or sandbox show Submitted (simulation) on POS, Documents, and the printed receipt so they are not mistaken for live filings.

Changed

  • The delivery ticket bar shows the next shop-floor step: confirm items, print pick slip, confirm picked, confirm for delivery, then settle when the driver returns.
  • The checkout scan box keeps focus for continuous scanning. Barcode mode does not open the Windows on-screen keyboard.
  • The ZATCA Phase 2 wizard shows CSR Config fields, requires the device certificate after sample invoices, and keeps simulation bills off the live filing path when you change environment.

Fixed

  • Delivery dialogs show primary action labels again (Confirm address, Save, Hand to driver) on the light theme.

1.0.7

Released

Licence keys now update one feature at a time, and a Bahrain e-invoice add-on can be issued. NBR submission is not implemented.

Added

  • Bahrain e-invoice licence module (`bahrain_einvoice`): a yearly device subscription you can issue and activate. NBR submission is not implemented; the Settings and Licence panels say so.

Changed

  • Licence expiry, activation and renewal are per feature. A Loyalty or ZATCA Phase 2 key updates only that module and shows its own end date and days left.

1.0.6

Released

Purchases, a live scale, and a COM pole display. Receive a supplier delivery, read weight from a serial or network scale, and show the last item and total on a 2-line VFD.

Added

  • Purchases screen: draft or receive a supplier delivery, post stock, number the document P000001…, and refresh unit cost with a simple weighted average. Received purchases appear under Documents.
  • Stock → Activity: a ledger of every in and out with running balance, average cost, price, margin, markup and stock value.
  • Live scale in Settings → Weighing scale: COM or TCP, generic / CAS / Toledo / A&D, stable-only and auto-fill on the Enter weight pad.
  • Pole display in Settings → Customer display: 2-line COM VFD (CD5220, Epson DM-D or plain text) showing last item, TOTAL, thank-you and CHANGE.

Changed

  • A barcode scan at checkout beeps high when the item is found, and lower twice when the code is unknown.

1.0.5

Released

Adding a product is one compact screen. The SKU is also the base barcode, you can set opening quantity and starting cost, and a clash names the other item.

Added

  • Opening quantity on a new product, recorded as an opening stock movement. Later stock changes stay on the Stock screen.

Changed

  • SKU is the barcode of the base unit — type or scan it once. Extra pack sizes still have their own barcode, factor and price.
  • The product form is a single compact layout. Saving with name or SKU empty highlights the field and moves the cursor there. A reused code names the product that already has it.

1.0.4

Released

The Cash drawer button can now open a printer-connected drawer. Pick an Epson, Star or custom command in Settings, and kick from the button, after cash, or after every sale.

Added

  • Settings → Printing now sends a RAW open pulse through the receipt printer. Presets cover Epson/Citizen pin 2, Epson pin 5, Star ESC BEL, generic BEL, and custom hex from the printer manual.
  • Open automatically after a cash sale, after every sale, or only from the Cash drawer button. Test kick checks the wiring before you open.

Changed

  • Lock and Sign out are on the management home tiles as well as the POS pad. Unlocking a locked register still needs the same user; Sign out is the handover.

1.0.3

Released

A second monitor can now face the queue. The customer sees the ticket, totals and a thank-you screen, with its own language and theme.

Added

  • Customer-facing display on a second Windows monitor: idle welcome and promo slides, live ticket lines, VAT and change, then a thank-you screen after payment.
  • Settings → Customer display: pick the monitor, full screen, language, theme, text size, welcome and thank-you lines in English and Arabic, and a windowed preview when you only have one screen.

1.0.2

Released

Ticket totals are easier to read at the till. Excl. VAT, discount, amount before VAT, and VAT now use the same large figures as the rest of the POS footer.

Changed

  • On the POS ticket footer, Total excl. VAT, Discount, Before VAT, and VAT are enlarged to match the on-screen total strip.

1.0.1

Released

First follow-up build. Tills still on 1.0.0 are offered this version from Settings → About, and only install it if you click Update.

Added

  • Settings → About now shows the published version from the update feed next to the version on this PC.

Changed

  • A newer installer on pos.rkcoders.com/releases raises the in-app notice. The till does not download or restart on its own.

1.0.0

Released

The first public release. A complete Windows point of sale with inventory, customers, shifts, reporting and ZATCA e-invoicing, in English and Arabic.

Added

  • Point of sale with two layouts: a touch-friendly Visual tile grid and a keyboard-driven Standard list.
  • Checkout supporting barcode scanning, SKU entry, product search, line and ticket discounts, split payments across tenders, held tickets, and line or bill voids with a mandatory reason.
  • Product catalogue with nested categories, multiple SKUs and barcodes per product, weighed items, per-product tax rates and images.
  • Bulk product import and export via Excel or CSV, with a downloadable template and a per-row results report.
  • Stock screen showing on-hand quantity and cost value, with adjustments recorded against a reason of purchase, count or adjustment.
  • Customers and suppliers with contact details, notes, credit limit, VAT number, commercial registration number and address.
  • Documents screen listing every sale, filterable by type, status and ZATCA state, with a detail view for lines, payments, printing, PDF export and signed XML download.
  • Audit log recording every bill and line void with its reason and the user responsible.
  • Shifts with a counted opening float, cash in and cash out movements, a denomination-by-denomination close showing the variance, and an end-of-day close across all shifts.
  • Dashboard with today against yesterday, ticket count, average ticket, VAT collected, a seven-day trend, hourly sales, payment mix, top products, categories and cashiers, and low-stock alerts.
  • Reports for date-range sales, stock valuation, and the full shift and end-of-day history, all printable.
  • Promotions by percentage or fixed amount, targeting a product, a category or both, with an active switch.
  • User accounts with a PIN or password, a display name, an active flag, and per-screen permissions across all ten screens.
  • ZATCA Phase 1: a TLV QR code with tags 1 to 5 on every completed sale, and automatic selection between standard and simplified tax invoices based on the customer VAT number.
  • ZATCA Phase 2 as a licensed module: a six-step onboarding wizard, CSR generation, compliance and production CSID, signed UBL 2.1 XML, extended QR tags 6 to 9, clearance of standard invoices, reporting of simplified invoices, and a retry outbox.
  • Sandbox, simulation and production environments for ZATCA Phase 2.
  • Device-bound licensing with a 14-day trial that starts on first launch, signed licence keys, .rklic file import, and separate Core, ZATCA Phase 2 and Loyalty modules.
  • Receipt printing to any Windows printer at 58 mm, 80 mm or A4, with silent printing, automatic printing after payment, copies, font size, a logo toggle and a test print.
  • Configurable weighing-scale barcode rules for selling items by weight from scale-printed labels.
  • English and Arabic interface with full right-to-left layout, seven themes, and interface zoom from 80% to 150%.
  • One-time setup wizard offering demo data or an empty store, with a store name and an administrator PIN.
  • Database backup, health check and optimise tools, plus a crash log with stack traces and filtering.
  • In-app update check: the till notifies you when a new version is published, and installs it only when you click Update.

Security

  • Licence keys are signed and verified on the device, and are bound to a Device ID derived from Windows.
  • The system clock is checked for backward movement, and expiry falls back to the last trusted time if it is suspect.
  • ZATCA signing keys are generated on the till and the private key never leaves the machine.

Known limitations

  • The Loyalty module is licensed but its screen is a placeholder; points, tiers and redemption are not implemented yet.
  • Each installation keeps its own database. There is no live catalogue or sales synchronisation between tills.
  • The Windows installer is not code-signed, so SmartScreen shows a warning on first run.