Supplier orders: from “To order” to receipt and bill
Stavni café orders food every week from Myasnoy Dvor LLC and Molochnaya Ferma. Cenaly supports the whole process: calculate quantities, send an order, receive the delivery and record what you owe. An order records the agreement with the supplier; receiving changes stock, while a registered bill creates the debt.
What you need to get started#
- The Cenaly web panel and access to Inventory: an owner, manager or employee permitted to work in this section.
- The correct location and warehouse, stock items with suitable units, and up-to-date balances.
- Supplier contact details and a price list; access to Companies & Invoices to record the debt.
Set up the supplier and items once. For subsequent purchases, go straight to preparing an order. If editing actions are unavailable, ask the owner to check your permissions.
Step 1. Set up the supplier and price list#
Task: save the recipient, delivery terms and prices so you do not enter them every week.
- Open Inventory → Suppliers → Add Supplier.
- Enter the name, company details, such as the Russian tax ID of Myasnoy Dvor LLC, and a contact person.
- Enter email, WhatsApp or Telegram details; choose Send via and the primary contact for orders.
- Set Delivery days, Order cutoff time and Lead time, days, then save the card.
- Open the supplier’s Catalog and add items with an SKU, price, unit and pack contents.
- Use Stock item to link each supplier item to your inventory item.
The expected date is calculated as follows: after the cutoff, counting starts tomorrow; the lead time is then added in calendar days. If delivery days are specified, the date moves forward to the next allowed weekday. For example, an order placed after Tuesday’s cutoff with a one-day lead time and Thursday deliveries is expected on Thursday. Manual calculations use your device’s local time; automatic calculations use UTC. Check the date before sending. Without delivery settings, there is no calculated date; you can enter one when sending the order.
To upload a price list, open Catalog → Import → From file (price list xlsx/docx/pdf/photo) or From a website (URL). Supported inputs include CSV, Excel, DOCX and PDF. Check the extracted names, prices and units. Review price changes shows new items, price increases, price decreases and missing items. In Packs from the price list, select only the pack definitions you have checked, then choose Apply changes. Unchecked pack definitions are not applied; check units carefully when replacing an existing pack definition.
Result: the next order uses the saved terms and price-list items. If import cannot read the document, add the required items manually. An unlinked item will need a stock-item decision during receiving.
Supplier packs: a bottle and a box#
Task: order wine by the box while keeping stock in litres.
- Create a stock item called “Red wine” with unit l.
- Add two rows in the supplier’s Catalog and link both to that Stock item.
- Enter the price per purchasing unit and In pack:
| Catalog row | Price | Pack content | Pack unit |
|---|---|---|---|
| Red wine, 0.75 l bottle | ₽650 per bottle | 0.75 | l |
| Red wine, box of 6 × 0.75 l | ₽3,600 per box | 4.5 | l |
For the box, check the “1 pack = 4.5 l” preview. Enter the total contents, not the number of bottles: 6 × 0.75 = 4.5 l. Below the stock-item selector, select “★ Main pack” for the box. The checkbox appears when the item has two or more active rows in this supplier’s catalog, or the row is already selected. There is one main pack: selecting another clears the previous selection.
Set the item’s Default supplier. Generate orders and automatic ordering use that supplier’s main pack and round the required quantity up to whole packs. Without a main pack, the active row with the most recently recorded price is selected, rather than the largest or cheapest pack. A price must be set for a row to be selected. For example, a shortage of 9 l gives 2 boxes at ₽3,600, totalling ₽7,200. You can still order bottles manually from the catalog by entering a quantity in the bottle row.
When receiving those two boxes, enter 2 and a price of ₽3,600 per box. Stock increases by 9 l at ₽800 per litre; the total stays ₽7,200. Enter quantity and price in the order line’s unit; stock uses the item card’s unit. For a receipt without an order, Unit of entry also allows quantities and prices in packs; check “To stock: …” before saving.
A pallet of boxes: nested packs#
If a row is built from another row of the price list, you do not need to calculate its content by hand.
- Create rows for the same item: “Bottle” with a pack of 0.75 l, “Box” and “Pallet”.
- For the box, enter 6 in In pack and choose “× Bottle” under Another row of this price list in the unit list.
- For the pallet, enter 20 and choose “× Box”.
The preview shows “1 pack = 90 l”: 20 × 6 × 0.75 l. Order and receive the pallet like any other pack: 2 pallets add 180 l to stock. If the supplier switches to boxes of 8 bottles, change only the box and the pallet recalculates by itself. Existing orders keep the pack they were created with.
A pack can only be built from rows of the same item. If the base row disappears or is linked to another item, a red hint appears under the pack: set the pack again. Until then the last calculated content applies.
Supplier discount, row copy and restoring from the archive#
Discount. Click 🕑 next to the price and fill in Discount, %. The result appears under the price, for example “−5% → ₽617.50” for a ₽650 bottle. Orders, automatic ordering and the “Cheaper at …” hint use the discounted price. The list price and its history stay as they are. If you confirm a different actual price when receiving, Cenaly updates the list price so that the discount is kept.
Row copy. The ⧉ button creates a new row with the same price, pack and stock item. Edit the name, price and pack. The SKU, the main-pack selection and the price history are not copied.
Restoring from the archive. Rows removed with 🗑️ are listed under Archive below the price list. Click Restore and the row takes part in orders again. If the item got another main pack in the meantime, that pack stays the main one.
Who supplies this item#
Open the item card on the Stock tab and expand Who supplies this below Default supplier. It lists every supplier and pack of the item with prices, lowest price per stock unit first. The list is read-only: edit rows in the supplier’s price list.
Your own units and piece weight#
If an item is counted in bottles, portions or hours rather than pieces, add your own unit.
- Open the item card and click Your units under the unit field.
- Enter a name and a short label for tables: Bottle 0.75 l, btl.
- If the unit has a measure, fill in One unit contains: 0.75 l. Leave a portion or an hour without a measure.
- Save the unit and choose it in the item's unit field.
The item is counted as pieces, so stock, write-offs and cost work as before, while tables, documents and labels show your label. Rename a unit or change its measure and its items update on their own. A unit with items cannot be deleted, archived items included: move them to another unit first.
A unit with a measure can be chosen in a receipt: “Sack = 25 kg” gives an item kept in grams a line in sacks, and 2 sacks go to stock as 50,000 g.
Piece weight is for items you count in pieces but buy by weight, or the other way round. On the card, fill in Weight or volume of one piece: 120 g for a lemon. The receipt now offers kg, and 3 kg at 100 go to stock as 25 pieces at 12: the line total stays the same. A price-list pack “crate 5 kg” becomes a pack of 41.667 pieces, and auto-orders order such crates whole. Without piece weight, pieces and kilograms are not converted; the weight comes only from this card.
Change the unit of an item that already has stock#
You change the unit on the item card: Inventory → ✏️ Edit Product → the Unit field → the unit you need (g, kg, ml, l, pcs or your own) → Save.
Changing the unit does not convert anything, and there is no warning when you save. Numbers already recorded for the item stay the same but are read in the new unit:
- stock in warehouses: 2 kg becomes 2 g;
- quantities in dish, service and semi-finished recipes: 0.12 kg becomes 0.12 g;
- average purchase cost: 800 per kg becomes 800 per g;
- the item's Reorder point and Target stock (par).
Switching between pcs and your own unit without a measure only changes the label: your own unit is counted in pieces too.
What to do after changing the unit:
- In every warehouse that holds the item, run a stocktake: the ⚖️ Set actual stock button in the item's row or a full stocktake in Inventory. Enter the quantity in the new unit.
- Find the items whose recipes use this product and recalculate their quantities — see Recipe cards.
- Check Reorder point and Target stock (par) on the card, and the packs of this item in your suppliers' price lists.
- A stocktake does not fix the cost. While stock is above zero, new receipts blend the old average price with the new one. The price per new unit becomes correct with the first receipt after the item's stock has reached zero.
It is safest to change the unit while there is no stock: for a new item or one that has run out. If the item has a large stock and you need margin reports right away, create a new card with the right unit. Move recipes and price-list rows to it. Set the old card's stock to zero with a stocktake, receive the actual quantity onto the new card at the price per new unit, and archive the old card.
Discounts and nested packs in price-list import#
The import reads discounts and packs from the unit label, a column or the row name.
- A discount of 5%, −5% or discount 5 goes to the discount field, and the price stays the list price.
- Pallet 20 × 6 × 0.75 l counts as 90 l, not 4.5 l.
- Pallet 20 boxes takes its content from the box row of the same item.
On the comparison screen such a pack appears as 1 pack = 90 l · 20 × Wine, box. Only ticked packs are applied, as before. If you untick the box, the pallet stays a plain 90 l pack. Changed discounts are listed under Supplier discounts: untick one to keep the previous value.
You can edit the price list in a spreadsheet: download it with CSV, change prices, discounts or packs, and upload it through Import → Back from our CSV. This path does not use AI and restores chains from the Made of column. Rows are matched by name, so a renamed row comes in as new.
What a staff member can order#
In Staff → Roles & access, open the role and choose Supplier orders:
| Value | What can be ordered |
|---|---|
| Any units | No restriction, the default |
| Only supplier packs | A stock item only through a price-list row with a pack; litres or pieces cannot be ordered |
| Only the main pack | Only the row automatic ordering would use: the ★ Main pack, or the row with the latest price if none is selected |
A forbidden row cannot be filled in the price list window, and when generating orders Cenaly names the item and the reason. Price-list rows that are not linked to stock are not limited. On the TSD phone orders use the stock unit, so restricted roles place orders in the admin panel.
Across locations: the supplier’s catalog, packs and main-pack selection are shared across the account. The default supplier belongs to the stock item and is shared too. There are no separate supplier prices for individual locations; the order and receipt belong to the selected warehouse.
Price validity and price-list CSV export#
Goal: avoid ordering at a promotional price that has already ended, and hand the price list to an accountant or the supplier for reconciliation.
- Open Inventory → Suppliers → Catalog for the supplier.
- In the item row, click 🕑 next to the price to open Price history and validity.
- In Price valid, enter the from and until dates from the price list or contract, for example “Cream 33%, 1 l — ₽410 until 31 October”.
- A note appears under the price: until 31/10/2026, price from 01/11/2026 or a red price expired.
How validity affects orders. In Generate orders and in automatic ordering, among several catalog rows for one item the row valid today is chosen first, and only then the one with the most recent price. If no row is valid, an expired price is still used as a guide, but the order preview shows “· price expired” next to it (or “· not yet valid” for a future price). Confirm the price with the supplier before sending. A ★ Main pack takes precedence over validity: the choice is made among main-pack rows.
Validity uses calendar dates, inclusive. Without dates the price never expires, as before. Automatic ordering checks dates in UTC, so around midnight the note may appear a few hours later.
Exporting the price list. The ⬇ CSV button in the supplier catalog downloads all non-archived rows: category, name, SKU, price, currency, unit, pack, “Valid from/until” dates, today’s price status, the linked stock item and the date of the last price. The separator is a semicolon, so Excel opens the file without the import wizard.
Supplier groups#
Goal: find the right supplier quickly when you have dozens: Vegetables, Meat, Drinks, Household.
- Open the supplier card (✏️) and fill in Group. Suggestions are the groups other suppliers already have.
- Save the card. A group label appears next to the supplier name in the list.
- Chips All · Meat · Vegetables · … · No group with supplier counts appear above the list. Click a chip to show only that group.
A supplier has one group. Letter case and extra spaces do not matter: “vegetables” and “Vegetables” are the same group. The filter applies only to the Suppliers tab; supplier pickers in receipts and orders still list everyone.
Step 2. Set purchasing quantities#
Task: get a recommendation for a stock item, such as “Beef shoulder, kg”.
- Open the item card on the Stock tab.
- Fill in the purchasing settings and save.
| Field | Purpose | Example |
|---|---|---|
| Reorder point | Lists the item when stock is strictly below this quantity | 5 kg |
| Target stock (par) | The stock level to replenish towards | 20 kg |
| Default supplier | The supplier group for this item | Myasnoy Dvor LLC |
| Pack size | Rounds the order up to a multiple of this quantity | 5 kg |
With 3 kg on hand, the shortage is 20 − 3 = 17 kg. Rounding up to a multiple of 5 gives an order of 20 kg. Without consumption before delivery, the resulting stock will be 23 kg: the target does not cap rounding. Without a target, replenishment uses the reorder point; without a pack size, it keeps the calculated shortage. Stock of exactly 5 kg with a reorder point of 5 kg does not yet appear in the list.
Result: the recommendation appears under Procurement → To order. If the item is missing, check its reorder point and the selected warehouse balance. Item pack size and supplier catalog pack contents are separate settings: check the order line’s unit.
Step 3. Prepare an order#
Task: prepare a draft for the selected warehouse.
- Open Inventory → Procurement → To order.
- Check the supplier groups, select items and adjust quantities.
- Choose Generate orders; use Assign supplier for items without a supplier.
- Review prices and expected delivery, then choose Create drafts.
If that supplier already has a draft, you can add to it; declining the addition creates a new draft. Prices come from linked catalog items. An unknown price is not zero; confirm outdated prices with the supplier.
If another supplier's price list has the same item cheaper per unit, a hint appears under the row: “Cheaper at «…»: ~600 ₽/kg (−8%)”. The comparison uses the price per stock unit including pack size: a 5 kg box for 3,000 ₽ is 600 ₽ per kg. Differences under 1% and price lists in another currency are not shown. To order from that supplier, change the item's default supplier and generate the order again.
Alternatively, open Suppliers → Catalog, enter quantities next to items and choose Create order. Repeat last order adds quantities from the supplier’s latest sent, confirmed or received order. It adds to quantities already entered, so check the total before creating the draft. Frequently ordered helps you add familiar items based on the last 90 days of order history.
To prepare a draft from expected consumption, use the demand forecast, where available on your domain. Automatic ordering can use the same calculation — see Auto-order schedule and ordering by forecast.
Order templates#
Goal: build a routine order — “Monday”, “Bar for the weekend” — in one tap.
- Open the supplier’s Suppliers → Catalog and enter quantities.
- Click 💾 Save as template at the bottom of the window and enter a name.
- Next time, click the 📋 Monday chip in the Templates block: the template quantities are added to the set. Check the total and click Create order.
Saving under the same name updates the template instead of creating a copy. To delete a template, click ✕ on its chip. An item that is no longer in the price list (archived) is skipped; a supplier can have up to 20 templates.
Result: the order appears under Purchase orders as Draft; stock does not change yet. If repeating an order adds nothing, check the supplier’s history and whether the corresponding items still exist in the current catalog.
Auto-order schedule and ordering by forecast#
Goal: the order to “Prime Meats Ltd” goes out by itself only on Mondays and Thursdays at 10:00 venue time, calculated from the sales forecast.
First turn on Inventory → Procurement → Alerts → Auto-send order to supplier by email. Then:
- Open the supplier card (✏️) and find the Auto-order schedule block.
- Under Order days, select Mon and Thu. Nothing selected means every day.
- Under Order time (venue time), choose 10:00. The hour follows the time zone of the warehouse’s venue from its profile.
- Under How to calculate the order, choose a mode:
- Top up items below the reorder point — like the regular auto-order: this supplier’s items below the reorder point are topped up to target stock;
- By forecast — like the Forecast tab draft: dish demand forecast for today’s weekday × tech cards × Cover, days (3 by default), minus stock and minus what is already on order, but never less than the top-up to target stock.
- Save the card. The supplier list shows 🕑 Mon/Thu 10:00 · by forecast.
Result: on Monday and Thursday at 10:00 the system creates an order for each warehouse that stocks such items. It is emailed to the supplier; if the contact uses WhatsApp or Telegram, it stays a draft with ready text. The order note shows auto-order · schedule or auto-order · forecast. On other days and hours nothing is ordered from this supplier automatically, even if an item runs out: build such an order manually.
The check runs every hour. If a check is delayed, the order still goes out within three hours after the set time; later than that, the day’s order is skipped rather than sent in the evening. If there is nothing to order, no email is sent.
An order by forecast matches the Forecast tab draft for today with the same cover. If there is no forecast yet (not enough sales history) or a dish has no tech card, it falls back to topping up to target stock.
A supplier without a schedule and in top-up mode is ordered as before: once a day in the morning for items below the reorder point.
Step 4. Send the order#
Task: send the agreed quantities and prices to the supplier.
- Choose Send on the draft.
- Check the contact, order text and expected delivery date.
- Select a channel and finish sending in the application that opens.
| Channel | What happens |
|---|---|
| Opens your email application with recipient, subject and text; send the email there | |
| Opens a message with the prepared text; confirm sending | |
| Telegram | Opens the contact; use Copy and paste the text into the conversation |
| Copy | Send the text manually, then mark the order with Sent |
| Send via Cenaly | Creates an order in the supplier’s Cenaly shop when that shop is configured |
The text includes items, quantities and units, known prices and totals, the note and warehouse name. Result: the order is marked sent. For an ordinary channel, this happens when the application opens; it does not confirm delivery of the message. If a channel button is missing, check the contact address. If the application does not open, copy and send the text manually.
For regular purchasing, enable Auto-send order to supplier by email in Procurement. The scheduled check runs once daily at 06:00 UTC (09:00 Moscow time) and uses reorder points. For email contacts, the system sends the email; for WhatsApp or Telegram, it prepares a draft for a person to send. Without a usable supplier channel, no automatic order is created; items without a default supplier are also excluded. Items already included in an open order for that warehouse are not ordered again. The Not more often than once every setting also limits automatic orders: a daily check does not guarantee a daily email.
Step 5. Monitor open orders#
Task: see what is still expected and follow up on delays. Open Procurement → Purchase orders for the relevant warehouse and check status and expected date.
| Status | Meaning | Available next steps |
|---|---|---|
| Draft | An order has been prepared | Send, receive an actual delivery or cancel |
| Sent | Sending has been recorded | Send again, mark Confirmed, receive or cancel |
| Confirmed | You have recorded the supplier’s response | Receive or cancel |
| Partially received | Some lines remain open | Receive more or close the shortfall with a reason |
| Received | All lines are received or explicitly closed as shortfalls | Review documents and the bill |
| Cancelled | The order was cancelled | Review history; prepare a new order if needed |
Result: statuses identify open commitments. The ⏰ badge marks a past expected date on a sent, confirmed or partially received order. If the supplier confirms a different date, enter it and a note when marking Confirmed. Contact the supplier about delays: the badge does not reschedule delivery.
Step 6. Receive a delivery in full or in parts#
Task: add exactly what arrived to stock, at the actual price.
- Choose Receive on the order, or Receive more on a partially received order.
- Enter the supplier document number and date, for example a delivery note or Russian UPD.
- Enter actual quantities and prices; check pack units and their conversion to stock units.
- For an unknown stock item, select an existing item, create one in place or mark the line as non-stock, such as delivery.
- Add an extra line if needed. This is an additional receipt, not a replacement for the original line.
- Review the order-closing notice and choose Confirm receipt.
Example: you ordered 10 kg of beef but received 8 kg. Enter 8 kg; while the other 2 kg are expected, the order remains Partially received. When the remainder arrives, open Receive more: the form suggests another 2 kg, not all 10 kg. If the supplier will not deliver the rest, select Close the shortfall (2 kg not expected) and enter a reason, such as “Supplier confirmed the item is unavailable”. Once all lines are closed, the order becomes Received, but stock increases only by the 8 kg actually delivered. Closing a shortfall does not create a receipt for missing goods; the reason stays in the supplier history.
When a price increase against usual purchases reaches the warning threshold, I confirm the higher-than-usual price is required. The comparison uses the 90-day median; the 30-day median is shown for context. With insufficient history, no warning may appear. Check that the price is for the correct unit, and keep Update price in supplier catalog selected if you want to save the new price.
Result: a receipt is created, actual stock increases, and the order is either closed or remains partially received. If confirmation is blocked, check item links, the shortfall reason and price acknowledgement. If the receipt is posted but the catalog update fails, use Update the price list in the warning; do not create the receipt again. For receiving on a phone, see use your phone as a warehouse scanner: there you can also receive several orders in one delivery, mark a substitute and choose a line's warehouse.
One invoice for several orders, substitutes and per-line warehouse#
Suppliers often deliver goods from two orders on one invoice, bring an equivalent instead of the ordered item, or part of the delivery goes straight to the bar.
- Several orders. Below the lines of the receiving window, choose + Add order: the list shows other open orders from the same supplier for the same warehouse. Lines of the added order appear below with their own quantities. The invoice number and date are shared: on confirmation each order gets its own receipt with that number, and both orders are closed.
- Item substitution. If “Cream 35%, 1 l” arrived instead of “Cream 33%, 1 l”, tick ⇄ Substitute delivered on the line and select the substitute. Stock receives the 35% cream, and the order line counts as fulfilled: there is no shortfall for the 33% cream, and the supplier history keeps “substitutes: Cream 33% → Cream 35%”.
- Per-line warehouse. If the location has several warehouses (for example, kitchen and bar), a Warehouse selector appears on the line. Lines for another warehouse go to a separate receipt document, so the document feed shows two receipts for one invoice.
Example: invoice 512 brings milk from Monday’s order and kefir from Wednesday’s order. Open receiving for the first order, add the second one, check quantities and choose Confirm receipt — both orders become Received.
Delivery rating and supplier performance#
At the bottom of the receiving window, rate the delivery from 1 to 5 stars and tick reasons: Late, Short delivery, Damaged / defective, Wrong item, Temperature breach, No documents, Unagreed substitute. Add your own reason with + Own reason — it is kept for all later receipts. Rating and reasons are optional.
The system marks whether the delivery was on time by comparing the receiving date with the order’s expected date.
In the supplier card (Inventory → Suppliers → supplier), the Performance, last 90 days block shows:
| Metric | How it is calculated |
|---|---|
| On time | Share of deliveries received no later than the expected date; deliveries without an expected date are not counted |
| Fill rate | Average received share per line of closed orders; a substitute counts as fulfilment |
| Price change at receipt | Average price shift at receiving and the number of receipts above the median |
| Average rating | Average of the stars given by staff |
Frequent reasons are listed below. Metrics come from the receiving history; deliveries recorded before ratings existed still count towards On time if the order had an expected date.
Step 7. Record a return and review the history#
Task: record returned goods and retain the facts for discussions with the supplier.
- In the relevant warehouse, choose + Operations → Return to supplier.
- Select the supplier, items and positive quantities being returned.
- Choose Save and check the document.
- Open the supplier card and its activity feed to review returns, receipt discrepancies and price changes.
Result: the return reduces stock. Shortfalls, excess deliveries, substitutes, price spikes and receiving ratings appear in the feed and add up to the supplier card’s Performance, last 90 days. If returning is unavailable, check the supplier, lines and permissions. Record any reduction of the debt separately after reconciling with the supplier: a stock return does not replace a settlement entry. See stock documents for document details.
Step 8. Register a bill and payment#
Task: record the supplier document and check the remaining amount to pay.
- Open Companies & Invoices, select a card with the supplier role and open Settlements.
- Find We owe the supplier and choose Register supplier bill.
- Enter the document number and date, amount, Payment due and the relevant Purchase order; check the location and legal entity if you have several.
- Choose Register. You can also start with Bill… next to the order in Purchase orders: received vs billed.
- After making the actual payment, choose Pay next to the bill or Payment to supplier, enter the amount and payment order number, then record it.
| Reconciliation amount | Meaning |
|---|---|
| Ordered | Value ordered at order prices |
| Received | Value of received quantities at order prices |
| Billed | Registered bills linked to the order |
| Not billed yet | The positive difference between received and billed amounts |
For example, you ordered 10 kg at ₽600 and received 8 kg: Ordered is ₽6,000 and Received is ₽4,800. Registering a bill for ₽4,800 adds that amount to Billed. Actual price increases are visible in the line-by-line check of the bill window — see below.
Matching a bill to the order and receipt, approval#
When a Supplier order is selected in the bill window, a Check: order → receipt → bill table appears. Each line shows what was ordered and at what price, what was actually received and at what price, and On the bill fields — quantity and price as printed on the supplier document (prefilled from the receipt).
- If the billed price differs from the receipt price by more than 0.5%, the line is highlighted in red with price differs from the receipt.
- If the billed quantity differs from the received quantity — quantity differs from the receipt.
- If goods were received at a price other than ordered, this is shown as a note received at a price other than ordered.
- Use lines total copies the lines total into the amount field.
When there are differences, Send for approval is ticked: the bill is registered and the debt is recorded at once, but the bill list marks it Awaiting approval and there is no Pay button for it. Another person with the CRM money right, or the owner, approves it with Approve; whoever sent the bill for approval cannot approve it. After approval, the bill is paid as usual.
Example: 10 l of oil were received at ₽106, but the bill says ₽115 per litre. The Oil line is highlighted and the bill goes for approval; the manager checks the price agreement and chooses Approve.
Automatic allocation of a payment without a selected bill (bank statement, advance, credit note) follows the due date and skips bills Awaiting approval: the money settles approved bills and the rest stays as an advance to the supplier. Bank statement matching does not suggest such a bill either. After Approve, the free advance is applied to the bill automatically. A payment can be linked to an unapproved bill only by hand in the bill allocation window: the window warns that the bill is not approved and asks you to confirm.
Result: a registered bill creates a debt, and a recorded payment reduces its outstanding amount. The payment action records a completed payment; it does not send money through a bank. If the order table is missing, check the link between the stock supplier and the counterparty card for the relevant location, and your stock access. If the debt block is missing, check the supplier role and financial-data permissions.
For ageing, open Companies & Invoices → Reports → We owe: amounts are grouped into not overdue, 1–30, 31–60, 61–90 and over 90 days. Advances are shown separately. For an agreed goods return, settlements offer Credit note / goods returned.
In AWS, saving a receipt from a photo/PDF may open a supplier-bill draft review when tax-document data has been recognised. Check lines, amounts and taxes before registering. Invoice photo recognition is unavailable on cenaly.ru; enter the receipt and bill manually.
Bar or pantry as a separate warehouse: replenishment by transfer#
Create a separate warehouse within the same location for a banquet bar or service pantry, for example “Bar”. You can then count its stock separately from the main warehouse.
- Select “Bar” in Inventory and complete a stocktake: enter actual quantities and finish the count.
- Compare the balance with the quantities your team plans to keep for service; calculate the shortfall manually.
- Select the main warehouse and open Operations → Transfer.
- Choose “Bar” as the destination, add the items and calculated quantities, then post the document.
- Check the decrease at the main warehouse and increase at the bar — see stock documents.
Result: replenishment is recorded as a transfer within the location, without a new supplier purchase. Creating a “Bar” warehouse does not automatically route sales deductions there: check the sales warehouse and ingredient deduction settings.
Pack size is one per item across all warehouses. Reorder point and Target stock (par) are shared by default, but you can set them separately for the bar in the Per-warehouse levels table (see below). For the bar's own service stock, use a team work list and a manual transfer document; do not change the shared item target for one banquet.
Purchasing across locations#
Suppliers, their catalogs and stock item cards are shared across the account. The reorder point and target stock are set once, but each warehouse can have its own.
Goal: the café on the main street keeps up to 40 l of milk, the kiosk at the station up to 10 l.
- Open the item card. With more than one warehouse, the procurement block has a Per-warehouse levels table.
- Enter the warehouse’s own Reorder point and Target stock. An empty field means the common value applies (shown as a hint in the field).
- Save the card.
Result: To order, the Only low filter, the Forecast tab and automatic ordering use that warehouse’s levels. The pack size is shared by all warehouses. Stock balances and orders belong to a specific warehouse, so check the warehouse before preparing or receiving an order. Employees see warehouses within their assigned location scope; the owner can work across the network. Counterparty cards and settlements belong to locations: link the shared stock supplier to the appropriate location’s card.
Limitations#
- Your own unit counts as a piece: the five base units (g, kg, ml, l, pcs) stay as they are, and POS and handheld scanners still show “pcs”.
- Piece weight works in manual receipts, price lists and auto-orders. Invoice photos and stock import convert only g↔kg and ml↔l.
- The purchasing-unit restriction applies when an order is created, not when an existing draft is edited. Orders from the web admin panel are checked by the browser; the server checks only orders from the TSD phone.
- An order template stores items and quantities; quantities are not recalculated against stock. To order “to stock”, use automatic ordering or Create orders.
- The auto-order schedule is set per supplier: days and one order hour, the same for all warehouses. Different times per warehouse and several orders a day are not supported.
- Ordering by forecast uses today’s weekday demand multiplied by the cover, not day-by-day demand until the next delivery.
- Only open orders from the same supplier for the same warehouse can be added to one receipt; each order gets its own receipt with the shared invoice number.
- A per-line warehouse is chosen among warehouses of the same location; hotel minibars are not offered.
- A substitute takes the order line’s quantity and price as is: if the substitute has another unit, check the conversion manually.
- The reason for closing a shortfall is still free text; the reason directory belongs to the delivery rating. Supplier performance covers the last 90 days; the period cannot be changed.
- Price validity and export are available, but price-list import does not detect validity dates: enter them manually. Suppliers are compared only by the “Cheaper at …” hint in the “Generate orders” window; there is no separate comparison table and no copying of a price list between suppliers.
- A supplier has one group; there is no group hierarchy and supplier pickers are not grouped.
- Standard EDI order exchange is unavailable; ordering through a Cenaly shop is a separate delivery method.
- Line-by-line matching works for a bill linked to one order; the matched lines are not stored in the bill — the amount and the approval mark with the number of differences are.
- Approval has one step: any other person with the CRM money right, or the owner, approves. There is no separate “approve bills” right or approval chain. Payments that automatic allocation applied to a bill before it was sent for approval stay on it — move them by hand in the allocation window.
- Invoice photo recognition is unavailable on cenaly.ru; manual receiving and bill registration remain available.
Troubleshooting#
| Symptom | Cause | What to do |
|---|---|---|
| An item is missing from To order | No reorder point, or stock is not below it | Check the item card and warehouse |
| No automatic order appeared | Missing supplier/channel, an open order or a frequency limit | Check warnings, open orders and settings |
| A scheduled order did not go out | Not an order day, the venue has another time zone, Auto-send order to supplier by email is off, or there was nothing to order | Check the days and hour on the supplier card, the time zone in the venue profile and the switch in Procurement → Alerts |
| Sent, but the supplier received nothing | The channel opened, but the message was not sent | Check the email or conversation and send the text |
| Receiving 8 kg out of 10 did not close the order | Another 2 kg are expected | Receive the rest or close the shortfall with a reason |
| Receipt confirmation is blocked | Unresolved item, missing reason or price acknowledgement | Complete the fields indicated in the form |
| The catalog price did not change after receipt | The catalog update did not finish | Use Update the price list in the warning |
| The debt is zero after receiving | No bill has been registered | Enter the document in We owe the supplier |
Frequently asked questions#
Can I order an item whose stock is above the reorder point? Yes. Build an order from the supplier catalog; the shortage list is just one starting point.
Must I wait for confirmation before receiving goods? No. You can receive against a draft or a sent order: record the delivery that actually happened.
Does Received always mean everything arrived? No. All lines must be closed, but some may be closed as shortfalls with a recorded reason.
Why is the order price lower than the price list?#
The row has a supplier discount. Orders use the discounted price, and the price list keeps the price before discount. Check Discount, % in the 🕑 panel next to the price.
Why was a bottle selected instead of a box?#
Without a main pack, the row with the most recently recorded price is selected. Check that both rows link to the same stock item, that the box row is active and has a price, then select “★ Main pack” for it. This affects newly generated orders; it does not change existing lines.
How do I change the pack in an order that has already been sent?#
Editing the catalog does not change the order: its line stores a snapshot of the pack and its version at creation. Receiving uses that saved conversion factor. If nothing has been received yet, agree the replacement with the supplier, cancel the original order and create a new one with the required pack. Selecting a different main pack will not recalculate a sent order.