> For the complete documentation index, see [llms.txt](https://kb.logicerp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/packages/setup-package.md).

# Setup Package

**Available on:** Desktop · Web · Phone

A **package** is something a client buys in advance and uses over several visits — for example *10 Hair Spas* (a **fixed services** package) or *₹10,000 to spend on salon services* (a **value based** package). **Setup Package** is where you define your packages, which services each one includes, and the batches used for group courses.

In Setup Appointments, open the menu and double-click **Packages › Setup Package** (or select it and press Enter). It opens as a tab, and is shown only to users allowed to modify the configuration.

It has three tabs: **Package Head** and **Package Detail** each have a **Save** button, and **Setup Batch** has **Save Batches**.

## Package Head — the packages

One row per package:

| Column                             | What to enter                                                                                                                                                                                                                                                                        |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **TITLE**                          | The package name, for example *10 HAIR SPAS*. It must be unique                                                                                                                                                                                                                      |
| **DESCRIPTION**                    | A longer description                                                                                                                                                                                                                                                                 |
| **VALID DAYS**                     | How many days the client can use the package, counted from the day it is sold. Leave **0** for a package that does not expire                                                                                                                                                        |
| **COST**                           | The selling price. For a fixed services package, what the client pays (before any discount), shared across its services by their rates. For a value based package, the amount the client pays — leave it 0 to type the amount at each sale                                           |
| **STATUS**                         | **ACTIVE** or **INACTIVE** — only active packages can be sold                                                                                                                                                                                                                        |
| **MINIMUM QTY.**, **MAXIMUM QTY.** | For a fixed services package, the fewest and most services the client must tick when it is sold. Only the ticked services are given, and the price stays the full COST. Leave **MINIMUM QTY.** at 0 to give all the package's services — always leave it 0 for a value based package |
| **QTY. TYPE**                      | How the minimum and maximum are counted: **ITEM** counts the services ticked; **SERVICE** adds up their service counts (ticking *Hair Spa ×5* counts as 5)                                                                                                                           |
| **LINKED ITEM**                    | A service item that stands for the package — type in the cell to open the item search. Set it for every **value based** package: it is how a client's value package is listed before any services are added to it                                                                    |
| **PACKAGE TYPE**                   | **FIXED SERVICES** — a set number of each service; or **VALUE BASED** — an amount to spend on any services                                                                                                                                                                           |
| **FREE SCHEME AMOUNT**             | For a value based package, the extra amount the client gets free on top of what they pay. Leave it 0 to type it at each sale, where it is then required                                                                                                                              |
| **VALID DATE**                     | The last date the package can be sold. Leave it empty for no limit                                                                                                                                                                                                                   |

Title and description are changed to capitals. Click **Save** and confirm *"Are You Sure You Want To Save Changes ?"*.

* A title left empty gives *"Title Name Can't Be Blank"*; a title already used, *"Title Name Already Exists."*.
* *"Minimum Qty. Cannot be greater than Maximum Qty."*
* To remove a package, delete its row and answer *"Are You Sure You Want To Delete Row?"*. It is removed — with its services and batch allocations — when you click **Save**. A package that a client already has cannot be deleted: *"Package master is in use! Cannot be deleted."*.

**Parameters** opens **Define Package Parameters** for the selected fixed services package, where you list the details (such as measurements or readings) to record for the client when they come in — see [Package Parameters](/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/packages/package-parameters.md).

## Package Detail — the services in a package

**Every fixed services package needs its services listed here, or it cannot be sold.** Pick the **Package** (only fixed services packages are listed), then fill the grid:

| Column            | What to enter                              |
| ----------------- | ------------------------------------------ |
| **PACKAGE NAME**  | Filled in for you                          |
| **SERVICE NAME**  | The service — type to search               |
| **SERVICE COUNT** | How many of that service the package gives |

Click **Save** and confirm. A service left empty gives *"Service Name Can't Be Blank"*; a service already in the package, *"Service Name Already Exists."*. Each service needs a selling rate, because the package price is shared across the services by their rates.

Changing the package with unsaved lines asks *"The changes to this package's services are not saved. Discard them?"*.

> **Example — a hair spa course.** On **Package Head** add *10 HAIR SPAS*: **VALID DAYS** 180, **COST** 8000, **STATUS** ACTIVE, **PACKAGE TYPE** FIXED SERVICES, **MINIMUM QTY.** 0, and save. On **Package Detail** pick *10 HAIR SPAS* and add *Hair Spa* with **SERVICE COUNT** 10, then save. The package can now be sold from **Customer Packages** through **Package Sale**: the client pays ₹8,000 and gets ten hair spas, valid for 180 days, and each hair spa booked against the package uses one of the ten.

## Setup Batch — batches for group courses

A **batch** is a group session, such as a yoga class or a training course, that several package clients attend together. Batches are run from the **Batch Manager**.

| Column             | What to enter                                                                                                              |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| **BATCH TITLE**    | The batch name — unique, up to 150 characters                                                                              |
| **BATCH DURATION** | How long each session lasts, **in minutes**. Each attendee's job slip is booked for this time                              |
| **IN ACTIVE**      | **YES** hides the batch from the Batch Manager                                                                             |
| **DEFAULT AGENT**  | The stylist (trainer) who normally runs the batch. The Batch Manager starts with this stylist, and you can change it there |

Click **Save Batches** and answer *"Are you sure to save selected records"*. Messages: *"Invalid Batch Name."*, *"Batch Duration Required."*, *"Batch Already Exists."*.

### **Allocate / Deallocate Package Services**

Choose the batch in **Select Batch** to see its package services (**Package Name**, **Service Name**). Click **Allocate** to pick package services to add to it, or **DeAllocate** to pick ones to remove — tick them in the selection window and click **Ok**. The change is saved at once. Only services of fixed services packages can be picked.

**Careful:** clicking **Ok** with nothing ticked takes **every** service listed — for DeAllocate, that removes them all.

In the Batch Manager, only clients who bought one of these packages, have uses of the allocated service left, and whose package is active, billed and not expired can be added to the batch.

## Leaving the screen

Moving to another tab with unsaved changes asks *"The changes on this tab are not saved. Discard them?"*. Closing with unsaved changes asks *"Are You Sure You Want To Close Without Saving Data?"*.

## On the web

On the web, **Setup Package** opens as a large window over the diary — full screen on tablets and phones — with the same three tabs. Each tab has a **Delete** button for the selected row.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/billing/setup-appointments/packages/setup-package.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
