Customers
Edit and Verify a Customer Profile
Edit changes the existing customer master record used across sales and reports. Verify the customer dossier first, change only the required identity or policy fields, then reopen the same record and confirm that dues and historical sales remain correctly attributed.
- Menu path
- Customers -> Customer List -> select customer -> Edit
- Verified from
- Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
frontend/modules/customers.html customer list and dossier edit action, frontend/modals/customer.html editor fields credit explanation GST accordion and controls, frontend/static/script/js/modules/js/customers.js edit loading validation update submission and customer-display refresh, api/src/controllers/customers.controller.js update normalization protected fields and Boolean credit behavior, api/src/services/customer.service.js existence and duplicate phone/email checks, demo.posnic.io populated customer edit captured on 2026-09-11
Choose the Correct Customer
- Open Customers, then Customer List.
- Search by name, phone or email and select the intended row.
- Read the dossier's contact information, tax type, lifetime sales, sale count and recent Sale IDs.
- Use a recent receipt or phone confirmation when two customers have similar names.
- Select Edit only after the dossier evidence matches the person you intend to change.
What the Editor Changes
| Field | Current behavior | Operational impact |
|---|---|---|
| Name | Required, 3 to 250 characters. | The updated name becomes the customer master label used by future lookups. |
| Phone | Optional, validated through the active country-code phone control, 3 to 20 characters. | A phone already belonging to another customer blocks the update. |
| Category | Stores the selected category ID and name; it can be cleared. | Category reports, segmentation and category-based pricing policy can be affected. |
| Referral customer | Stores the selected referrer's ID and name; it can be cleared. | Use only a real existing customer when referral attribution matters. |
| Optional email format, up to 250 characters in validation. | An email already belonging to another customer blocks the update. | |
| Address | Optional, 3 to 500 characters when entered. | Receipts and customer records can use the corrected address. |
| City | Optional, up to 20 characters and limited by the city validator. | Keep spelling consistent for customer data quality. |
| Country and State | Changing Country reloads the available State list. | Confirm State after Country changes; it may be reset or remapped. |
| Allow credit (pay later) | Checkbox is always saved as a Boolean; unchecked becomes false. | Controls whether future sales may use customer credit. It does not erase or settle an existing balance. |
| GST Type and GSTIN | Shown only when branch GST is enabled; non-consumer types require a 15-character valid GSTIN. | Tax invoices rely on the corrected legal identity. |
Edit the Profile
- Select Edit in the verified customer dossier.
- Wait for the existing values to populate; do not type while the loading indicator is active.
- Change only fields supported by evidence from the customer or business record.
- When changing Country, wait for State choices to reload and select the correct State again.
- When using a customer category, verify the category's pricing or policy implications first.
- Enable or disable Allow credit only under the shop's credit authorization policy.
- For a registered GST customer, open GST Fields, choose Regular or Composite and enter the exact GSTIN.
- Select Update and wait for the success response.
Credit Is Not the Balance
- Allow credit (pay later) is an eligibility switch for future tender behavior.
- Turning it off does not settle, forgive or delete money already owed.
- Turning it on does not create a balance or payment transaction.
- The profile form has no direct balance, due-payment or wallet-transaction amount field.
- Use Settle dues or the customer transaction workflow for money movement, and retain payment evidence.
- Review Outstanding Customers after changing credit eligibility when the customer already has dues.
Category and Referral Boundaries
- Category stores both the chosen category reference and label on the customer.
- Changing category can alter how the customer is grouped in reports and which customer-pricing policy staff expect to apply.
- A blank category is valid, but it removes that grouping from the master record.
- Referral customer is attribution metadata, not a payment, commission or loyalty transaction by itself.
- The editor loads both referrer ID and name; select from the intended record rather than typing an unsupported free-form attribution.
GST Editing
| GST choice | Required data | Result |
|---|---|---|
| Unregistered - consumer | No GSTIN field is shown. | Customer remains a consumer for invoice identity. |
| Registered - Regular | A GSTIN matching the 15-character validator. | GST fields are enabled on the saved customer. |
| Registered - Composite | A GSTIN matching the same validator. | Composite tax identity is retained for invoicing context. |
| Branch GST disabled | GST accordion remains hidden. | Do not assume hidden fields were independently verified during this edit. |
Reset, Close and Update
- Reset reloads the currently selected customer from the server; it does not clear the form like New Customer's Clear control.
- Close dismisses the sidebar without intentionally submitting the form.
- Update sends a PUT request for the existing customer ID.
- The server refuses to change protected identity fields such as _id, license, created date and original creator through this request.
- After a successful edit, the sidebar closes, the route returns to Customers and the local customer-display record is refreshed with name, phone, email and address.
Verify After Update
- Search for the same customer again and reopen the dossier.
- Confirm name, phone, email and tax identity.
- Check that lifetime sales, sale count and recent Sale IDs still belong to the same customer record.
- Run a customer lookup from New Sale and verify the corrected searchable identity.
- If category changed, confirm expected customer pricing and reporting behavior with a controlled test.
- If credit eligibility changed, test only under approved conditions and inspect dues separately.
Troubleshooting
| Problem | Check | Action |
|---|---|---|
| Another customer with this email already exists | Whether the email belongs to a separate profile | Do not overwrite blindly; locate both records and follow the duplicate-customer policy. |
| Another customer with this phone number already exists | Country code and existing customer record | Verify the number and resolve the duplicate profile deliberately. |
| Update is unavailable | Customer Write access in the UI and authenticated route | Ask an authorized role to make the change. |
| State is wrong after country change | Whether the State options finished reloading | Reselect Country, wait, then choose the correct State before Update. |
| GSTIN is rejected | Length, uppercase format and GST Type | Enter the exact valid 15-character GSTIN for a registered type. |
| Existing dues remain after credit is disabled | Difference between eligibility and balance | Use Settle dues or the transaction workflow; do not expect profile editing to move money. |
| Historical sale still shows an old saved name | Whether that sale stores a snapshot of customer data | Use the customer dossier as the current master and preserve source invoices; do not edit financial history only to restyle identity. |
| Reset removed my unsaved changes | Reset reload behavior | Re-enter only verified corrections and use Update when ready. |