Home / Help Center / pos-app-electronics / electronics / Warranty Tracker
🛡️ electronics

Warranty Tracker

Warranty Tracker registers a warranty, AMC or extended-warranty contract against a product and customer, tracks its expiry, prints a signed certificate, logs claim history, and can send a one-tap WhatsApp renewal reminder as the expiry date approaches.

📍 Menu path: /electronics/warranty
👤 Who uses it: Owner,Manager,Staff

Overview

Every warranty record stores product details (name, brand, model, serial, IMEI), customer details (name, phone), the sale/purchase date, warranty length in months, a Warranty Type, and free-text notes; the expiry date itself is calculated and stored by the backend from sale date + warranty months.

Five warranty types are supported — Manufacturer, Extended, In-Store, AMC and Insurance — and selecting Insurance reveals two extra fields (Insurer Name and Policy/Certificate Number) specific to insurance-backed cover.

A dedicated "Sell Extended Warranty" button opens the same registration form pre-set to warrantyType Extended, distinct from the general "Register Warranty" button used for warranties that came bundled with a sale.

Status badges are computed client-side from the expiry date and a RENEWED flag: Renewed (purple), Expired (red), Expiring (amber, within 30 days) or Active (green).

Before You Start

Step-by-Step Guide

1 Register a new warranty

  1. Click Register Warranty.
  2. Fill in Product Name * (required) plus optional Brand, Model Number, Serial Number and IMEI (up to 20 characters).
  3. Fill in Customer Name, Customer Phone, Sale Date, Warranty (months) (1–120) and pick a Warranty Type — Manufacturer, Extended, In-Store, AMC or Insurance.
  4. If Warranty Type is Insurance, also fill Insurer Name and Policy/Certificate No.
  5. Add any Notes, then click Register.

2 Sell an extended warranty at time of sale

  1. Click Sell Extended Warranty instead of the general Register button — it opens the same form with Warranty Type pre-set to Extended and Warranty (months) defaulted to 12.
  2. Complete the remaining fields exactly as a normal registration and click Register.

3 Print a warranty certificate

  1. Click the print icon on any warranty row.
  2. A new browser tab opens a formatted certificate — product details, customer details, the warranty period with a from/to date pair, an ACTIVE/EXPIRED status line, any notes, and a signature line — and the print dialog is triggered automatically after a short delay.

4 Log a warranty claim

  1. Click the claim-history (clipboard) icon on a warranty row.
  2. Review any previously logged claims (each shows its date, description and outcome).
  3. Fill in Date, Outcome (Repaired under warranty, Part replaced, Rejected by OEM, Pending assessment, Escalated, or leave blank) and Description * (required), then click Log Claim.
💡 Claim history is stored as a JSON array on the warranty record itself — there is no separate claims table.

5 Renew an AMC contract

  1. The renew (↻) icon appears only on AMC-type warranties with 60 days or fewer left and not already Renewed.
  2. Click it — a pre-filled "Register Warranty" form opens with the same product/customer details, today as the Sale Date, Warranty Type set to AMC, and a note referencing the old contract number.
  3. Adjust anything needed and click Register — this creates a brand-new warranty record for the renewed term, then automatically marks the original contract's status as Renewed.
💡 If the new AMC record is not filled with valid data (e.g. Product Name left blank) the save is rejected and the old contract is left untouched, since the "mark old contract Renewed" step only runs after the new record saves successfully.

6 Send a WhatsApp expiry/renewal reminder

  1. The WhatsApp icon appears on any row with a customer phone number where the warranty expires within 30 days (or has already expired) and is not Renewed.
  2. Click it to open WhatsApp Web/App with a pre-filled message naming the product and stating whether it expires soon or already expired, inviting the customer to extend cover with an extended warranty or AMC plan.

7 Search, filter and manage records

  1. Use the search box to filter by product name, customer name, serial number or IMEI.
  2. Use the All / Active / Expiring / Expired tabs to narrow the list — Expiring uses the same "within 30 days" window as the dashboard alert.
  3. Click the edit icon to update any field on an existing warranty, or the trash icon to permanently delete it after a confirmation prompt.

Every Field & Button, Explained

