The platform
One set of records, and every surface that reads them
Akkad is a business operations platform built around inventory. Underneath everything there is one catalogue, one stock ledger, one order book, one customer list and one set of pricing rules. The apps, the counter, your online store and your landing pages are surfaces onto those records — not separate systems that have to be reconciled at the end of the week.
Most business software is assembled from parts that were built separately: stock in one place, sales in another, the website somewhere else again, and a nightly export holding them together. The joins are where the errors live. An item sells online while the shelf figure lags, a promotion behaves differently at the counter than it did in the browser, and a report disagrees with the money in the drawer.
Akkad is built the other way round. There is one item record, and it is the same record whether it is scanned at the counter, listed on your storefront, sold through a landing page or received against a purchase order. There is one stock figure per item — or per variant, or per batch when you are tracking lots — and every path that changes it writes to the same place, under the same locks, leaving the same audit line behind.
One catalogue, one ledger, many surfaces
The shape of the product is easy to state. In the middle sit the records: items and their categories, stock, orders, customers, and the rules that price them. Around the outside sit the surfaces that read and write those records — the admin apps on six platforms, the counter, the storefront, landing pages, the courier integrations and the reporting layer.
Nothing in the middle belongs to a surface. An order created at the counter, one placed on your storefront and one typed in by a member of your team are the same kind of record with a different source stamped on it. They appear in the same list, deduct from the same stock, obey the same pricing rules and land in the same reports.
- Every business endpoint is scoped to one organisation and checked for membership and permission on every request.
- Stock derives upward: a variant's stock is the sum of its batches, and a parent item's stock is the sum of its variants. Derived numbers are never independently written.
- Orders carry their source — internal, counter, storefront or landing page — plus which storefront they came from, so channel reporting is a filter rather than a separate system.
Catalogue and stock
The catalogue is the part everything else depends on, so it carries the most structure: three item types, per-variant pricing and stock, packs that share one pool, and lot tracking with expiry when you need it.
Three item types
Simple items, variable items on a single axis such as size, and configurable items on two levels — an attribute like a colour owning its own set of variants. Up to 200 variants and 50 attributes per item, each with its own SKU, barcode, image, stock and prices.
Pack sizes
Sell the box and the single from one item and one stock pool. Each pack carries its own barcode and its own price, so a carton can be cheaper per unit than the loose units it contains, and both draw from the same budget.
Batches and expiry
Opt in per item. Each lot carries its own cost and expiry date, deduction is first-expiry-first rather than plain first-in-first-out, and cancelling an order returns units to the exact lots they came from.
Real cost of what shipped
After a batch deduction the order line's cost becomes the weighted average of the lots actually consumed, and re-receiving an existing lot averages the new cost in. Margin reflects the stock that left the shelf, not a stale figure.
Categories that keep history
Two levels, with images and slugs. Deleting a category moves its items to Uncategorised and repoints historical order lines, so nothing in your past is orphaned by a tidy-up.
Scanner-first search
An exact-match probe runs in strict order — item barcode, variant barcode, pack barcode, item SKU, variant SKU — and a pack barcode tells the app which pack to pre-select. Text search adds typo rescue and folds Arabic-Indic digits to Latin.
Selling
Four ways to take an order — your team, the counter, your online store and single-product landing pages — all writing into the same order book, all priced by the same rules.
The order book
Six statuses, split into a group that holds stock and a group that releases it, so moving an order between them deducts or restores automatically and re-checks availability first. Editing writes a readable, localised change log.
The counter
Drawer sessions with an opening balance and a close that reconciles cash, card and split tenders. Up to 30 pinned quick-sale tiles, hardware barcode scanning through plain keyboard input, and four scan modes including scan-to-return.
Your online store
A storefront on your own subdomain or a custom domain with automatic certificates, built from five templates and four style presets over six independently overridable controls. An organisation can run several stores, each with its own look, language and visible categories.
Landing pages
One product, one page, its own form, its own pixels and its own payment mode — for the offer you are running this week rather than the whole catalogue. Two templates, including a direct-response layout with merchant-authored content blocks.
Pricing rules
Four ways to measure a cart and three ways to discount it, written as ladders of brackets, scoped to categories and targeted per channel. Including a discount expressed as a share of your margin rather than a share of the price.
Promo codes
A separate lever from rules, validated per channel as the customer types, additive to whatever the rules already gave and clamped to the remaining subtotal.
Fulfilment
Delivery pricing and courier handoff, built for markets where the address is a landmark, the money arrives at the door, and city names are spelled five different ways.
Four kinds of shipping rule
A flat rate, brackets on the number of packs, brackets on the order total, or a per-city price list. Free delivery is simply a bracket with a cost of zero and no upper bound.
The cheapest applicable rule wins
Every eligible rule is evaluated and the lowest result is taken, so a free-delivery-over-threshold rule automatically overrides a standing flat rate without anyone having to switch one off.
City matching that forgives spelling
Names are normalised — diacritics stripped, letter variants folded, the definite article removed — then matched exactly, by containment, or by similarity. So three spellings of the same city price identically.
Seven couriers
Al Waseet, Modon Express, Hi-Express, Al Zaeem, Alsai, Tasheel and Prime. Each is validated without saving, and Prime works on built-in credentials so there is nothing for you to enter.
Live city and district lists
Every integration returns the courier's own address tree as a standard list, so checkout offers the cities and districts that courier will actually accept.
Status reconciliation
Tracking numbers are queried in batches and each courier's vocabulary is normalised into four buckets. Only a confirmed delivery writes back to the order; anything unrecognised is marked for review rather than guessed.
Money
What was sold, what was collected, and what is still owed are three different questions. Akkad answers them from one ledger rather than three sets of numbers that drift.
The debts ledger
One row per movement of money, with a signed amount — positive collected, negative refunded — so every total is a plain sum. Rows are append-only: a refund is a new row, never an edit of an old one.
Who owes you
A live debtors list, biggest first, computed from the orders themselves rather than a cached column, with a full statement per customer showing every unsettled order and every payment against it.
Instalments
A plan is an agreement, not a second ledger: a down payment, a count, an interval. Amounts split evenly with the remainder on the last row so the parts always sum back, and a payment schedule is answered by allocating the one collected total in order.
The drawer
One open session per person. Closing computes expected cash from every linked order — including the cash half of split tenders — and compares it to the counted drawer. Totals are cached on the session so the summary can be reprinted later.
The cashbox
A per-year money box across cash, card and bank, tracking what you physically hold rather than what you invoiced. Payments land in the year they were collected, so an instalment paid next March belongs to next year's box.
Expenses and incomes
Fixed or per-order, scoped to categories or the whole business, spanning a date range and prorated across it. The same proration function feeds both the sales report and the financial report, so the two cannot disagree.
Intelligence
Nine reports, each behind its own permission, so you can hand someone the numbers they need without handing over the whole business.
Today
Orders, units sold, revenue and catalogue size for the day, with a seven-day revenue sparkline whose day boundaries are your local midnight rather than the server's.
Sales performance
Orders, revenue, cost, gross and net profit, margin, tax, shipping and discounts over any range — plus revenue and order counts across all 24 hours, so you can see which hours actually earn.
Inventory performance
Your items ranked by quantity sold, with current stock beside the sales figure, an optional category filter and a per-variant breakdown when variants are combined.
Categories performance
Sales, cost, inventory value and profit per category, with order-level revenue distributed proportionally so categories always reconcile back to the sales report.
Team performance
Orders and value per team member with a full status breakdown, respecting the same visibility restrictions the rest of the platform enforces.
Expiry and stock
Four exclusive tiers from expired through the next quarter, with units at risk and the value at risk behind them, priced from batch cost where it exists.
Operations
The parts that decide whether the platform survives contact with a real business: who can see what, what happens when the connection drops, and what comes out of the printer.
Permissions
39 individual grants across orders, items, reports, finance, people, settings, export and online presence — including a separate grant just for seeing cost prices.
Visibility restrictions
Four optional limits on top: no editing finalised orders, no setting finalised statuses by hand, and scoping a member to specific categories or to specific order creators. Hidden records return not-found rather than forbidden, so the interface does not become a directory of what you cannot see.
Offline
A local database on the device keeps the catalogue, customers, today's orders, tables and pinned items. You can sell, open and close a drawer, and add dine-in rounds with no connection at all.
A queue that never loses work
Queued work flushes in a fixed order so orders always attach to a real session. Transient failures retry indefinitely, a persistently rejected order becomes visible with a one-tap retry, and nothing is ever discarded.
Printing
Invoices on A4 or Letter, shipping labels at two sizes, receipts on 80 mm or 58 mm thermal — with around 45 toggles deciding what appears, a per-template language, and bulk label printing with a quantity per item.
Kitchen stations
Named network printers mapped to categories, with a fallback station that catches anything unassigned so a ticket is never silently dropped.
Questions
Do I have to use all of this?
No. Batch tracking is opt-in per item. Debts, instalments, offline mode, negative stock and cash rounding are settings you switch on when you need them. A business that just wants a catalogue, stock and orders can ignore most of this page and turn things on later without migrating anything.
Does the online store see the same stock as the counter?
Yes — it is the same figure. There is no synchronisation step between them, because there is nothing to synchronise. An order from either side deducts from the same record under the same lock.
What happens when the internet drops mid-shift?
The apps keep working from a local copy of the catalogue and customers. Orders, drawer sessions and dine-in rounds queue locally and flush in a fixed order when the connection returns. Editing items and importing are blocked offline, deliberately, because those cannot be reconciled safely afterwards.
Can I give someone access to sales figures without showing them what I paid?
Yes. Seeing cost prices is its own permission, separate from every report grant, and each of the nine reports has its own grant as well. You can also scope a member to specific categories or to specific order creators.
Is any of this specific to one country?
The courier integrations and the city report are built for Iraq, and phone validation only enforces the local format when your business is set to Iraq. Everything else — catalogue, stock, orders, pricing, money, reports — is general, in 13 in-app languages and 14 on your storefront.
Where does my data live relative to other businesses?
Every business record carries an organisation, and every request resolves membership and permission for that organisation before reading anything. Records outside your organisation are not filtered out of your results — they are never in scope to begin with.
Start anywhere
Catalogue
Item types, variants, pack sizes, categories and the import path — the records everything else reads.
Online store
Five templates, style presets, custom domains with automatic certificates, and everything the storefront does.
Reports
The nine reports, what each one measures, and why the money numbers reconcile with each other.
آن را روی فهرست کالاهای خودتان ببینید
با بستهٔ مناسب شروع کنید، کالاهایتان را از یک فایل اکسل وارد کنید، و همان روز فروشگاه، صندوق و دفتر سفارشِ فعال داشته باشید.
بستهٔ رایگان موجود است. برای امتحان به کارت نیاز نیست. ورود اطلاعات، فهرست کالاهای فعلی شما را همراهتان میآورد.