Precious metals & commodities
HJ Bullion
Commerce for inventory whose value moves every four hours — with a two-sided buyback pipeline and lot-level cost basis.
Compares to Shopify plus spreadsheets
The problem
A Shopify store cannot price products whose cost basis and market value float with spot. Dealers end up running a storefront, a spreadsheet, and a bookkeeper, and discovering their margin after the fact.
The approach
- Spot prices pulled every four hours; the full catalog reprices fifteen minutes later against fresh market data.
- Every price change written to an audit log with its source, so any number can be explained after the fact.
- Numismatic valuation modeled properly — mint, series, type and issue, with premiums stacking across strike, grade, metal and year rarity.
- Two-sided buyback pipeline: quote, offer, receiving, inspection, acquisition, inventory lot and unit, with an event ledger.
- Secrets held in Azure Key Vault under managed identity rather than environment variables.
Details that matter
- Inventory is tracked at both lot and unit level with an allocation ledger, because units are fungible and lots are not — that distinction is what keeps cost basis truthful.
- Migrated off Shopify without losing cost basis history, which is the part that usually gets abandoned.
- Intake media captured at inspection, so a disagreement about grade has photographic evidence on both sides.
Systems integrated
| Stripe | rails | Checkout and payment attempts |
| QuickBooks Online | ledger | Customers, items, tax codes, sales receipts |
| Metals spot feed | operations | Spot prices and daily closes every four hours |
| Shopify | operations | Catalog and cost basis migration |
| Grading services | operations | Certification verification |
| Azure Key Vault | identity | Secrets under managed identity |
| Vercel OIDC | identity | Keyless cloud authentication |
Scale
- ~80 data models across pricing, valuation, inventory and commerce
- Full catalog repriced against spot four times daily
Built with
Next.js 16Neon PostgresPrisma 7VercelStripeAzure Key VaultVitest