> ## Documentation Index
> Fetch the complete documentation index at: https://ombamanual.ombaerp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to process sales using the OMBA point of sale

> Open a sale, build a basket, apply promotions, collect payment across multiple methods, and close the shift using OMBA's browser-based POS.

The OMBA POS is a browser-based point-of-sale terminal designed for fast retail transactions. Products are displayed as tap-friendly tiles grouped by category. A live basket on the right tracks quantities and running totals, while a side panel gives you quick access to holds, orders, payment, and credit sales. The interface is fully responsive and works on tablets and desktop screens.

## Before you start

* You must be logged in with a Cashier, Waiter, or Admin role.
* When you first open the POS you are prompted to **select a location**. Choose the outlet you are operating from. You can switch location later using the **Location** button in the sidebar.

## Checkout flow

<Steps>
  <Step title="Select a location">
    On the location selection screen, tap the button for your outlet. The POS workspace loads with products for that location.
  </Step>

  <Step title="Find and add products">
    Browse products by scrolling through the category strip at the top of the product panel. Tap a category button to filter. You can also type a product name or scan a barcode into the **Search / Scan barcode** field — the matching product is added to the basket automatically.

    Tap any product tile to add one unit to the basket. The tile shows the product name and retail price.
  </Step>

  <Step title="Adjust quantities">
    In the basket, use the **+** and **−** buttons next to each item to change the quantity. You can also type directly into the quantity field. To remove an item entirely, tap the delete (bin) icon on that row.
  </Step>

  <Step title="Select accompaniments">
    If a product has accompaniments configured (for example, a meal that comes with a choice of side), a side-order dropdown appears on that basket row. Select the accompaniment from the list. Free accompaniments are shown inline; chargeable accompaniments are added as separate basket rows.
  </Step>

  <Step title="Add a comment">
    For items that support comments (such as special preparation instructions), a comment field appears below the basket row. Type your note and it will be included on the order ticket.
  </Step>

  <Step title="Apply a discount">
    Tap the **+** button next to "Discount" in the basket footer to open the discount panel. Enter either a flat **Discount Amount** or a **Discount %**. The basket total updates immediately. Only discounts permitted for your role are available.

    Promotions configured in the system are applied automatically when the basket meets the promotion's restriction criteria (minimum value, quantity threshold, eligible products, and active time window).
  </Step>

  <Step title="Choose a payment method and complete the sale">
    See the [Payment methods](#payment-methods) section below for full details on each option.
  </Step>
</Steps>

## Payment methods

<Tabs>
  <Tab title="Cash / Bank account">
    1. Tap **Pay** in the sidebar.
    2. In the **Payment** panel, select a **Bank/Cash Account** from the dropdown (for example, "Cash Till" or a named bank account).
    3. Enter the **Amount** tendered and click **Add To List**. You can split across multiple accounts by repeating this step.
    4. The panel shows the running **Total** collected and the **Change** due.
    5. Tap **Proceed** to finalise the transaction. A receipt is generated and the basket clears.

    <Tip>
      You can mix payment types — for example, part cash and part mobile money — by adding entries for each account before pressing **Proceed**.
    </Tip>
  </Tab>

  <Tab title="Credit sale (post to customer account)">
    1. Tap **Credit Sale** in the sidebar.
    2. Select the **Client** account from the searchable dropdown.
    3. Tap **Proceed**. The sale total is posted directly to the customer's debtor account — no cash changes hands at the POS.

    <Note>
      Credit sales require the customer to have an active account in OMBA. Contact your administrator if the account is missing from the list.
    </Note>
  </Tab>

  <Tab title="Place order (table service)">
    Use this flow when a customer is seated and the sale is not settled immediately.

    1. Tap **Place Order** in the sidebar.
    2. Select the **Table** and the **Waiter** from the dropdowns.
    3. Tap **Proceed**. The order is posted to the kitchen/bar queue and appears in the **View Orders** list.

    To retrieve and bill a table later, tap **View Orders**, find the order by waiter name or table, then tap the preview or modify icon. You can edit the order with **Order Modifier** or collect payment by opening the **Pay** panel.
  </Tab>
</Tabs>

## Hold and retrieve transactions

If you need to pause a transaction mid-sale:

1. Tap **Hold** in the sidebar. The current basket is saved as a held transaction.
2. To resume it, tap **Retrieve** and select the transaction from the list by order number and time.

<Info>
  Held transactions remain in memory for the current session. They are not persisted across logouts.
</Info>

## Handling orders

The **View Orders** panel (tap **View Orders** in the sidebar) lists all open orders for the current location. Each row shows the order number, waiter name, table, and time placed. From this panel you can:

* **Print** the bill (printer icon)
* **Modify** the bill, which opens the Order Modifier to edit line items
* **Preview** the order detail

## Promotions at the POS

Promotions are configured by an administrator in **Promotions Setup** (Admin > Promotions). When a promotion is active, OMBA evaluates every basket change against the promotion's rules:

| Restriction type         | How it triggers                                           |
| ------------------------ | --------------------------------------------------------- |
| Value Greater Than       | Applied when a single line item exceeds the threshold     |
| On Each Value            | Applied to every line item individually                   |
| Total Value Greater Than | Applied when the basket total exceeds the threshold       |
| Qty Greater Than         | Applied when a single item quantity exceeds the threshold |
| On Each Qty              | Applied per unit of each item                             |

Promotions can be set to **Compulsory** (auto-applied) or optional. They can also be restricted to specific days, time windows, user roles, outlet locations, and individual products.

## Shift closure: station expenses

At the end of a shift, use **Station Expenses** to reconcile the day's cash movement before logging out.

<Steps>
  <Step title="Open Station Expenses">
    Navigate to **Sales > Station Expenses** and click **Add New**.
  </Step>

  <Step title="Fill in the shift summary fields">
    Enter the **Date**, select your **Station**, and fill in the applicable fields: Total Gap, Lub Cash, Shortages/Advances, RTT (Road Toll Tax), Fuelling & Lubrication Tankers, Customer Payments, Customer Credits, Unexplained Difference, and Returned Cheques.
  </Step>

  <Step title="Allocate expenses to columns">
    Three expense columns are displayed side by side: **Company Expenses**, **Station Expenses**, and **POS**. Select the expense account and enter the amount for each item, then click the add button to append it to the grid.
  </Step>

  <Step title="Review debit vs. credit totals">
    The footer shows running **Debit**, **Credit**, and **Difference** totals. The difference should be zero for a balanced shift.
  </Step>

  <Step title="Save">
    Click **Save** to post the station expense record.
  </Step>
</Steps>

<Warning>
  You should complete station expenses before logging out. Unsaved data is lost if the session expires.
</Warning>

## Barcode scanning

The search bar at the top of the POS accepts barcode input. Connect a USB or Bluetooth barcode scanner and configure it to send a carriage-return character after each scan. Focus the search field, scan the product barcode, and the matching item is added to the basket automatically.

<Tip>
  If a barcode scan does not add a product, the product may not have a barcode registered in the product catalogue. Ask your administrator to update the product record.
</Tip>
