Purchase options

Purchase options let one product be bought several different ways — different suppliers, different brands, different pack shapes — while your inventory counts, recipes, and reports stay on the single product.

When you need this

You probably already know if you do. The telltale is a product you buy from more than one place, or in more than one shape:

  • Ground beef — your distributor sells a 4×5 lb case (20 lb), but when you run short mid-week you grab 10 lb tubes at Costco.
  • Flour — a 50 lb bag from your bulk supplier normally, 25 lb bags from a backup when they're out.
  • Olive oil — a case of 6 bottles on the truck, single bottles from the restaurant store in a pinch.

Without purchase options, kitchens handle this by creating a second product ("Ground Beef — Costco"), and everything downstream splits in two: counts have two lines for the same shelf, recipes only deduct from one of them, and cost reports can't see the whole picture. Purchase options exist so you never have to do that.

The idea: one product, many ways to buy

Each purchase option records one way to buy the product:

  • Option name — how you'd say it: "Costco 10 lb tube", "Seymour's 4×5 lb case".
  • Supplier — optional, and each option can have a different one.
  • Pack size — how many of the product's counting units one pack adds to inventory. A 10 lb tube on a product counted in lb is pack size 10. This is the number that makes the math work.
  • Sold as — what to call one pack (case, bag, tube, pail). Receipts and history use this word, so deliveries in Rinvy read like the supplier's invoice. Defaults to case.
  • Cost per pack — each option remembers its own latest price, updated automatically every time you receive against it.

Everything else about the product is unchanged. You still count it in one unit, recipes still reference the one product, and stock is one number.

Adding your first option

  1. On the Products page, open the product for editing. The Purchase options section appears below the cost fields (edit mode only — save a new product first).

  2. Tap Add option and describe the alternate pack: name it, pick its supplier if it has one, and enter its pack size in the product's counting unit. Cost per pack is optional — it fills in automatically on the first delivery. Estimates are fine for pack size; you can refine it any time.

  3. The moment the first option is added, your product's current supplier, case size, and case cost become the default option automatically — so the list immediately shows both ways you buy: the way you always did, and the new one.

The default option

One option is always the default — it represents the product's normal configuration. The product's supplier, case size, and case cost fields become a read-only reflection of it, and the option editor becomes the one place to change them. Ordering suggestions and case-based counting stay keyed on the default, which is why its pack size must be a whole number (fractional packs — say a bag with an estimated yield — are fine on any other option).

Use the star to make a different option the default when your "normal" source changes for good.

Receiving against an option

This is where the payoff is. On Receive products, each line's unit picker lists the product's units and its purchase options. Pick the option that matches what came off the truck and Rinvy does the pack math:

  • Receive 2 × Costco 10 lb tube20 lb enters inventory.
  • The line's cost is per pack ("Cost per tube"), prefilled from that option's last price.
  • If you've set the receipt's supplier at the top, picking a product auto-selects that supplier's option — a Costco receipt starts ground beef on the Costco tube without you touching the unit picker.

Nothing changes for the rest of the flow: the receipt, activity history, and reports all show the delivery in real units, labeled the way the option is sold.

Per-source price history and smarter alerts

Every option keeps its own price stream, and price change detection compares within a stream, never across streams:

Why per-stream pricing matters

Ground beef, counted in lb:

  • Default: Seymour's 4×5 lb case, last received at $92.00 ($4.60/lb)
  • Option: Costco 10 lb tube, last received at $35.00 ($3.50/lb)

You receive Costco tubes at $35.00 the week after a Seymour's delivery at $92.00. No price alert fires — that's a different source, not a price change. Next month Costco charges $38.50 for the same tube. Now an alert fires: +10% within the Costco stream, which is a real move.

The product report's price chart shows one line per option, so you can see both sources' trends side by side — the raw material for deciding where to buy.

The product's blended cost (used by inventory value and food-cost reports) still averages across everything you actually received, whatever the source — see how cost is computed.

Retiring an option

When you stop buying from a source, deactivate the option (the archive button) rather than deleting it. A deactivated option disappears from the receive picker and can't be used on new deliveries, but its receipt history and price trail stay intact — and you can reactivate it if the source comes back. Deleting is only possible for options that have never been received against; anything with history refuses to delete and points you at deactivate instead.

What the beta doesn't do yet

So expectations are set for the current beta:

  • The order list speaks in the default option. Suggested orders are in the default's cases, and receiving a pending order books it against the default configuration. Choosing which option to order (and having the order list group by that option's supplier) is coming as per-option ordering.
  • Invoice scanning doesn't auto-match options yet. An emailed or uploaded invoice matches lines to products; assigning a line to a specific option happens when you receive manually. Code-to-option matching is planned.
  • Counting is per product, not per pack. You count in the product's unit (with the default option's case math available), not "3 tubes + 4 lb".

Common mistakes

Creating a second product for the second supplier

That splits your counts, recipes, and reports in two forever. Add an option to the existing product instead — one shelf, one product, many ways to buy it.

Trying to edit supplier or case cost on the product form

While options exist those fields are managed by the default option, so the form shows them read-only. Edit the default option in the Purchase options section — the product fields follow it automatically.

Leaving the editor without tapping Save option

Changes to an option are saved by its own Save option button, not by the product's save. Rinvy will warn you if you try to leave an option half-edited, but the habit to build is: edit the option, save the option.

Deleting an option to hide it

If it has deliveries behind it, delete is blocked on purpose — that history prices your reports. Deactivate instead; it vanishes from receiving but keeps the record.

Related