The shop-floor surface for fragrance oils. Track ounces, watch for low stock, build a vendor-grouped order list, swap out discontinued oils — all in one page. Two tabs: Stock for quantity management, Shopping List for cart-and-checkout. Pro tier.
The page at a glance
Top to bottom:
- Tabs —
Stock (N)|Shopping List (N). Shopping List shows a hazard-orange badge when items are queued. - Filter pills —
All,Tracked,Low Stock,Out of Stock, plus aSelecttoggle for bulk mode. - Search + sort — search by name; sort A–Z, Z–A, Stock (Low First), or Stock (High First).
- House filter accordion — collapsible chip row. Only renders if you have more than one vendor.
- Family filter accordion — same shape, by fragrance family (Floral, Gourmand, etc.).
- Row list — one row per library oil. Active and discontinued rows mixed in the same scroll, sorted together.
- Bulk action bar — only visible in Select mode. Shows count, select-all, export, untrack, delete, close.
Reading a Stock row
Active rows are laid out left-to-right:
- Selection checkbox — only visible in bulk mode.
- Family color stripe — vertical bar matching the oil's fragrance family color.
- Name + vendor — main line + sub-line.
- Quantity input — editable number field with an oz suffix. Auto-saves 500 ms after the last keystroke (or immediately on blur / Enter). Negative values are blocked. Press Escape to revert an in-progress edit.
- Cart button — basket icon. Tap to add to / remove from the shopping list.
+ Trackbutton instead of the qty input — they're in your library but you've never set a count. Click to start tracking; the input appears.Visual states based on stock level:
- Out (qty ≤ 0) — red left accent stripe, red qty text.
- Low (qty > 0 and ≤ low-threshold) — amber left accent stripe, amber qty text.
- Healthy — no accent, ink color.
Adjust stock day-to-day
- 1
Open Inventory → Owned Oils
Sidebar →
Owned Oils(URL:/inventory). - 2
Filter to what you need
Click
Low StockorOut of Stockto scope the list to what needs attention. Or filter by house to focus on a single vendor before reordering. - 3
Type the new quantity
Click into any qty field and type. Up/down arrow keys nudge by 1; the keyboard input commits 500 ms after you stop typing (debounced) — or immediately on blur / Enter. Escape reverts.
- 4
Watch the row recolor
If you cross a stock-level boundary (e.g., type 4 on an oil with a low-threshold of 8), the row recolors live. The summary counts on the filter pills update too.
Make Batchin the Batch Planner decrements these counts automatically — you usually don't need to hand-edit unless you poured outside the app or want to correct a count that's drifted from the bottle on the shelf.Bulk mode (select + act)
- 1
Click Select
The pill at the right end of the filter row. Page enters bulk mode — checkboxes appear on every row, the bulk action bar slides in.
- 2
Pick rows
Click rows to toggle, or click
Select all (N)in the action bar to mark every visible row at once. Filter first, then select-all, to hit a specific subset (e.g., every CandleScience low-stock oil). - 3
Choose an action
Export— downloads the selected rows as a CSV (date-stamped filename). Good for spreadsheet pivots or sending an order list to your bookkeeper.Untrack— clears the qty back to null. Row stays in your library; the qty input flips back to+ Track. Useful when you stopped using an oil but don't want to remove it entirely.Delete— removes the rows from your library entirely. Confirms via a native dialog. The catalog rows stay; only your library link is removed.
- 4
Click ✕ to exit bulk mode
Or just click
Selectagain. Selections clear when you exit.
Discontinued rows + the swap workflow
Discontinued oils stay in the same list. They're visually distinct: Ban icon prefix, DISCONTINUED hazard badge, and a different CTA on the right.
Three lifecycle states:
- DISCONTINUED
Vendor pulled the SKU. You may still have stock.
CTA:
SWAP →opens the Oil Engine. See Library → Oil Engine for the matching algorithm. - swapped → Mahogany Coconut
Swap recorded. Future recipes use the replacement; this row exists so you can pour through what's left.
No CTA — just keep using the bottle until empty.
- 0 oz · REMOVE
Stock is at 0 and the oil was previously swapped. Safe to clean up.
CTA:
REMOVEdrops the library link (catalog row stays untouched).
The Shopping List tab
Click the cart icon on any active row to add it to the shopping list. The Shopping List tab badges with the count.
Inside the tab, oils are grouped by vendor — one card per house, header-colored to that house's brand. Each row shows:
- Oil name (linked to the vendor's product page when available — opens in a new tab).
- Current stock (oz).
- Buy size selector pills —
16 oz/5 lb. Pick the size you're actually ordering. - Mark-bought button — increments the qty in your library by the chosen buy size and removes the row from the cart.
Copy linksbutton — grabs every product URL for that vendor as one newline-separated list. Paste into a new tab's URL bar (or send to your assistant) and you've got every PDP open in seconds.- 1
Build the list
From the Stock tab, tap the cart icon on any oil that's low or out. (Filter to
Low Stockfirst to make this faster.) - 2
Switch to Shopping List
Tab at the top. Vendor cards expand showing your queued oils.
- 3
Pick buy sizes
For each row, tap
16 ozor5 lb— whichever you're actually ordering. - 4
Place the orders
Click the vendor name (or
Copy links) to hit the PDPs. Place orders externally — BLNDR doesn't auto-buy. - 5
Mark bought as orders arrive
When stock arrives, click the mark-bought button on each row. Qty increments by the chosen buy size; row clears from the cart. Or use
Mark all boughtat the top to bulk-clear after a single big order.
Restock alerts (when batches drop you below threshold)
Restock thresholds are set in Settings → My Containers / Wicks / Lids today; for oils, the global low-stock threshold lives in your account settings (default: 8 oz).
- 1
Threshold check fires on batch commit
When
Make Batchin the Batch Planner decrements a quantity to or below threshold, an alert is queued. - 2
Toast appears immediately
In-app banner that fades after a few seconds.
- 3
Email follow-up (if enabled)
If email alerts are on in Settings, a digest is sent. Useful when you're away from the bench and want to know what to reorder.
Square + Shopify push (finished candles)
The Stock tab tracks fragrance oils. Finished candle counts come from the Batch Planner's commit, NOT from this page. When connected, Make Batch pushes finished container counts to Square (and Shopify, if configured) as inventory adjustments.
Configure the SKU mapping in Settings → Square Integration / Shopify Integration before the first batch — otherwise the push silently no-ops on unmapped containers. See Settings → Integrations for the OAuth + mapping flow.