# Customers and subscribers in Irsaal milk shop software

> Add subscribers with their milk, litres, delivery days and rider, take payments, read the ledger, plan with the forecast and review rider sign-ups.

- Product: Irsaal Milk Shop Software, by Irsaal Software
- Section: Setting up
- Page: https://irsaalsystems.com/help/milk-customers
- Last updated: 2026-09-25

Customers in Irsaal Milk Shop Software are subscribers, added under **Management → Customers** (page heading **Customers (Subscribers)**) with **Add Customer**. Each customer has contact details, a **Customer Type** (**Monthly Payer**, **Weekly Payer** or **Daily Payer**), an **Assigned Rider**, a **Delivery Time**, the milk they take and how many litres, their own price, and optionally the products they take besides milk. Each customer has a **Ledger** that keeps their running balance. A customer with a rider and litres for the shift appears on that rider's round when the round is dispatched.

## On this screen: Customers

The page shows five counters: **Active Subscribers**, **Today Morning**, **Today Evening**, **Today Demand** and **Total Receivable**. Under them are the filters: **Search name / phone**, **All Types** (**Monthly**, **Weekly**, **Daily**), **All Riders**, **All Shifts**, and, when riders have added customers, **Added by anyone** / **Added by riders**, then **Filter**. The buttons are **Milk Forecast**, **Added by Riders** (with a count badge) and **Add Customer**. The table columns are **Customer**, **Type**, **Shift**, **Delivery Days** (when flexible schedules are on), **Morning**, **Evening**, **Daily (L)**, **Rate**, **Rider**, **Location**, **Balance** and **Actions** (**Ledger**, edit and delete). A red balance means the customer owes you.

If your plan caps customers, the button shows a used/limit count with **Upgrade**.

## How do I add a customer?

1. Open **Customers** and press **Add Customer**. The heading is **Add Customer**.
2. Under **Contact** fill in **Full Name** (required), **Phone**, **Area / Route** and **Address**.
3. Under **Subscription** choose **Customer Type**:
   - **Monthly Payer (billed to ledger)** and **Weekly Payer (billed to ledger)**: the milk is added to their ledger and they settle later. Their **Balance** grows with each delivery.
   - **Daily Payer (pays cash daily)**: they settle at the door.
4. Choose the **Assigned Rider** (or **-- None --**) and the **Delivery Time**: **Morning**, **Evening** or **Both (Morning + Evening)**.
5. Under **Milk & Quantity** tick every kind of milk the customer takes. For each ticked milk enter **Morning (L)** and **Evening (L)**, and a **Rate (per litre)** if the price differs from the shop rate (the note **Special price for this customer** appears). **Total Per Day**, **Average Rate** and **Bill Per Day** are worked out as you type. At least one milk with litres above zero is required, or you see "Enter how many litres of at least one kind of milk this customer takes."
6. When **Flexible Delivery Schedules** is on, choose **Delivery Days**: **Every Day**, **Selected Weekdays** (tick the weekdays) or **Every Other Day** (with a **First Delivery Date**).
7. Under **Account**, enter **Opening Balance (owed by customer)** for a customer who already owes you. Positive means they owe you. It cannot be changed after the customer is saved, because it opens their ledger.
8. Add **Notes** if needed and press **Add Customer**. The message reads "Customer added successfully." followed by a summary of their milk.

If **WhatsApp** is connected and the **New customer welcome** message is on, the customer gets a welcome message with their type, delivery time, milk, days and account details.

## How do I change a customer?

Press the edit icon in **Actions**. The form is the same, with an **Active subscriber** tick and no opening balance. Saving reads "Customer updated successfully." To stop deliveries without losing history, untick **Active subscriber**.

## Can I delete a customer?

Only one with no history: "Cannot delete a customer with ledger history. Deactivate instead." A customer who has been billed or has paid can only be made inactive. A customer added by mistake with no ledger lines can be deleted; their saved day changes, daily products and loyalty entries go with them.

## How do I give a customer products besides milk?

If **Product Delivery by Riders** is on (**Settings → Modules → Rider**), the form has a **Products** section: "Anything this customer takes besides milk — dahi, butter, bread, eggs. It goes out with the rider like the milk, and is billed when the round is approved."

1. Press **Add a product**, and choose a **Product** (and a **Size** for a product sold in sizes), then **Morning** and **Evening** quantities and a **Rate** (a special price shows **Special price for this customer**).
2. By default the products go at the **Same delivery time and days as the milk**. Untick it to set a **Product Delivery Time**, **Product Delivery Days** and **First Product Delivery Date** of their own.
3. Each product may be on the list only once; a product sold in whole pieces must have a whole-number quantity.

