haosa.net otter mascothaosa.net

A system for vape wholesale & retail

A vape business without chaos
in orders, stock and margin.

A CRM built for wholesale/retail trade: orders stop living in chat threads and move through a clear pipeline, stock matches reality, and margin is visible per deal — before the goods leave the warehouse.

  • Running in production at a trading company
  • Launch & support included
  • You talk directly to the builders

Live demo

Don't trust screenshots — click around yourself

We keep a public demo of this CRM running: orders, warehouse, catalog and roles. Demo data resets automatically, so feel free to press everything.

  • Visit the storefront — this is how your client sees the shop
  • In the admin panel, create an order and move it through statuses
  • Check stock, batches, the catalog and access roles

Online demo · opens in a new tab

Sound familiar?

Why selling through chat threads loses you money

We built this system for a company that sold exactly like this — through a Telegram channel and DMs. If you recognize yourself in at least two points, there's something here for you.

  • Routine and manual-entry errors

    Managers spend hours copying orders out of chats, mixing up flavors, nicotine strength, device models and delivery addresses. Every mistake is a return, a conflict or a lost client.

    chat → spreadsheet · flavor mixed up

  • The assortment is a wall of text

    The buyer scrolls a dull text list in a channel: no idea what the product looks like, hard to pick a flavor or model. Some clients simply never finish reading.

    a 400-line price list · read to line 40

  • Ordering feels like work for the client

    Typing a long list into a chat is a barrier. Purchases get postponed or come in smaller than they could — that's lost revenue every single day.

    typing the list… · no cart

  • Orders stall in logistics

    Between picking, checking and courier handover an order easily gets lost — and you hear about it from the client, not from a system.

    stuck at picking · day 3

  • Cash gaps sneak up on you

    Finances, expenses and cost basis are calculated on a napkin or not at all. Net profit stays a mystery until month end.

    revenue exists · profit is a question

  • Stock lives a life of its own

    Best-sellers run out without warning, dead stock gathers dust, and inventory counts are a quarterly heroic effort.

    spreadsheet ≠ shelf

orders_chat

The solution

What a storefront + CRM combo gives you

A storefront where clients order by themselves, plus an accounting system for your team. Every item closes a specific pain from the list above.

What the client sees

  • Orders place themselves, 24/7

    The client builds a cart in a couple of clicks at any hour. Data lands in the CRM instantly and without errors — the manager only packs the parcel.

  • A storefront with photos and filters

    A catalog with photos, filters by flavor, brand and strength, and a clear cart. Choosing is easy — and the average order grows.

  • Wholesale pricing and rules

    Clients are split into price tiers — large wholesale, small wholesale, retail. A minimum cart amount is configurable for your model.

  • A brand people trust

    Your own website turns the shop from a no-name Telegram channel into a serious brand people aren't afraid to send money to.

What the team sees

  • Every order under control

    Statuses like “Accepted → Packing → Shipped” are visible to the whole team. Nothing stalls at picking or gets lost on the way to the courier.

  • The warehouse keeps itself in order

    Stock is written off automatically on sale; supplies and inventory counts are under control. Dead stock is visible at once.

  • Net profit, not gut feeling

    Income, expenses and cost basis are consolidated automatically. Margin is visible per line item; a cash gap shows up in advance.

  • Protection against loss-making sales

    A minimum sale price is built in: an order below cost doesn't ship without an explicit management approval.

  • Barcode picking

    The picker scans every item. An order becomes “Packed” only when the contents match 100% — mix-ups are ruled out.

How an order moves

From request to handover — without manual policing

Orders move by strict rules: the system itself rejects an invalid transition. Here's the path through your team's eyes.

  1. 1New

    A request becomes an order

    The manager records the order: client, items, prices. Stock is reserved immediately — the same box can no longer be sold to two customers.

  2. 2Confirmed

    The price passes a check

    The system compares the sale price against the real batch cost. Below the protective minimum, the order goes for approval instead of slipping through.

  3. 3Picking

    The picker scans barcodes

    The assigned picker assembles the order with a scanner. Until the contents fully match, the order physically can't move to “Packed”.

  4. 4Handed over

    Handover and honest margin

    Courier or pickup — stock is written off exactly once, at shipment. Margin per deal is visible immediately, not at month end.

Not a concept

The system is already running in production

This isn't a pitch deck or a prototype: the system runs real orders, warehouses and money for a trading company. Below is the engineering scale; the full breakdown is in the case study.

  • 11

    Order statuses

    a strict finite state machine

  • 30

    Database tables

  • ~99

    REST endpoints

  • 4

    Access roles

    manager, picker, courier, owner

Next step

We'll show the system on your process

Tell us how you take orders and run your warehouse today. We'll break down your situation, show how it looks in the system, and honestly say what's worth automating first. Free, no strings attached.