Skip to content

Modules & the App marketplace โ€‹

ZeylonPOS is built from modules โ€” self-contained features like Restaurant Management, Accounting, KDS or ZATCA e-invoicing. The App marketplace is where you see every module, switch the ones you want on, and configure them.

๐Ÿ”ท For managers & admins
The marketplace needs settings.apps.read to view and settings.apps.update to enable, disable or configure a module. Some paid modules also involve the subscription.
The App marketplace
Screenshot pendingRoute /app, logged in as an admin
Each module is a card you can search, filter, enable and configure.

Browsing modules โ€‹

Open the App marketplace at /app. Each module is a card showing its name, description, type and whether it's Free or Paid. At the top you'll see how many modules are installed and how many are enabled.

To find one:

  • Search by name, description or code.
  • Filter by type โ€” accounting, POS, inventory, payment, report or compliance.
  • Filter by status โ€” All, Enabled or Disabled.

Free modules vs paid add-ons โ€‹

There are two ways a feature gets switched on, and the card tells you which:

  • Free module โ€” just flip its toggle on. It's included in your plan.
  • Paid add-on โ€” you must Subscribe to it first. Its enable toggle stays greyed out until the subscription is active, so you can't turn it on until you've subscribed (see Paid modules).

Whether a given module is free or paid depends on your plan โ€” a paid add-on shows a price on its card; a free one doesn't.

As a rule of thumb on the current plans:

  • Included on every plan (just toggle on): Discounts, Bundles, Modifier groups, Variant options, Specifications, Barcode labels, Multi-unit pricing, Purchasing, and Stock transfers.
  • Paid / higher-tier (subscribe or upgrade first): Accounting, Restaurant, Kitchen Display, Repairs, Exchange, Advanced inventory, Inventory Pro and ZATCA. On the entry-level plan these show as Unavailable until you move to a plan that includes them.

Your operator sets the exact split per plan, so always trust the card's Free / Paid label and status over this list.

How to enable a feature โ€‹

Most optional features are packaged as a module. The routine is always the same:

  1. Open the App marketplace at /app.
  2. Search for the module (or filter by type) โ€” use the feature reference table below to find which module a feature belongs to.
  3. If the card shows Locked or Unavailable, it's a paid add-on or not on your plan โ€” Subscribe (see Paid modules) or upgrade first.
  4. Flip the card's toggle on.
  5. If the module has settings, a Configure button appears โ€” open it to finish setup (floors & tables, KDS stations, ZATCA onboarding, and so on).

The feature's screens and menus appear as soon as the module is on. A couple of features need a second switch beyond the module toggle โ€” most notably Restaurant mode, which also has to be turned on per branch. The reference table flags these.

A card can show one of a few states:

StateMeaning
EnabledSwitched on and in use
DisabledAvailable (included or subscribed) but switched off
LockedA paid module you haven't subscribed to yet โ€” toggle disabled
Pending approvalSubscribed via manual payment, awaiting approval โ€” still locked
UnavailableNot offered on your current plan โ€” upgrade to get it

What happens if you open a locked feature directly

If you follow a link or bookmark to a feature that isn't switched on, ZeylonPOS shows a short "needs an upgrade" / "isn't enabled" screen instead of the page โ€” with a button that takes you straight to View plans (when it's not on your plan) or to the App marketplace to enable it (when your plan includes it but it's off).

Configuring a module โ€‹

Modules that need setup open a configuration screen when you select Configure. Some show a simple form of settings; a few have richer editors:

Fill in the fields and select Save. The header shows whether the module is Configured or Not configured.

How access is decided โ€‹

A module's screens, menu items, reports and API are available only when all of these are true:

  1. Your plan includes it. Free modules are always included. Paid modules come from your plan, a paid add-on, or an arrangement with your service provider.
  2. It's switched on in the App marketplace.
  3. Every module it depends on is available too. For example, the Kitchen Display needs Restaurant: if Restaurant leaves your plan, paired kitchen screens stop working as well.

If any of these isn't true, the module disappears from the menus on the web app and the mobile app. Opening its page from a link, bookmark or typed address shows the "needs an upgrade" / "isn't enabled" screen, and the server refuses the request too. Switching a module on doesn't work unless your plan includes it.

Some plans include a module as view only. On the entry-level plan, for example, Accounting is read-only: you can open the chart of accounts, journals and the contact ledger, but creating or editing entries is refused until you move to a plan with full accounting.

Changes apply straight away

Upgrades, downgrades, add-ons and changes your service provider makes to your plan take effect immediately on every device. A module that leaves your plan keeps its data, but you can't open or export it until the module is back.

Feature โ†’ required module (and plan) โ€‹

Not sure which switch turns on the feature you want? Find it here. Most modules are route-gated โ€” enable the module and its screens unlock. A few are UI-gated: they depend on more than a single toggle (a branch setting, or an active shift), so they don't simply appear on a route.

Route-gated modules โ€‹

Enable the module in the marketplace and the feature's pages become reachable.

FeatureModule codePlan / notes
Exchangesexchangeโ€”
Debit noteszatcaKSA e-invoicing
Advance paymentszatcaKSA e-invoicing
ZATCA e-invoicingzatcaKSA e-invoicing
Stock transfersstock_transfersโ€”
Reorder alertsadvanced_inventoryโ€”
Cycle countsadvanced_inventoryโ€”
Lots / batchesinventory_proโ€”
Serial numbersinventory_proโ€”
Landed costsinventory_proโ€”
Bundlescatalog_bundlesโ€”
Modifier groupscatalog_modifiersโ€”
Variant optionscatalog_variationsโ€”
Specificationscatalog_attributesโ€”
Discountsdiscountsโ€”
Suppliers & purchase orderspurchasingโ€”
Repairsrepairsโ€”
Accounting โ€” chart of accounts, journals, contact ledgeraccountingviewing works with any accounting grant (including view-only); creating and editing entries needs full accounting
Accounting โ€” fiscal periods, reconciliation, manual journal editingaccountingneeds full accounting
Profit & loss ยท Balance sheetaccountingreport_profit_loss plan feature
AR / AP agingaccountingreport_receivables_aging plan feature
Inventory reports (stock level, movement, valuation)โ€”report_inventory plan feature

UI-gated features (more than a toggle) โ€‹

FeatureModule codeExtra switch
Restaurant tables, split & transferrestaurant (alias tables)Also turn restaurant mode on for the branch's POS config
Kitchen DisplaykdsRequires the Restaurant module. Tickets only flow from restaurant-mode branches; pair a screen to a station

Why two groups?

Route-gated modules hide their pages the instant the module is off. Restaurant mode and KDS depend on a branch being set to restaurant mode as well, so enabling the module alone isn't enough โ€” see Setting up Restaurant mode.

A Paid module is unlocked by subscribing to it as an add-on. Its enable toggle is locked until the add-on is active โ€” subscribe first, then turn it on.

On the card:

  1. Select Subscribe (or Renew if access has ended).
  2. Choose a monthly or yearly cycle and review the summary.
  3. Select Submit Request for manual approval.
  4. Once active, the card's toggle unlocks โ€” flip it on and Configure.

After you submit, the card shows Pending approval and stays locked until the ZeylonPOS team approves the invoice โ€” then you can enable it. A live add-on shows Active until its renewal date; you can Cancel it later, after which access drops to read-only and then off. Add-ons and their billing are covered in Subscription & billing.

INFO

Switching a module off hides its screens and blocks its routes. Data isn't deleted โ€” turning it back on restores access.

Next steps โ€‹

ZeylonPOS Knowledge Base