A customer with a product but no milk on a day is still a stop on the rider's round ("ONLY A PRODUCT TODAY").

## How do I take a payment from a customer at the counter?

Open the customer's **Ledger** and press **Receive Payment** (needs the **Receive Customer Payment** button permission). Enter **Amount** (or **Full Balance** / **Half**), choose **Into Account**, set the **Date** and an optional **Note**, then **Save Payment**. The message is "Payment of :amount recorded." A payment above the balance is kept as advance ("This is more than the balance — the extra is kept as advance."). A rider's collections are different: they are credited when the office approves the rider's round.

## What does the customer Ledger show?

The **Customer Ledger** page shows the customer's type, shift, phone, area, litres per day and rate, rider, **Current Balance** (**Customer owes you** / **Advance** / **settled**), and, with the loyalty programme on, their points. Filters are **From**, **To** and **Shift** with **Apply** and **Reset**. The table columns are **Date**, **Shift**, **Description**, **Qty (L)**, **Rate**, **Milk (Debit)**, **Paid (Credit)** and **Balance**, with **Period Totals**. **Export PDF** needs the **Export / Print Ledger** button permission.

## What is the Milk Forecast?

**Daily Operations → Milk Forecast** ("Collective milk required by all active customers, calculated from their daily, weekday or alternate-day schedule") totals the milk you need between two dates: pick **From Date** and **To Date** (a window of at most 367 days) and press **Calculate Milk**. It shows **Total Milk Required**, **Morning**, **Evening**, **Average Per Day**, **Delivery Stops**, the peak day, and a day-by-day table with **By Kind of Milk**. Use it to plan what to arrange with suppliers.

## How do I review customers riders added?

When riders may add customers (see [Irsaal Rider app for milk riders: complete guide](https://irsaalsystems.com/help/milk-rider-app)), a banner on **Customers** says "N customers added by riders are waiting for approval." with **Review**. **Added by Riders** lists each entry (**Waiting for approval**). A sign-up made on a round is settled when you approve that round ("Settle with the round"). One made with no round open ("Sign-up only") is approved here with **Add as customer** (or **Match to :name** when it is set to an existing customer, or **Close without adding**). **Correct** lets you fix the name, phone, milk, days, rider or what happens on approval. **Turn down** rejects the sign-up with an optional reason. Approving needs the **Add** right on **Customers**, correcting needs **Edit**, turning down needs **Delete**. A customer approved this way is marked **Added by :rider**.

## Frequently asked questions

### How do I add a customer in Irsaal milk software?

Open **Customers → Add Customer**. Enter the name, choose the **Customer Type**, **Delivery Time**, the milk and litres, an **Assigned Rider**, and press **Add Customer**.

### Why is a customer not showing on my rider's round?

They have no **Assigned Rider**, they are inactive, they take no litres for that shift, today is not one of their **Delivery Days**, or the round was dispatched before they were added. A round that has gone out keeps the list of doors it went out with. If it has not been handed over yet, cancel it with the red cross on **Rider Dispatch** ("Cancel dispatch and reverse daily bills?") and dispatch it again.

### What is the difference between Monthly, Weekly and Daily Payer?

Monthly and Weekly payers are billed to their ledger as milk is delivered and pay later; only how often somebody collects differs. A Daily Payer pays at the door.

### How do I stop a customer's milk for a few days?

Do not edit the customer. On **Rider Dispatch**, press **No Delivery / Change Quantity** for those dates. See [Rider Dispatch, no delivery and live tracking in Irsaal milk](https://irsaalsystems.com/help/milk-dispatch-and-changes).

### Can a rider see the customer's phone number?

Yes by default. Switch on **Hide Customer Phone Numbers from Riders** on **Settings → Modules** to hide it in the app and the Rider Portal.

### How do I import my customers from Excel?

Use **Import Data** with the customers template. See [Import customers, products and stock from Excel, and restore a backup, in Irsaal milk](https://irsaalsystems.com/help/milk-import-and-backup).

## Khulasa (Roman Urdu)

Customer "Customers → Add Customer" se banta hai: naam, "Customer Type" (Monthly/Weekly ka bill ledger mein lagta hai, Daily darwaze par paisay deta hai), "Assigned Rider", "Delivery Time", doodh aur litre. Purana baqaya "Opening Balance (owed by customer)" mein likhein (baad mein badal nahi sakta). Payment "Ledger" ke "Receive Payment" se lein. Jis customer ki ledger history ho use delete nahi kar sakte, sirf inactive. Kuch din doodh band karna ho to "Rider Dispatch" ka "No Delivery / Change Quantity" istemal karein.

---

Source: https://irsaalsystems.com/help/milk-customers — Irsaal Help Center (https://irsaalsystems.com/help).