Field / ButtonWhat it does
Sell Extended WarrantyOpens Register Warranty pre-set to Warranty Type = Extended, 12 months.
Register WarrantyOpens a blank warranty registration form.
Product Name *Required; the device or product covered by the warranty.
Brand / Model Number / Serial Number / IMEIOptional identifying details for the covered device; IMEI capped at 20 characters.
Customer Name / Customer PhoneBuyer contact details; phone is required to send WhatsApp reminders or renewals.
Sale DatePurchase date the warranty period is calculated from.
Warranty (months)Length of cover in months, 1–120; combined with Sale Date to compute the expiry date.
Warranty TypeManufacturer, Extended, In-Store, AMC or Insurance; selecting Insurance reveals Insurer Name and Policy/Certificate No.
Insurer Name / Policy / Certificate No.Only shown for Warranty Type = Insurance.
NotesFree-text notes on the warranty record.
expiring-soon banner (page header)Amber banner and count shown whenever any ACTIVE warranty is within 30 days of expiry; clicking View switches the table to the Expiring filter.
Search boxFilters by product name, customer name, serial number or IMEI.
All / Active / Expiring / Expired tabsActive = status ACTIVE and not yet past expiry; Expiring = ACTIVE and 0–30 days left; Expired = no expiry date or expiry date in the past.
Status badgeRenewed (purple), Expired (red), Expiring (amber, ≤30 days), or Active (green), computed live from the expiry date and RENEWED status.
WhatsApp iconSends a pre-filled expiry/renewal reminder via wa.me; only shown when a phone number exists and days-left ≤ 30 (including negative/overdue) and status is not Renewed.
Renew (↻) iconOnly shown for AMC-type warranties with ≤60 days left and not Renewed; opens a pre-filled new registration and marks the old contract Renewed once the new one saves.
Claim History (clipboard) iconOpens the claim log for that warranty — view past claims and log a new one.
Print (printer) iconOpens a print-ready warranty certificate in a new tab.
Edit / Delete iconsEdit opens the form pre-filled; Delete permanently removes the record after a confirmation prompt.

Tips & Best Practices

Troubleshooting & FAQ

The Renew icon isn't showing on a warranty I expect to renew.
It only appears for Warranty Type AMC with 60 days or fewer remaining and a status other than Renewed — extended, manufacturer, in-store and insurance warranties have no renew shortcut; register a new one manually instead.
The WhatsApp icon is missing from a row.
It requires both a saved Customer Phone number and an expiry within 30 days (or already expired); warranties further out, with no phone, or already Renewed will not show it.
I renewed an AMC contract but the old one still shows Active.
The old contract is only marked Renewed after the new registration successfully saves — if that save failed (e.g. a required field was missing), the old record intentionally stays untouched. Re-check the new record was actually created.
Insurer Name and Policy Number fields disappeared while editing.
Those two fields only render while Warranty Type is set to Insurance — switching the type away and back will show them again, but check the values were not cleared in the process.
The certificate print window opened blank or the print dialog didn't appear.
The certificate is generated in a pop-up window — check your browser is not blocking pop-ups for this site; the print dialog fires automatically about 0.4 seconds after the window opens.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/pos-app-electronics/src/pages/electronics/WarrantyPage.jsx
  • frontend-app/packages/pos-react-lib/src/pages/electronics/WarrantyPage.jsx

Backend endpoints used:

  • GET /electronics/warranties
  • POST /electronics/warranties
  • PUT /electronics/warranties/:id
  • DELETE /electronics/warranties/:id

Related tables (db-core repositories):

  • ElectronicsWarranty

Redux slices:

  • None — local component state only

Feature flag key: billing

Claim history is persisted as a JSON string in the ElectronicsWarranty.claimHistory column via a plain PUT of the whole record — there is no dedicated claims endpoint or table. The AMC renewal flow is entirely client-orchestrated: it issues a POST for the new warranty followed by a separate PUT to mark the old one RENEWED, wrapped in its own try/catch that silently swallows failure (no user-facing error) — if the PUT fails, the two warranties will both show as active until manually corrected. The certificate print (printWarrantyCertificate) builds raw HTML into a new window and calls window.print() on a 400ms timeout; it is entirely client-side with no backend template.