▼ DOC 05

Owned Oils

Stock tracking, the shopping list, discontinued swaps

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:

  • TabsStock (N) | Shopping List (N). Shopping List shows a hazard-orange badge when items are queued.
  • Filter pillsAll, Tracked, Low Stock, Out of Stock, plus a Select toggle 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.
NOTE
Untracked oils show a + 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. 1

    Open Inventory → Owned Oils

    Sidebar → Owned Oils (URL: /inventory).

  2. 2

    Filter to what you need

    Click Low Stock or Out of Stock to scope the list to what needs attention. Or filter by house to focus on a single vendor before reordering.

  3. 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. 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.

TIP
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. 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. 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. 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. 4

    Click ✕ to exit bulk mode

    Or just click Select again. 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: REMOVE drops 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.
TIP — Copy links per vendor
Each vendor card has a 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. 1

    Build the list

    From the Stock tab, tap the cart icon on any oil that's low or out. (Filter to Low Stock first to make this faster.)

  2. 2

    Switch to Shopping List

    Tab at the top. Vendor cards expand showing your queued oils.

  3. 3

    Pick buy sizes

    For each row, tap 16 oz or 5 lb — whichever you're actually ordering.

  4. 4

    Place the orders

    Click the vendor name (or Copy links) to hit the PDPs. Place orders externally — BLNDR doesn't auto-buy.

  5. 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 bought at 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. 1

    Threshold check fires on batch commit

    When Make Batch in the Batch Planner decrements a quantity to or below threshold, an alert is queued.

  2. 2

    Toast appears immediately

    In-app banner that fades after a few seconds.

  3. 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.

HEADS UP
Alerts fire on transitionsinto the low state, not continuously. If you hand-adjust a quantity below threshold via the inventory input, no alert fires — only batch-commit decrements trigger them. (Reasoning: hand-edits often correct drift, and you don't want a toast every time you set a number.)

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.