Skip to content
Projects

NetSuite Stock Lens

Chrome extension that shows live NetSuite inventory on hover, inside the transaction you are already looking at: totals, per-location breakdown and incoming POs, using your existing session.

Year
2025
Role
Design, engineering, release
Stack
TypeScript, React, WXT, Chrome MV3, Zod, Vitest, Playwright
Get it on the Chrome Web StoreSource
NetSuite Stock Lens

NetSuite has shown item availability in QuickView for years, but not under Multi-Location Inventory. The enhancement request has been open since 2019. In the meantime, anyone working a sales order with stock in more than one warehouse has to leave the transaction, look the item up, and come back.

Stock Lens closes that gap without asking for any account setup. Hover an item on a Sales Order, Quote, Invoice or Purchase Order and an overlay shows on-hand, committed, available and on-order totals, the per-location breakdown, the next incoming PO, and a red/yellow/green availability badge.

How it works

The extension reuses the session you are already signed into. No Integration Record, no OAuth flow, no credentials to rotate. That decision shapes everything else: there is no server to send data to, no analytics, and host permissions are restricted to NetSuite domains.

Behind the overlay sits an LRU cache layered over chrome.storage.local, with in-flight request dedup and stale-while-revalidate, so hovering across a 200-line sales order does not turn into 200 round trips. List views and saved searches are detected separately and prefetched. The overlay itself renders in a Shadow DOM so NetSuite’s stylesheet and the extension’s never touch.

Shipping it

v1.0.0 is on the Chrome Web Store under the MIT license. The repository is public and carries the architecture notes, the threat model and a contributing guide, plus unit tests in Vitest and end-to-end coverage in Playwright.

Technology

  • TypeScript and React on WXT, the extension framework that handles Manifest V3 packaging, content scripts and hot reload during development.
  • Chrome Manifest V3 with host permissions restricted to NetSuite domains. The extension reuses the session you are signed into: no Integration Record, no OAuth, no server, no analytics.
  • An LRU cache over chrome.storage.local with in-flight request deduplication and stale-while-revalidate, so a 200-line sales order does not turn into 200 round trips. List views and saved searches are detected separately and prefetched.
  • Shadow DOM for the overlay, so NetSuite’s stylesheet and the extension’s never touch.
  • Zod validating every response from NetSuite before it reaches the UI.
  • Vitest for unit tests and Playwright for end-to-end coverage, with the architecture notes, threat model and contributing guide in the public repo. Published on the Chrome Web Store under the MIT license.