13. Orders, bills and stock control
Version 2.0 makes LivingRoom a general inventory and order system next to its marketplace tools. You can sell to your own customers (wholesale, B2B, phone or e-mail orders) with customer orders, invoices and payments; record what you owe your vendors as bills; buy in cases; see what is reserved and what is in transit; follow one lot from receipt to sale; and close a month so its figures cannot change. For Walmart Fulfillment Services there are claim packets; for kits, un-kitting and labour / packaging costs; for advertising, ad spend in your profit. A phone on your office network can look at the Dashboard, profit and stock.
In this chapter:
- Customers
- Customer orders
- Invoices, payments and receivables
- Vendor bills and payables
- Buying in cases
- Reserved and available stock
- Transfers in transit
- Lot history
- Period close and the value as of a date
- WFS claims
- Kitting: labour, packaging and un-kitting
- Ad spend in your profit
- The phone companion
- The first start: this PC or an office server
Customers
Customers (in the sidebar) holds the people and businesses you sell to directly: name, company, e-mail, phone, billing and shipping addresses, payment terms, a tax-exempt flag with its certificate number, a credit limit, notes, and any number of contacts. A customer you no longer sell to can be set inactive; its history stays.
Customer prices. A customer can have its own price for a product, with a minimum quantity and the dates it is valid. On a customer order the line price is that price when it applies, otherwise the product's own price; you can still change it on the line.
Importing customers. Customers can be imported from a CSV file. As with every import, you see a preview first and nothing is saved until you confirm it.
Adding and changing customers needs an Admin.
Customer orders
A customer order is an order from one of your customers. Open Customers (in the sidebar) and click the Orders tab: it lists them with their status:
| Status | Meaning |
|---|---|
| Draft | Being written; reserves nothing |
| Confirmed | Accepted; its open lines reserve stock (see Reserved and available stock) |
| Partly shipped | Some lines or units shipped; the rest is a backorder |
| Shipped | Everything shipped |
| Cancelled | Cancelled; its reservations are released |
How to enter an order. On Customers › Orders, click New order. Choose the customer, the order date and the warehouse it Ships from, then add the lines: find each product, type the quantity and, if you want, a price (left empty, the line takes the customer's price or the product's own), a discount % and whether the line is taxable. The subtotal, shipping, tax and total are worked out as you type. Click Save draft. Open a draft to Edit it, Confirm it or Delete draft.
You can type amounts with a thousands separator or a currency sign, for example "1,250.00" or "$12.50". If a field holds something that is not an amount, it says so under the field ("Enter an amount such as 1250.00.") and the order cannot be saved until you correct it.
How to ship an order. Open the confirmed order and click Ship: the app takes the units first-in-first-out (or first-expiry-first-out for dated products) at their landed cost, exactly as for a marketplace sale. A line that is short of stock ships what there is; the rest stays open as a backorder until you ship it later or cancel it. Each shipment has a packing slip (PDF).
Cancelling. Cancel backorder on a line drops its open units; Cancel order cancels everything not yet shipped and releases its reservations (shipped units stay shipped). Both ask first, and neither can be undone: a cancelled order cannot be reopened.
Tax and shipping. You type the tax rate on the order; it applies to the taxable lines and is 0 for a tax-exempt customer. The app has no tax tables. The order's shipping charge counts as shipping income of its first shipment.
Where the sales show. A shipped order is an ordinary sale on the channel Direct / Wholesale: it appears in every profit report, the Dashboard (its own card), Global view, returns, the Reporting API and QuickBooks, with no estimated marketplace fees. Profit per customer (Reports) groups these sales by customer.
Returns. A return of a direct order takes the units' price off your revenue and gives the customer a credit.
Customer orders and manual orders are different. Sales Orders (in the sidebar) is the list of your marketplace sales and of the sales you add by hand. Its manual order dialog (Add Manual Order, see Chapter 7) records a sale that has already happened: the stock goes out at once, and there is no reservation, invoice, receivable or packing slip. It can name a customer (optional), so the sale counts in profit per customer, and it offers the Direct / Wholesale channel. To reserve stock, ship in parts or send an invoice, use Customers › Orders instead.
Invoices, payments and receivables
A customer order gets its invoice when you click Issue invoice on the order (once it is confirmed). The invoice
is a PDF, numbered INV-<year>-<number> per company, with your company profile and logo; its due date follows the
customer's payment terms. The app asks first, because an invoice number cannot be taken back. The Invoices tab
lists every invoice with its due date, total, balance and status; click one to open its order.
How to record a payment. On Customers › Payments, click Record a payment. Choose the customer and type the date, the amount, the method and a reference. The customer's open invoices are listed: type how much of the payment goes to each, or leave them empty and it goes to the oldest due invoice first. Click Save payment. What is not allocated stays on the customer's account; Allocate puts it on open invoices later. Each invoice then shows as paid, partly paid or unpaid, with the payment dates. Remove deletes a payment (it asks first); its invoices owe the amount again.
Receivables. The Receivables tab (the AR aging) shows what customers owe by age as of a date you choose (current, 1-30, 31-60, 61-90 and over 90 days), and the Dashboard has a receivables card.
QuickBooks Online invoices and payments for these orders are built but coming soon; the QuickBooks Desktop files carry the direct sales on their own revenue line today (see Chapter 9).
Vendor bills and payables
Vendor Bills (in the sidebar) records what you owe: a bill from a vendor or from a prep center / 3PL warehouse, with its number, bill date, due date (from the payment terms), currency and total. Its lines link to what it pays for: purchase order receipts, prep or warehouse invoices, expenses, or other amounts.
- From a received purchase order the app offers a draft bill. If the bill, the PO and the receipt disagree, a three-way match warning says where.
- Payments are recorded on the bill; it shows as paid, partly paid or unpaid.
- Payables: the Payables tab (the payables aging, as of a date) and a Dashboard payables card; the cash-flow forecast uses the bills' due dates.
- A bill entered by mistake is voided (with a reason), never deleted: Void the bill asks for the reason. A bill that has payments can be voided once its payments are voided (each payment's Void asks first).
- QuickBooks: with the sync option Vendor bills on, each bill is one QuickBooks Bill with its due date. What a bill carries is not sent twice (its receipts, warehouse invoices and expenses are left out of their own Bills), and a Bill already in QuickBooks is never edited: a receipt made after a PO's Bill was sent becomes a Bill of its own.
Buying in cases
Stock is always counted in sellable units, but you can buy in cases:
- On a purchase order a line can be entered as cases (number of cases × pack size) at a price per case. The PO PDF and e-mail show cases and units. The PO line keeps the pack size it was ordered with.
- On a product's vendor link you can set the vendor's order multiple, minimum order and the case GTIN. Reorder suggestions round up to whole cases and respect the minimum order.
- Case labels: the case GTIN prints on a case label, and scanning a case adds the whole case (pack size units).
- A receipt that would leave a fraction of a sellable unit is refused.
Reserved and available stock
Every stock screen now shows available next to on hand:
available = on hand − held − reserved
Stock is reserved by a confirmed sales order's open lines, by a removal saved as pending (completing it takes the stock) and by a transfer while it is being prepared. Two orders can never take the same units.
Marketplace sales are never refused, because they have already shipped. If one takes reserved units, the sales order that reserved them is flagged over-committed so you can deal with it.
The Dashboard, forecasting, the cash flow, the Reporting API and the phone companion use available stock too.
Transfers in transit
A transfer between two warehouses now has a journey:
- Ship it: its units are In Transit. They count once and keep their value, but belong to neither warehouse.
- Receive it: all units, or fewer - the difference is recorded as an adjustment - or cancel it.
A transfer to Walmart Fulfillment Services is received from the quantity Walmart reports as received; a short receipt can become a WFS claim. Transfers made before this version count as received.
Lot history
Lot History shows one lot (batch) from receipt to the last unit: receipts, transfers, bin moves, splits, holds and releases, adjustments (reconciliations, lot counts, gap fills), sales, kitting and un-kitting, returns and removals, each with its date and, where it was recorded, who did it. Open it from a lot in the inventory and lot screens. Where an older version did not keep a step, the history says not recorded; a split made before this version is shown as inferred when it can only be worked out afterwards.
Period close and the value as of a date
Value as of a date (Reports › Value as of a Date) gives the units and value of every product per warehouse at the end of a chosen day, also as a CSV and a PDF for your accountant. Before your first period close the figures are reconstructed from the batches and every movement, and labelled so.
Period close. An Admin closes a month or a year in Settings › Period Close, with a reason, and can reopen it the same way; both are logged. At the close the app keeps a snapshot of the units and value. While a period is closed:
- anything dated in it - a receipt, a sale, an adjustment, a settlement, an import row - is refused with a message that names the closed period;
- a later change that would rewrite its figures (for example a landed-cost true-up or a settlement recompute) is refused too, until an Admin reopens the period;
- QuickBooks holds records dated in it; they go with the first sync after a reopen.
Before closing, the app warns about anything still to come, such as a month whose settlements have not all arrived.
Late returns and late fees. A closed month's sales cannot change either, even from a later month. So, once a month is closed, these are refused until an Admin reopens it:
- a return of a sale from that month whose units go back into stock (Add to Inventory);
- any return of an Offline or Direct / Wholesale sale from that month;
- a settlement file, even a later one, with fees or refunds of that month's orders.
To record one of them, an Admin reopens the month, you record the return or import the file, and the Admin closes the month again.
WFS claims
For Walmart Fulfillment Services, WFS Claims (in the sidebar, for Walmart companies) turns each discrepancy into a claim: lost, damaged or short-received, with the product, units, unit cost (landed) and value, and where the discrepancy came from (the inventory reconciliation or an inbound shipment). A shortfall seen first on an inbound shipment and later in the reconciliation is the same claim.
The packet. Each claim has paste-ready text for Seller Center's case form (PO number, inbound shipment and Walmart reference, receiving dates and quantities, lots, unit cost and value) and a checklist of attachments: what the app makes (the PO PDF, the GRN PDF, the receiving record, the reconciliation CSV) and what you add (photos, the bill of lading).
How to follow a claim. Set its status as it moves: not filed, filed (with Walmart's case number and date), reimbursed or denied. When a reimbursement arrives in a settlement (lost inventory, damage in the warehouse, an inbound dispute refund), the app suggests the open claim it fits; you confirm it. One reimbursement pays one claim.
The app never files anything with Walmart: you submit the case in Seller Center yourself.
Kitting: labour, packaging and un-kitting
Kitting & Bundles builds kits from component units, as before. Two things are new:
- Labour and packaging cost. A kit definition can carry a labour / packaging amount per kit, which you can change on each build. It becomes part of the kit's landed cost, so stock value and COGS include it. Do not enter the same labour as a business expense as well, or it is counted twice.
- Un-kitting. You can break kits back into their components (all or some). The components come back as new lots with their original unit cost, lot number and expiry date; the kit lot goes down by the kits broken. The labour and packaging share cannot be recovered, so it is written off as an adjustment "Un-kitting: labour and packaging". A held kit lot cannot be un-kitted. Every un-kit shows in the movement history and the lot history.
Ad spend in your profit
Ad Spend Import (Sales Import › Other sales files › Ad spend) reads your advertising reports so that ad spend lowers your profit:
- Walmart Connect: the Ad Center's item performance report;
- Amazon Ads: the Sponsored Products advertised-product report (the unified-reporting template, and the older layout).
These importers are Beta: as with every import you review the rows first, the app checks the headers, asks for the file's total and recognises a file it has already imported. Rows whose SKU or item it cannot match are set aside.
How ad spend is assigned. A row with a SKU or item id goes to that product. A row without one is spread over the marketplace's products by their share of that day's sales, and the report says so.
Where it shows. Ad spend is a cost per product and day: it lowers profit per product (with ACoS = ad spend ÷ attributed ad sales and TACoS = ad spend ÷ total revenue), the profit summary, the Dashboard and the Executive Summary. On Reports › Profitability an Ad spend card (with ACoS and TACoS) and the By Product columns Ad spend, ACoS and TACoS show it; the Executive Summary has the card too, and the Dashboard's Net Profit line says "incl. … ad spend" (see Chapter 8). The By Product CSV export has the same figures. When an Amazon Ads report covers a period, that period's Amazon advertising fees in the settlements are shown as the payment of that spend, not added again. A business expense in the Advertising category for the same period gives a warning, since it may be the same money.
The Walmart Connect and Amazon Ads API connections are built but coming soon; the file imports are the way in today.
The phone companion
A phone or tablet on your office network can open three read-only views: the Dashboard, profit per product and stock lookup, with a company picker and a phone-sized layout.
The phone's figures are the desktop app's. The Dashboard's Last 30 days card covers today and the 29 days before it, like Last 30 Days on the desktop Dashboard. Its Net profit is the desktop's: it includes the estimated marketplace fees of orders whose fees have not arrived yet, period fees and ad spend. The line under the card says what is estimated or imported, for example "Sep 29 – Oct 28, 2026 - incl. $12.40 estimated fees and $45.00 ad spend".
How to switch it on. An Admin turns on Phones on the office network in Settings (with the office server settings). It is off by default. The card shows the address and a QR code to scan, the list of phone sessions, the paired phones (each with Remove) and Sign out all phones.
How to pair your phone. The phone page never asks for your password. Instead, pair each phone once:
- In the app on a PC, click your name (top right) and choose Pair a Phone. Give the phone a name if you like and click Make a pairing code.
- Scan the QR code with the phone, or open the address shown on the phone and type the code. The code works once, for 10 minutes.
- The phone stays paired: next time it signs in by itself, or with one tap on Sign in.
- What you see follows your roles: profit needs View reports; stock lookup needs View reports or Receive inventory. The Super User cannot sign in on a phone.
- The first time, the phone warns about the app's own certificate: compare the fingerprint shown in the app, then accept it.
- A phone session takes a seat unless you are already signed in elsewhere.
- Nothing can be changed from a phone.
- Lost phone? Remove it in Pair a Phone (or ask an Admin to remove it in Settings): it is locked out at once. Sign out on the phone, Sign out all phones, switching phones off and a change or reset of your password unpair the phone too; pair it again to use it.
The first start: this PC or an office server
The first time the app starts on a PC it asks:
- Set up this PC - this PC keeps its own data (or will be the office server); the setup wizard follows; or
- Connect to an office server - another PC in the office keeps the data; enter its address and this PC works on it.
You can change this later in Settings (the office server settings). See Chapter 3 for users and seats.