# Products & Inventory

Karmaflow.ai keeps a product catalog, the stock on hand at each of your locations, the orders that move it, and a ledger of every change — and lets the same AI agents that answer your phone, chat and texts look up a product, check stock and take an order. It runs on its own for a business with no online store, or beside Shopify or WooCommerce, where the first decision is simply *who owns the count*.

```mermaid
flowchart LR
  shop[Shopify / WooCommerce] <-->|products · stock · orders| sync[Store sync<br/>webhooks + catch-up poll]
  sync --> catalog[Catalog<br/>products & variants]
  sync --> ledger[Stock ledger<br/>one row per change]
  csv[CSV / Excel import] --> catalog
  ui[Products, Stock, Orders pages] --> ledger
  agents[Voice · chat · SMS · email · task agents · MCP] -->|search, check stock, order| ledger
  ledger --> levels[Levels per location<br/>on hand · reserved · incoming]
  levels --> reorder[Reorder plan]
  reorder --> po[Purchase orders]
  po -->|receive| ledger
  levels --> triggers[Workflow triggers & alerts<br/>low stock · out · back in stock]
  ledger --> ai[AI: draft copy, categorise,<br/>explain the plan, brief me]
```

## What It Covers

| Area | What it carries | Where |
|---|---|---|
| **Products & variants** | Name, description, category, tags, brand, supplier, images; each variant has a SKU, barcode, price, compare-at price, cost, weight and its own reorder point | **Inventory → Catalog → Products** |
| **Locations** | A warehouse, a shop floor, a van — every level and movement names one | **Inventory → Setup → Inventory Settings** |
| **Stock levels** | On hand, reserved, available and incoming per variant and location, with a running ledger of every receive, sale, count, transfer and adjustment | **Inventory → Catalog → Stock** |
| **Reorder plan** | What to order, how much and how urgently, from the sales pace, lead time and safety days — drafted straight into purchase orders | **Stock → Reorder plan** |
| **Sales orders** | From the UI, your agents, Shopify and WooCommerce in one list; each reserves and then deducts stock at the moment you choose | **Inventory → Orders → Sales orders** |
| **Purchase orders** | What is on order from suppliers; receiving puts units into stock through the ledger | **Inventory → Orders → Purchase orders** |
| **Stores** | Shopify and WooCommerce connections: products, stock and orders in the directions you choose, real-time webhooks and a scheduled catch-up | **Inventory → Setup → Stores** |
| **AI assistance** | Product copy drafts, category suggestions, import column mapping, a narrative over the reorder plan and a stock brief — on demand, with two opt-in automations | Throughout, marked with a sparkle |

## A Ledger, Not a Number

Every change to stock is a row in the ledger that says what moved, how much, who did it and from where — a person on the Stock page, a chat agent taking an order, a Shopify webhook, a purchase order being received. The level is only ever the sum of its rows, so two agents selling the last unit at the same moment cannot both succeed: the second one is refused with the figures, and the customer hears "we have one left" rather than a promise the business cannot keep.

`available` is what can be sold now (on hand minus what open orders have reserved). `incoming` is what is on order from a supplier and not here yet — the agents are told never to promise it.

## Standalone or Beside Your Store

Connect a Shopify or WooCommerce store and choose who owns the count:

- **The store owns it.** Shopify or WooCommerce already deducts for its own orders. Its figure is pulled here, and its orders are recorded in Karmaflow.ai without touching stock again. Right for a store that is already selling.
- **Karmaflow.ai owns it.** Stock is managed here — several locations, purchase orders, counts — and the level is pushed to the store after every change, so the storefront always shows what is really on the shelf. Store orders deduct here.

Products, stock and orders each have their own direction (pull, push, both or off), webhooks bring changes in within seconds, and a scheduled sync catches anything a webhook missed. A product edited on both sides between syncs keeps the local change on the fields you touched and takes the store's on the rest.

## Agents That Sell From the Same Shelf

Fourteen inventory tools are available to every agent type and over MCP: search the catalog, get a product, check stock, list low stock, create and update products, adjust and transfer stock, create sales and purchase orders, update an order's status, receive a purchase order, and ask for reorder suggestions. A voice agent asked "do you have the blue one in medium?" answers from the live level; a chat agent can take the order and reserve the units; a task agent can draft the week's purchase orders. Every write carries the conversation it came from, so the ledger row links back to the call or chat.

## AI Where It Helps, Deterministic Where It Must Be

The arithmetic — what is available, what crosses a reorder point, how much to order — is fixed and the same for everyone. The AI writes around it: a product description from the record (listing what it had to assume), a category and tags for a batch of imported products, a column mapping for a spreadsheet nobody labelled, a buyer's summary of the reorder plan ("the two urgent lines, and the one that looks odd"), and a morning brief over the ledger. Nothing it writes is saved until you apply it, and what it wrote is marked on the product.

Two automations are a choice, off by default: draft a description for a product a store import brings in with none, and suggest a category and tags for every imported product that has none.

## What's Different

- **One count for people and agents.** The stock a chat agent quotes is the stock the Stock page shows, because both read the same ledger.
- **Authority is a setting, not an accident.** You say whether the store or Karmaflow.ai owns the count; nothing is deducted twice.
- **Orders remember where they came from.** A sales order links to the call, chat or run that placed it, and the ledger row links to the order.
- **Alerts are workflow triggers.** Low stock, out of stock, back in stock, a new order, a failed sync — each can start an orchestration or notify the people who hold the permission.
- **The AI explains the plan; it does not invent one.** The figures are computed; the model only writes the sentence.

## Why Teams Use It

A business with a shop and a phone line stops keeping two counts. A business with no storefront gets a catalog its agents can quote from. A buyer opens the reorder plan instead of a spreadsheet, reads one summary, ticks the lines and has the purchase orders drafted.

## Business Outcomes

- Fewer oversells: the ledger refuses the sale instead of the customer finding out later
- Faster answers on every channel: "do you have it, how much, can I order two" without a hand-off
- Less dead stock and fewer stockouts: a reorder plan from the real sales pace, with incoming stock counted
- One storefront figure that matches the shelf, pushed after every change
- A product catalog that is also agent knowledge — no second copy to keep current

## Learn More

Start with **[Getting Started with Products & Inventory](/help/inventory/getting-started)**, then **[Products, Stock and the Reorder Plan](/help/inventory/products-and-stock)**, **[Sales and Purchase Orders](/help/inventory/orders)**, **[Connecting Shopify or WooCommerce](/help/inventory/shopify-woocommerce)** and **[AI Assistance and Agent Tools](/help/inventory/ai-assistance)**. The agent tools reach every channel described under [Voice Agents](/help/voice-agents/overview), [Chat Agents](/help/chat-agents/overview) and [SMS Agents](/help/sms-agents/overview), and the triggers plug into [Orchestrations](/help/orchestrations/overview).

> **Ready to work in it?** [Sign in to Karmaflow.ai](https://omni.karmaflow.ai/auth/login) and open **Inventory → Catalog → Products**.
