☕ Horeca Assistant UARUEN Open the bot
📦

Stock, orders and inventory

Suppliers, the order template, a colour-coded "what to buy" hint, deadline reminders and entering inventory counts — step by step, from the real screens.

1

Add a supplier

The Stock → Suppliers → ➕ Add tab: name, order deadline (e.g. 18:00), days (<i>all</i> / <i>weekdays</i>), minimum order amount, contact, phone, a note.

The same list can also be edited in the bot — /suppliers_edit: it additionally has a minimum ORDER QUANTITY (not just an amount) and lets you disable a supplier temporarily instead of deleting it.
Stock → Suppliers: the active toggle and search
Stock → Suppliers: the active toggle and search · tap to enlarge
2

Automatic deadline reminder

Two hours before the deadline the bot posts on its own into the company's alert chat — not a specific venue. The message only has the supplier name, the deadline and the minimum amount/quantity — the actual item list is not computed here (that is the next step).
💡 You can turn these reminders off with the supplier_reminders toggle in Notifications if you order on your own schedule.
🤖 Horeca Assistant
🔔 Order reminder

📦 Supplier: Metro
Deadline: 18:00
💰 Minimum order: ₴1,500

📌 Urgent! Time to place the order!
3

Build the order template

The Stock → Orders tab lists suppliers with their deadline and the number of items in the template. Tap a supplier to open the list of items you usually buy from them: add names with the text field at the bottom, remove ones you no longer need with the ✖.

This is a one-time setup per supplier — after that the bot works out quantities from this template automatically.
Stock → Orders: suppliers and the item count in each template
Stock → Orders: suppliers and the item count in each template · tap to enlarge
4

A colour-coded "what to buy" hint

On the supplier screen there is a 💡 Order hint button. The bot takes your template, checks it against actual stock and consumption over the last 7 days in Poster, and shows each item in one of four colours: 🔴 under 2 days left, 🟡 2–4 days, 🟢 enough, ⚪ no match found in Poster (check the item name).
⚠️ An unmatched item (⚪) does not mean "all fine" — it means "the bot could not recognise the item by name", and that is exactly the one worth checking by eye.
🤖 App · Stock → Orders → Metro
📦 What to order from Metro
<i>Template vs stock and consumption over 7 days</i>

🔴 Order now (&lt;2 days)
🔴 Milk 3.2% — 24L, ~1.2 days

🟡 Cutting it close (2–4 days)
🟡 Cream 10% — 6L, ~3.1 days

🟢 Still enough
🟢 Cheese — 8kg, ~9.4 days
5

A ready-made message for the supplier

The 📝 Build order button only takes 🔴/🟡 items, works out a quantity (enough for 7 days minus what you already have) and drafts ready-to-send text: "Hello! Order (Metro): • Milk 3.2% — 40L …". The 📋 Copy and ↗️ Share buttons let you drop it straight into the chat with the supplier.

If everything is 🟢, the bot says "No order needed — stock is enough" instead of showing empty text.
6

The "Stock" tab — six modes

Separately from supplier orders there is a Stock → Supplies tab with a mode switcher: 📋 Order-to-cover (default — how much to buy for N days), 📉 Stock-out (what runs out soonest), 📦 Coverage (how many days current stock lasts), 🥤 Cup restocking, 🥛 Milk ordering, 📦 Dead stock.
💡 These modes are not a replacement for supplier templates — they look at the whole stock at once, without a "who sells it" link. Good for a quick overview; ordering itself is easier from the supplier screen.
Stock → Supplies → Order-to-cover (the default mode)
Stock → Supplies → Order-to-cover (the default mode) · tap to enlarge
7

Milk — a finer calculation

The 🥛 Milk ordering mode calculates differently from the general order tool: average consumption per day of week (Saturday ≠ Tuesday) plus a safety buffer, and it also factors in the weather forecast — if consumption over the next few days is expected below or above the norm, that adjustment shows right in the text.
💡 The list of milk items, delivery days and the safety buffer are configured under "🔔 Notifications" → ⚙️ next to "Milk ordering".
Stock → Supplies → Milk ordering: an N-day buffer plus a weather adjustment
Stock → Supplies → Milk ordering: an N-day buffer plus a weather adjustment · tap to enlarge
8

Inventory: two modes

The Stock → Inventory tab has two modes depending on who is looking. The owner/manager sees 🧹 Inventory counts by default — a comparison of the last two CLOSED counts per storage: what went up, what went down.

A barista (who only has the tab_inv right) lands directly in 📝 Enter counts — a form for an OPEN count in Poster, with fields pre-filled from Poster's current numbers.
⚠️ Without an OPEN count in Poster, the entry form shows "no open inventory counts" — open one in Poster itself first.
Stock → Inventory (the "Inventory counts" mode): comparing the last two closed counts
Stock → Inventory (the "Inventory counts" mode): comparing the last two closed counts · tap to enlarge
9

Enter counts and write them to Poster

The 📝 Enter counts mode needs a fresh Poster back-office web cookie — otherwise writing fails (the bot shows a yellow warning and a 🔑 Refresh cookie button). After writing, the bot shows the discrepancy against what Poster had before, with a 🔄 Re-check button.
Stock → Inventory (the "Enter counts" mode): the cookie warning
Stock → Inventory (the "Enter counts" mode): the cookie warning · tap to enlarge
10

Getting the cookie (in the app)

The simplest way is the 🔑 Refresh cookie button right in this mode: a paste field opens.

1. Open the Poster back office in a desktop browser (not on a phone), on any page.
2. Press F12 (Mac: ⌥⌘J) → the Network tab → reload the page (F5) so requests appear.
3. Click any request in the list → a panel opens on the right → find Request Headers → the Cookie: row.
4. Copy the value IN FULL (everything after Cookie:) and paste it into the app field → «Save».
💡 The same process also works in the bot — the /inventory_cookie command in a DM. It uses a slightly different but equally valid method: right-click a request → CopyCopy as cURL, then paste the whole copied text in one message — the bot extracts what it needs.
⚠️ The bot checks that the text contains two specific keys — pos_session and ssid. If they are missing (you copied only part of the Cookie: value), you get an error listing what is missing. The cookie expires over time: if writing suddenly stops working, just repeat these steps.
11

Slow movers and write-offs

The 📦 Dead stock mode in "Supplies" flags items sitting around too long: for desserts it warns "check the expiry date", for everything else — "worth cutting the price before it spoils". Write-offs for a period export to CSV via /writeoffs Downtown 01.07-15.07.

FAQ

The bot suggests ordering what we already ordered
The "💡 Order hint" button recalculates from current Poster numbers every time — it does not remember that you already placed an order. Simplest fix: do not keep re-checking the same item the same day; the stock updates once the delivery arrives.
How does the bot know how many days are left?
From actual consumption over the previous 7 days and the current Poster balance (the storage movement report). If the template name does not match the Poster item name, the row shows up as ⚪ "not found" — check the spelling.
What does the minimum order amount affect?
It only shows on the supplier card and in the reminder — the bot does not use it to block or adjust the hint or the draft order; it is information for you, not an automatic rule.