The Hidden Billing Problem in Every Fish and Produce Warehouse
If you run a wholesale business selling fish, meat, or fresh produce, you already know the headache: the weight you ship is almost never the weight you quoted.
A customer orders 10 lbs of salmon. You pack the order and it comes out to 9.3 lbs. Or 11.1 lbs. Close — but not exact. And in Zoho Inventory, that small gap creates a surprisingly big problem.
The Core Issue: Zoho Inventory's Invoice Flow
In Zoho Inventory, the standard order-to-invoice workflow looks like this:
Sales Order → Package → Shipment → Invoice
The Invoice is generated from the Sales Order. That means the invoice quantity is based on what the customer ordered — not what was actually shipped.
For most businesses, this is fine. If a customer orders 10 units of a product and you ship 10 units, everything matches.
But for catch weight items — products where the actual weight isn't known until the moment of picking or shipping — this workflow breaks down.
What Is "Catch Weight"?
Catch weight is an industry term for products that are sold by approximate quantity but billed by actual weight.
Common examples:
- Seafood: A whole fish, a block of tuna, a bag of shrimp
- Fresh produce: Heads of cabbage, bundles of kale, whole melons
- Meat: Whole cuts, poultry, deli-style by-the-pound items
In these categories, you might quote a customer "around 10 lbs" — but the actual package might be 9.8 lbs or 10.4 lbs. The final invoice needs to reflect the actual weight shipped, not the estimated order quantity.
What Happens Without Catch Weight Support?
Without a dedicated catch weight solution, businesses typically handle this one of two ways — and neither is great:
Option A: Edit the Sales Order before invoicing Every time. For every line item. Manually. This works, but it's error-prone, time-consuming, and creates a messy audit trail.
Option B: Invoice at the estimated quantity and reconcile later This leads to incorrect billing, customer disputes, and accounting headaches.
For a business processing dozens or hundreds of orders a day, neither option scales.
The Solution: A Catch Weight Extension for Zoho Inventory
I'm currently building an MVP of a Catch Weight extension using Zoho Inventory Extensions and Zoho Creator.
Here's the concept:
- When a Sales Order is created, it captures the ordered quantity as usual
- At the time of packing or shipment, the picker records the actual weight of each catch weight item
- The extension automatically updates the Sales Order to reflect the actual weight — before the invoice is generated
- The Invoice is then issued with the correct, as-shipped quantity
This keeps Zoho Inventory's standard workflow intact while closing the gap between "what was ordered" and "what was shipped."
Who This Is For
This extension is designed for Zoho Inventory users in:
- Seafood wholesale and distribution
- Fresh produce distribution
- Specialty food wholesale (meat, dairy, deli)
If your business invoices customers based on actual weight — not just unit count — this is built for you.
What's Next
The MVP is in active development. Once complete, the plan is to publish it to the Zoho Marketplace, making it available to any Zoho Inventory user.
In future posts, I'll walk through the technical implementation: how the Extension and Creator app work together, how Sales Orders are updated programmatically, and the Deluge code behind the automation.
Are you dealing with catch weight challenges in Zoho Inventory right now?
I'd love to hear how you're currently handling it. Reach out directly or connect with me on LinkedIn — your use case might shape the next feature.

