Skip to content

Deals

Deals let you offer bundled pricing, buy-one-get-one promotions, and fixed-price bundles.

Admin portal only

Deals are created and configured in the admin portal. This page covers how each deal type works on the POS when staff use them.


Overview

Pratham ResPOS supports three deal types:

Deal TypeHow It Works
ComboGroups of selectable items at one fixed price (e.g., a meal deal with a main, side, and drink)
BOGOComponent-based deal where some items are free or discounted when others are purchased
BundleLike BOGO but the entire bundle is sold at a single fixed price

Combo Deals

A combo bundles multiple selectable groups at a fixed price. Each group represents a course or choice (e.g., "Choose your main", "Choose your side"), and staff select a product for each group at the time of ordering.

How It Works on the POS

  1. Staff tap the combo deal card on the product grid.
  2. The ComboDeals dialog opens, showing each group with its name and min/max quantity badges.
  3. Staff tap a placeholder slot within a group — a product selection screen opens, filtered to that group's allowed categories and products.
  4. Staff select a product. If that product has modifiers, a modifier selection screen appears immediately after.
  5. Half & Half can also be selected within a combo group if the group allows it.
  6. Once all required groups are filled, the Confirm button becomes active.
  7. The combo is added to the cart as a single line item with all group selections nested beneath it.

Pricing: Base deal price + any per-product price adjustments configured on the group + modifier costs.

Image: Screenshot of the combo deal dialog on the POS screen

Image: Screenshot of product selection within a combo group


BOGO (Buy One Get One)

BOGO deals are component-based. Each component has a type that determines how its items are priced. This makes BOGO flexible enough to handle true free-item deals, percentage discounts, and "lowest price" promotions.

Component Types

Component TypeBehaviour
FREE_ITEMItems in this component are priced at $0
DISCOUNTED_ITEMItems receive a fixed dollar or percentage discount
LOWEST_PRICE_DISCOUNTBuys N items, discounts the M cheapest ones

How It Works on the POS

  1. Staff tap the BOGO deal card on the product grid.
  2. The BogoDeals dialog opens, listing each component with a badge showing its type (e.g., "Free", "Discount: 50%").
  3. Staff tap + to add items to each component — a product selection screen opens filtered to that component's allowed products or categories.
  4. Each component enforces its own minimum and maximum quantity.
  5. Once all components meet their minimum quantity, the deal can be confirmed.
  6. Items are added to the cart as separate line items, all tagged with the deal ID. Discounted items show the original price crossed out alongside the discounted price.

LOWEST_PRICE_DISCOUNT detail: When a component uses this type, the discount is applied to the floor(N/2) lowest-priced items across that component. A minimum of 2 items must be added for the discount to activate.

Image: Screenshot of the BOGO deal dialog on the POS

Image: Screenshot of cart with BOGO deal applied, showing discounted pricing


Bundle Deals

Bundle deals are similar to BOGO but use a single fixed price for the entire bundle. Individual item prices are overridden by the bundle's fixed price rather than being discounted individually.

How It Works on the POS

The POS flow for bundle deals is identical to BOGO — the same dialog, the same component structure, and the same product selection flow. The difference is purely in pricing: instead of discounting individual items, the bundle price is applied to the order as a whole.

Image: Screenshot of the bundle deal dialog on the POS


Availability & Time Restrictions

All deal types support the same availability controls:

ControlDescription
Date rangeSet a start and/or end date. Deals outside this range are hidden.
Days of weekRestrict the deal to specific days (e.g., Monday–Friday only).
Time of dayRestrict to a time window within active days (e.g., 11:00–14:00 for a lunch deal).
PlatformControl whether the deal appears on POS, Online ordering, or Kiosk.

Platform filtering: Deals configured for "Customer Website" or "Mobile App" only will not appear on the POS terminal.

Status: Only deals with status set to Active are shown. Set a deal to Inactive to hide it without deleting it.

Note: Date and time restrictions are enforced server-side at the point of order submission, in addition to being filtered client-side on the POS. A deal that expires mid-shift will be rejected at submission even if it was already selected.

Pratham ResPOS Documentation