FireAI ERP
Create a price list
Minute-by-minute guide to create a sales or purchase price list, add product rates (packet MRP), set automatic state or customer matching, assign lists, and verify rates on a draft invoice.
Updated September 11, 2026
A price list is a named set of selling (or buying) rates for products. FireAI ERP can pick the right list automatically from the customer’s state or an allowlist of customer names / IDs, or you can assign a list on the customer record.
This guide walks through every click for a sales price list (the common case). Purchase lists work the same way under Purchases → Prices.
Before you start
2. Your role needs View and Edit on Price lists (ask admin under Settings → Roles).
3. Decide the rate unit your company uses. Many ice-cream / packet businesses store packet MRP = unit MRP × units per pack (not the per-piece MRP alone).
What you will build
| Example list | Who it applies to | How auto-match works |
|---|---|---|
| West Bengal | Customers with state West Bengal (19) | Match state equals 19 |
| ROI (Rest of India) | Customers in any other Indian state | Match state is not 19 |
| Special dealers (optional) | Named customers only | match_customer_names / match_customer_ids |
Contents
- Open the Prices screen
- Create the price list header
- Field reference (every header field)
- Add product rates (lines)
- Set automatic matching (state / customers)
- Optional: assign a list on a customer
- Test on a draft sales invoice
- Second list for ROI (copy pattern)
- Troubleshooting
- Done when
1. Open the Prices screen
Steps
- Sign in to FireAI ERP.
- In the left rail, click Sales.
- In the top tabs, click Prices.
- You should see the Price Lists table (empty or with existing lists).
- Confirm you can see + New Record (or Create / New) at the top right. If not, you lack Edit permission.
Purchase price lists
Done when
- You are on Sales → Prices and see the Price Lists list
2. Create the price list header
The header is the list itself (name, type, matching rules). Product rates are added as lines on the same form.
Steps
- Click + New Record.
- A form opens for a new price list (header fields on top; line items below or in a lines section).
- Fill the fields using the field reference below. Suggested starter values for a West Bengal sales list:
| Field | Suggested value |
|---|---|
| Name | West Bengal - WEF 2026-02-23 |
| Code | WB-2026-02 |
| List type | Sales |
| Pricing scheme | Unit (flat rate) |
| Pricing method | Custom rate |
| Base price field | MRP |
| Match state op | State equals |
| Match state code | 19 (West Bengal) |
| Match priority | 50 (lower = preferred if two lists match) |
| Valid from | Effective date of the list |
| Is active | On / true |
- Do not save yet if you still need to add lines on the same screen — or Save header first if your UI requires a saved parent before lines (both patterns exist; if Save is required, save, reopen the row, then add lines).
- Prefer saving once with header and at least one line so the list is usable immediately.
3. Field reference (every header field)
Use this table while filling the form. Leave a field blank only when the Notes column says it is optional.
| Field | Required? | What it means | What to enter |
|---|---|---|---|
| Name | Yes | Label staff see in dropdowns | Clear name, e.g. West Bengal - WEF 2026-02-23 |
| Code | Recommended | Short stable key | e.g. WB-2026-02, ROI-2026-02 |
| List type | Yes | Sales vs purchase rates | Sales for customers; Purchase for vendors |
| Pricing scheme | Yes | Flat vs quantity slabs | Unit = one rate per product. Volume = different rates by qty range |
| Pricing method | Yes | How the rate is computed | Custom rate = use the number on each line (usual). Markup / Markdown = % off product base |
| Base price field | For markup/markdown | Which product number is the base | sales_price, purchase_price, or mrp. For custom rate lists still set MRP if that is your company base |
| Percentage | Only for markup/markdown | List-level % | Leave 0 for custom rate |
| Country code | Optional | Filter by party country | Leave blank for India-only ops |
| Match state op | For auto-pick | How state is compared | Any state / State equals / State is not |
| Match state code | With eq/neq | GST state code | West Bengal = 19. Used with Match state op |
| Match customer ids | Optional allowlist | Only these customer UUIDs | Comma or newline separated IDs. When set, this list applies only to those customers (beats state-only lists) |
| Match customer names | Optional allowlist | Only these customer names | Comma or newline; matched case-insensitively to customer Name |
| Match priority | Optional | Tie-break | Integer; lower wins when two lists match equally |
| Valid from / Valid to | Optional | Active date window | Outside the window the list is ignored |
| Is active | Yes | Soft on/off | Must be active for auto-match and rates |
| Description | Optional | Internal note | Free text |
How auto-pick chooses a list
1. Price list chosen on the invoice/order (manual override)
2. Price list assigned on the customer (customer form field)
3. Auto-match: customer allowlist → then state equals/not-equals → then “any state” catch-all
4. Otherwise product master price
So: leave Customer → Price list empty if you want pure state-based auto selection.
4. Add product rates (lines)
Each line ties one product to a rate on this list.
Steps
- In the price list form, find the lines / Price list items section.
- Click + Add line (or equivalent).
- For each product:
| Line field | Required? | Notes |
|---|---|---|
| Product | Yes | Pick from Products. Name must match the SKU you sell |
| Rate | Yes (custom rate) | Enter packet MRP if that is your company rule (mrp_per_unit × units_per_pkt). Example: unit 5 × pack 30 → rate 150 |
| Qty from | Volume only | Start of slab (use 0 for unit lists) |
| Qty to | Volume only | End of slab; blank = open-ended |
| Percentage | Markup/markdown override | Usually blank for custom rate |
| Notes | Optional | e.g. product label or pack hint |
- Add all products that belong on this list (you can save and edit later).
- Click Save on the price list.
Bulk tip
Packet MRP reminder
| Product | Unit MRP | Pack qty | Rate to enter |
|---|---|---|---|
| MANGO SMALL - 30 | 5 (WB) | 30 | 150 |
| MANGO SMALL - 30 | 7 (ROI) | 30 | 210 |
Do not enter 5 or 7 if your ERP rates are packet-based.
Done when
- Every required product has a line with the correct rate
- List is saved and appears in Sales → Prices
5. Set automatic matching (state / customers)
Do this on the header so orders pick the list without assigning every customer.
West Bengal list
- Open the West Bengal price list → Edit.
- Set Match state op = State equals.
- Set Match state code = 19.
- Leave Match customer ids / names blank (unless this list is also a special allowlist).
- Set Match priority to something like
50. - Save.
ROI list
- Create or open the ROI list.
- Set Match state op = State is not.
- Set Match state code = 19.
- Match priority e.g.
100. - Save.
Named customers only (optional third list)
- Create a list such as
VIP Dealers. - Put exact customer names in Match customer names (one per line), or paste customer UUIDs in Match customer ids.
- Leave state op as Any state (or still set state if you want both).
- Allowlisted customers beat state-only lists.
Customer must have a state
6. Optional: assign a list on a customer
Use this when one customer must always use a list, regardless of state.
Steps
- Open Sales → Customers.
- Open the customer → Edit.
- Find Price list and select the list.
- Save.
This assignment wins over auto state matching (but a manual list on the invoice still wins over both).
7. Test on a draft sales invoice
Never go live without a draft check.
Steps
- Open Sales → Customers and pick a West Bengal customer (state code 19). Confirm Price list is empty if you want to test auto-match.
- Open Sales → Invoices → + New Record.
- Select that customer.
- Confirm the invoice Price list shows your West Bengal list (auto or assigned).
- Add a line for a product on the list (e.g. MANGO SMALL).
- Confirm Rate matches the list (e.g. 150 for WB packet MRP).
- Repeat with an out-of-state customer and confirm ROI rates (e.g. 210).
- Discard or cancel the drafts if they were only tests.
Done when
- WB customer draft shows WB rates
- Non-WB customer draft shows ROI rates
8. Second list for ROI (copy pattern)
- Sales → Prices → + New Record.
- Name
ROI (Rest of India) - WEF 2026-02-23, codeROI-2026-02. - Same scheme/method as WB (Unit + Custom rate).
- Match state op = State is not, Match state code = 19.
- Add the same products with ROI packet rates.
- Save and test with a non-WB customer.
9. Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Rate stays at product master | No list matched | Check list Is active, validity dates, customer state code, and match fields |
| Wrong list picked | Customer has an assigned price list | Clear customer Price list to use auto-match, or set the intended list |
| Product missing on invoice catalog | Some portals only show products on the matched list | Add a line for that product on the list |
| Rate looks 30× too small/large | Unit vs packet MRP mix-up | Re-enter packet rates (unit × pack) |
| “State is not 19” never applies | Customer state blank | Set customer state code |
| Cannot open Prices | Role permission | Admin → Settings → Roles → grant View/Edit on price lists |
| Lines section missing | Editing detail collection alone | Always edit via Price Lists parent form (items are not a standalone entry screen) |
10. Done when
- At least one Sales price list exists with product lines
- Auto-match (or customer assignment) verified on a draft invoice
- Team knows whether rates are packet or unit MRP
- ROI / home-state (or other) lists documented for staff