Inventory playbook
LeafLink + cannabis vendor invoices — kill manual entry
If you order through LeafLink and your POS doesn’t mirror those orders into a draft PO automatically, somebody is retyping every invoice line by hand. Hours a week. Errors compound. Cost-basis drifts. The fix is structural — the order comes across on its own, the products match up, and a draft PO is waiting for receiving-team confirmation.
What manual entry actually costs
The retyping pattern looks small per-invoice (15-30 minutes for an average 20-line cannabis order) but compounds. A multi-vendor week is 4-6 invoices; a typical dispensary running 20 vendors hits 60-100 invoices/month. At 20 minutes per invoice = 20-33 hours/month of typing that nobody enjoys + nobody verifies because verification is also manual.
- Time — at $25/hr loaded, 25 hrs/month = $7,500/yr in pure-overhead labor.
- Errors — typos drift cost-basis. A SKU with cost typed as $12.50 instead of $1.25 mis-prices margin reports for weeks until someone notices.
- Latency — the time between vendor-ships-it and POS-knows-it-arrived determines when reorder math triggers. If invoices land Tuesday but get typed Thursday, your reorder algorithm is operating with 2-day-stale data.
- Reconciliation — bookkeeper has to match invoice → PO → received → AP. Each disconnect is a question the bookkeeper asks the buyer.
What ‘LeafLink mirror’ means concretely
LeafLink lets a licensed retailer connect its orders to its POS. Once connected, an order you confirm in LeafLink shows up in your POS as a draft purchase order, already matched to your product catalog. The receiving team scans incoming product, confirms quantities, and posts. No retyping.
- Connect once. You authorize the connection from your own LeafLink account and can revoke it any time.
- Your catalog is matched to LeafLink’s products. Anything that does not match cleanly is set aside for a person to approve — never guessed.
- Order confirms, draft PO appears. Shortly after you confirm an order in LeafLink, the draft PO is in your POS with vendor, delivery date and cost pre-filled.
- Receiving team confirms. Shipment arrives, team scans product, marks confirmed. Variances (short-shipped, damaged) flag for buyer review.
- Posted PO flows to inventory + cost-basis. No re-entry. The cost-basis update propagates to per-product cost in real-time.
Brand alias matching — the gotcha that breaks integrations
Cannabis vendors are frequently spelled multiple ways across LeafLink, your catalog, and supplier emails. Northwest Cannabis Solutions / NWCS / NW Cannabis. Without an alias map, the matcher fails to dedup and your buyer sees 'NWCS' as 3 different vendors. Then the auto-PO splits across them. Then everything breaks.
- Keep a list of every accepted spelling for each vendor.
- Match spellings loosely — capitalization and stray spaces should not turn one vendor into three.
- When a new spelling appears, surface it for admin approval — don’t auto-match (false positives are painful).
- Refresh aliases quarterly — vendors rebrand, merge, change DBAs. Stale aliases break matching silently.
What NOT to mirror
LeafLink’s data is rich. Some of it shouldn’t auto-flow into your POS without human review.
- Don’t auto-receive. The PO appears as a draft. The receiving team has to scan + confirm. Auto-receive would let an unrelated shipment update your inventory.
- Don’t auto-update sale price. Cost-basis flows through; sale price is a margin-decision the operator makes. The product catalog should retain the existing retail price until someone updates it.
- Don’t auto-create new products. A new SKU on LeafLink is a buying decision. Surface it for the buyer to confirm + categorize before it lands in the catalog.
- Don’t auto-pay. Invoice→AP→bank-payment is the bookkeeper’s job. Auto-paying invoices is how you get the inevitable double-pay or wrong-vendor-pay error.
Cannabis-specific wrinkles
- Lab-test fees in the cost basis — a commercial question, not a WSLCB one. LeafLink’s line price may or may not include the test fee depending on the producer, so the matcher needs to know which side computes it or your margin drifts by the fee. No WAC sets a testing-cost figure a retailer may recover, so do not carry this in the compliance column; it belongs with your vendor terms.
- METRC tag chain-of-custody — LeafLink integrations sometimes carry the METRC package id; sometimes don’t. If the tag didn’t come across with the order, receiving still has to scan the manifest tag separately. The mirror doesn’t replace the manifest workflow — it co-exists with it.
- Allocation-period skew — during recreational allocation cycles, LeafLink prices can shift hour-to-hour. The draft PO should snapshot the price at order-confirm time, not poll for live updates after.
- Vendor terms (Net-X) on the AP side — payment terms (Net-30, Net-60) live on the vendor record, not on the order. The bookkeeper’s aging report has to know — and only the vendor master tells it.
Takeaways
- Manual invoice entry: ~25 hrs/month + cost-basis drift + reorder latency + bookkeeper reconciliation friction. ~$7,500/yr in overhead.
- LeafLink mirror: connect once, your catalog is matched, draft POs land shortly after you confirm the order, the receiving team confirms — no retyping.
- Once the mirror lands the invoices, manual entry drops toward zero and cost-basis errors fall — nobody’s retyping decimal points.
- Brand alias matching is the make-or-break gotcha — keep the alias list, refresh it quarterly, never auto-match new spellings.
- Don’t auto-receive / auto-update sale price / auto-create products / auto-pay. Preserve human-judgment moments; remove drudgery.
Frequently asked
- How much time and money is manual vendor-invoice entry actually costing my dispensary?
- An average 20-line cannabis order takes 15-30 minutes to retype, and a dispensary running 20 vendors hits 60-100 invoices a month, which works out to roughly 20-33 hours of typing monthly. At $25/hr loaded labor, about 25 hours a month runs near $7,500 a year in pure overhead. On top of the hours you get cost-basis drift from typos, stale reorder data, and reconciliation friction for the bookkeeper.
- If I turn on the LeafLink mirror, does a shipment automatically update my inventory when it lands?
- No. The PO appears as a draft, not a received order, so the receiving team still has to scan the product and confirm quantities before it posts. Auto-receiving is deliberately not done because it would let an unrelated shipment update your inventory. Variances like short-shipped or damaged items flag for buyer review instead of posting silently.
- Why does the same vendor keep showing up multiple times when we try to automate POs?
- Cannabis vendors are frequently spelled several ways across LeafLink, your catalog, and supplier emails, such as Northwest Cannabis Solutions, NWCS, and NW Cannabis. Without an alias map the matcher fails to dedup and your buyer sees one vendor as three, which splits the auto-PO across them. The fix is an aliases column on the vendors table holding every accepted spelling, matched with LOWER and TRIM, refreshed quarterly, and never auto-matching new spellings since false positives are painful.
Related guides
Ready to talk through your migration?
30-minute demo. We end by quoting the cutover from your current setup — fixed scope, no hourly games.