We actually read these.
Ideas submitted here go to the product team, not into a void. Add yours, vote on others, and comment on what matters to your business.
Talk to our Product Managers live: every other Monday, 1:00–2:00 PM ET → https://www.d-tools.com/cloud-product-office-hours
Products are ordered with a UOM, priced with that UOM, and are often sold as a different UOM. For example, buy speakers as pairs, sell as each. Buy pre-construction brackets as 5-pairs (10 each) and sell as each. Cost/pricing needs to be calculated correctly too, so a 25 pack of something for $250 gets properly divided when updating cost/pricing on the catalog item ($10 each). This is essential for properly dealing with accessories on products/packages. It affects wire too (buy 1000 or 500 ft spool/box, sell by the foot).
UOM should be editable too and be able to choose whether to use the Library's UOM info or your own catalog's UOM info when doing pricing updates. Currently I see some items come in from the Library as a pair, but that can't be edited when necessary. If I create a new product, I can't assign a UOM.
introduce a new product_uom_settings table (or extend the existing products/catalog table) with fields for purchase_uom, purchase_qty (conversion factor to base unit), selling_uom, selling_qty, default_run_length_ft, and a flag for library overrides. Internally, always track inventory in a standardized base unit (“Each” for countable items, “Foot” for wire) for accuracy. Core conversion logic should be centralized in a service layer (e.g. UomConversionService) using these formulas: Base Quantity = Selling Qty × Selling Qty per Unit; Purchase Units to Order = Ceiling(Base Qty / Purchase Qty per Unit); and automatic cost-per-selling-unit calculation when receiving POs or updating catalog pricing.
For the UI, add a new “Units of Measure” tab in the Product Master with live conversion previews, allow full editing of UOM fields (including overrides from the Library), and enable custom run lengths per project/zone for wire. In project item entry and PO generation, default to the Selling UOM for user input while automatically calculating and rounding purchase quantities behind the scenes. Update receiving, reservation, and inventory views to convert on-the-fly between base, selling, and purchase units, with clear confirmation dialogs for cost updates (e.g., “25-pack at $250 → $10 each”).
This design ensures backward compatibility (default 1:1 UOM for existing items), supports fractional quantities, and can be rolled out in phases starting with catalog + library fixes, followed by bulk purchasing and inventory enhancements.