I would like to suggest an enhancement - if there was the ability to create custom Modules, I would do this myself.
The idea is that every time a product is sold to a customer, I need to know the serial number and the warranty expiry, for support purposes. At the moment, in ZOHO, I can say that a Customer (an Account or a Contact) has a product (in the related list), but I cannot identify which specific product they have.
Every time I sell a product (now this part could eventually be automatic, triggered from the Invoice or Sales Order), I will create an Installed Product. This installed product will relate one Product with one Customer, to give me a specific instance of that product. I don't sell cans of Coke, I sell items that have serial numbers, and this is important to me.
Every customer can have multiple Installed Products, and every Product can be Installed multiple times (because they all have a different serial number).
When I look at my customer (Account or Contact) I can see a list of Installed Products and Serial Numbers, and when I look at my Product, I can see a list of Customers and Serial Numbers.
When I create a Case, I can associate the Installed Product with the Case (rather than just the Product as I can do now), so that I can build workflow to remind me of things like Warranty periods.
If you look at my screen design (attached):
Product Name - search for the Product from the existing list of Products
Customer - search for both Contacts and Accounts, because I sell B2C and B2B
Warranty Period - a drop down, with each value defined as a number of days. 1 year = 365 days, so when I build the workflow, I can use date arithmatic
Purchase Date - enter the date purchased (or automatically update from the Sales Order)
Serial Number - enter the Serial Number of the Product
Related Invoice - select the Invoice that "sold" the product to the customer
Phone - Main Phone number of the customer, able to be overwritten
Owner - Owner of the record
Status - picklist of "Installed", "Returned - Faulty", "Returned - Warranty", "Returned - Other", "Not in use"
Address details - default from the Customer Delivery address - editable
Description - enter the details of the installation, which may be useful during service calls
Internal Comments - enter details for my staff only
Thank you,
Christopher Stennett

Moderation Update (February 2026):
The original post discusses the need for a custom module to hold the installed products. Custom modules have been supported in the CRM for more than a decade now.