SCSmartStockInventory & POS Documentation

Welcome to SmartStock 👋

A complete Inventory & Point-of-Sale (POS) management suite that turns your WordPress + WooCommerce store into a full business operations system — Contacts, Products, Purchases, POS Sales, Stock, Expenses, Accounting & Reports.

Why SmartStock? WooCommerce sells online — SmartStock adds everything a real store needs behind it: supplier purchases, multi‑location stock, a fast touch POS, expenses, double‑entry accounting and 12+ reports. Your WooCommerce orders remain the single source of truth for sales.

What you get

🧾

Touch POS

Full‑screen register that creates real WooCommerce orders, multi‑cart, discounts, coupons, multi‑account payments & instant invoice print.

📦

Inventory Ledger

Per‑product, per‑variation, per‑location stock with a full movement history — synced to WooCommerce automatically.

🛒

Purchases & Returns

Record supplier purchases, payments, and returns with correct stock & ledger effects.

🏦

Accounting

Payment accounts, balance sheet, trial balance and cash‑flow — every sale, purchase and expense posts automatically.

🧑‍💼

Staff & Roles

Grant granular access, scope cashiers to specific locations and payment accounts.

📈

12+ Reports

Profit/Loss, stock, sales rep, product sell, payments, trending products and more.

Requirements

ItemMinimumRecommended
WordPress6.0+Latest
WooCommerce7.0+Latest
PHP7.4+8.1+
MySQL / MariaDB5.7 / 10.3Latest
WooCommerce is required. SmartStock builds on WooCommerce products & orders. If WooCommerce is missing, the plugin shows a notice with a one‑click Install WooCommerce button.
Home / Installation

Installation

Two easy ways to install — from the WordPress admin, or by FTP.

Method 1 — WordPress admin (recommended)

  1. Download the plugin ZIP (smartstock.zip) from your CodeCanyon Downloads (choose “Installable WordPress file only”).
  2. Go to WordPress Admin → Plugins → Add New → Upload Plugin.
  3. Choose the ZIP, click Install Now, then Activate.
  4. Make sure WooCommerce is installed & active (a notice will guide you if not).
  5. You’ll see a new Inventory Management menu in the sidebar. 🎉

Method 2 — FTP

  1. Unzip smartstock.zip → you get a smartstock folder.
  2. Upload it to /wp-content/plugins/.
  3. Go to Plugins and click Activate on “SmartStock – Inventory & POS Management”.
On activation SmartStock creates its own database tables (stock ledger, transactions, accounts, etc.) and default settings. Nothing is deleted when you deactivate; data is only removed on uninstall if you explicitly enable that option (Settings → Products/System).
Home / Quick Start

Quick Start — first 10 minutes

Follow this order once and your store is ready to sell.

  1. Business info — go to Settings → Business & General and set your business name, address, phone, currency & VAT number (used on invoices).
  2. Locations — add at least one Business Location (Settings → Business Locations). Stock is tracked per location.
  3. Payment accounts — add a Cash / Bank account under Accounting → List Accounts.
  4. Products — create WooCommerce products (Products → Add Product). SKU & barcode auto‑generate if left blank.
  5. Opening stock — set current quantities per location under Products → Opening Stock.
  6. Sell! — open Sales & POS → POS and make your first sale.
Tip: everything you sell in the POS becomes a real WooCommerce order, so your online reports, emails and analytics all stay in sync.
Home / Dashboard

Dashboard Overview

Your business at a glance — the first screen after opening Inventory Management.

SmartStock Dashboard 1 2 3 4
The SmartStock dashboard with KPI cards and the left navigation.

The dashboard reads directly from your WooCommerce orders and the SmartStock ledgers, so the numbers always match your reports.

Contacts / Suppliers & Customers

Contacts — Suppliers & Customers

A single place for everyone you buy from and sell to, each with a running financial ledger.

Contacts list
Customers list — search, due balance, and per‑row Actions.

Two contact types

TypeUsed inTracks
SuppliersPurchases & purchase returnsWhat you owe / paid to each supplier.
CustomersSales / POS & sell returnsWhat each customer owes (due) & their history.

List columns & buttons

Contacts / Add / Edit

Add or Edit a Contact

Click Add Customer / Add Supplier and fill the form:

New customers created during a POS sale are added here automatically.
Contacts / Ledger & Pay

Ledger, Pay & Statement

View Profile

Opens the contact’s complete history: profile details, totals (sold / paid / due), a list of every sale & purchase (each reference links to the order/invoice), and a payment history.

Pay

Record a payment against the contact. The amount is allocated FIFO (oldest unpaid invoice first); any leftover becomes an advance. Choose the payment account the money goes into — it posts to your ledger automatically.

Statement (PDF / Print)

Generates a printable A4 statement of the contact’s account for a period — hand it to the customer or supplier.

Products / All Products

All Products

Your catalogue — these are your WooCommerce products, enriched with SmartStock stock & POS data.

Products list 1 2 3 4
Products list with toolbar, columns and the row Actions menu.
Products / Add Product

Add a Product (WooCommerce)

SmartStock does not keep a separate product table — it uses WooCommerce products, so you get variations, categories, images and pricing for free. When you add/edit a product you’ll find extra SmartStock fields:

Inventory tab additions

Auto SKU & Barcode: leave SKU or Barcode empty and SmartStock fills them using the prefix + minimum length you set in Settings → Products & Stock — for both simple and variable products (and every variation).
Products / Opening Stock

Opening Stock

Set your current quantities the day you start using SmartStock — per business location and per variation — so the ledger begins from a true baseline.

Open it from the product list → Actions ▾ → Add / edit opening stock, or the Opening Stock button on the product. The screen builds one row per simple product or per variation, with a quantity box for each business location and a single unit‑cost box.

ColumnWhat it doesDefault
Product / VariationThe item the row belongs to. Variable products list every variation on its own row.
SKUThe product/variation SKU, for quick identification.
[Location columns]One quantity box per business location. Type the stock you physically hold at each location; leave blank for zero.blank
Unit Cost (Before Tax)The buying cost used to value this opening stock (feeds Stock valuation, Profit/Loss and the Balance Sheet). The first time, it is pre‑filled from the product/variation's default Purchase price — and stays fully editable.Default purchase price
Where does the cost come from? On a brand‑new product the Unit Cost box auto‑fills with the Purchase price you entered on the product editor. Change it here if your real opening cost differs — SmartStock saves whatever you enter.

On save, SmartStock writes one opening movement per location into the append‑only ledger and syncs the combined total back to the WooCommerce stock quantity. Re‑opening the screen shows your saved figures, so you can correct them any time.

Bulk import: for large catalogues use Products → Import Stock to upload opening stock from a CSV (SKU, Location id, Quantity, Cost, Lot, Expiry) instead of typing each row.
Products / Stock History

Product Stock History

A complete, append‑only audit trail for any product or variation — every movement, in order, with a running balance you can trust.

Open it from the product list → Actions ▾ → Product Stock History. A summary panel at the top totals each movement kind, and the table below lists every individual move:

ColumnWhat it shows
TypeThe movement kind — Opening Stock, Purchase, Purchase Return, Sale, Sell Return, Transfer In, Transfer Out, Adjustment.
DateWhen the movement was recorded.
ReferenceThe source document number (invoice, purchase ref, transfer ref…), linking the move back to its transaction.
Quantity changeThe signed in/out amount (+ added, − removed).
New QuantityThe running balance after that movement, so you can reconcile stock at any point in time.

Use the location and variation filters to narrow the view — e.g. the exact history of one variation at one warehouse.

Always accurate: because it is a true ledger, deleting or editing any purchase, sale, transfer, adjustment or return automatically reverses its rows here — no orphaned or duplicated history is ever left behind.
Products / Units

Units

Define the measuring/selling units your catalogue uses — Pieces, Kg, Litre, Box, Dozen, Metre and so on.

Open Products → Units. Add a unit with a name (e.g. Kilogram) and a short code (e.g. Kg) shown on invoices and lists. Existing units can be edited or deleted at any time. Assign a unit to a product from the Unit field on the product editor's Inventory tab; new products default to Pieces (or the default unit set in Settings → Products & Stock).

Deleting a unit does not change products already using it — it simply removes it from the pick‑list for new assignments.
Products / Barcode & SKU

Barcode & SKU

Bulk‑manage codes across all products:

Purchases / All Purchases

All Purchases

Every stock‑in from your suppliers, with payment status and per‑row actions.

Purchases list
Purchases list. Row Actions: View, Print, Edit, Labels, Add payment, View Payments, Purchase Return, Mark received/pending, Delete.
Purchases / New Purchase

New Purchase

Add purchase 1 2 3
Creating a purchase order.
Received purchases increase stock through the ledger and update WooCommerce quantities automatically.
Purchases / Purchase Returns

Purchase Returns

Return goods to a supplier. Open a purchase’s Purchase Return action, enter the return quantity per line, an optional discount & return date — a live summary shows the total. The returns list gives full actions:

Sales & POS / All Orders

All Orders

Every sale — both POS and website orders — because WooCommerce orders are the single source of truth.

All orders
All Orders. Channel column shows POS vs Website. Actions: View/Edit, Print Invoice, Packing Slip, Payments, Sell Return, Delete.

The Paid figure comes from the SmartStock payment ledger (not just WooCommerce’s paid flag), so editing or deleting a payment anywhere stays accurate.

Sales & POS / POS Register

POS Register

A fast, full‑screen touch register that creates real WooCommerce orders.

POS register 1 2 3 4
The POS register in full‑screen kiosk mode.
Kiosk mode hides all WordPress chrome. A top bar shows the business name, a live clock, a native full‑screen toggle and an Exit button.
Sales & POS / POS Sales

POS Sales

The same list as All Orders but filtered to POS‑only sales (website/WooCommerce orders are hidden) — handy for cashiers and shift supervisors to review just the register’s takings.

POS Sales is a read‑through filter over the same WooCommerce orders, so any payment, edit or return you make here shows instantly in All Orders and every report — there is no separate POS ledger to reconcile.
Sales & POS / Sell Return

Sell Return

Refund/return items from any sale with correct stock, ledger and customer‑due effects.

Sell returns list
Sell Returns (credit notes) list with full Actions.

Creating a return

From a sale’s Sell Return action you’ll see the header (Invoice No, Date, Customer, Location), each sold line with a Return Qty field, a live summary (subtotal, discount, total return), an optional discount (fixed/percent), a settable return date & time, and an optional cash refund from an account.

Managing returns

Accuracy first: every return — creating, editing or deleting — adjusts stock, the account ledger and the customer due together, so your books never drift.
Stock Control / Transfers

Stock Transfers

Move stock between your business locations.

Transfers list
Stock transfers list.

Click Add Stock Transfer and complete these fields:

FieldWhat it doesDefault
From Location *The source warehouse/branch stock leaves.First location
To Location *The destination warehouse/branch stock arrives at.First location
Reference NoDocument number. Leave blank to auto‑generate the next sequential ref.Auto
DateTransfer date & time.Now
Advanced Product SearchType a name, SKU or barcode to add line items (simple products & individual variations). Each line shows a read‑only Unit Cost and an editable Quantity.
NotesOptional memo stored with the transfer.

On Save Transfer, SmartStock records a transfer_out at the source and a matching transfer_in at the destination. The company‑wide total is unchanged — only the per‑location balances move — and WooCommerce stock stays in sync. Editing or deleting a transfer reverses both sides cleanly.

Stock Control / Adjustments

Stock Adjustments

Correct stock for damage, loss, theft or counting differences.

Adjustments list
Stock adjustments list.

Click Add Stock Adjustment and complete these fields:

FieldWhat it doesDefault
Business LocationThe location whose stock you are correcting.First location
Reference NoDocument number. Leave blank to auto‑generate.Auto
DateAdjustment date & time.Now
Adjustment TypeNormal (routine count/correction) or Abnormal (unusual loss — theft, fire, damage) — for reporting/classification.Normal
Total Amount RecoveredAny value recovered against the loss (e.g. insurance/scrap sale) — used in loss reporting.0
Advanced Product SearchAdd line items by name/SKU/barcode. Each line has a read‑only Unit Cost, an Adjust selector (Subtraction / Addition) that sets the sign, and a Quantity.
Reason / NotesWhy the adjustment was made — kept for the audit trail and the Stock Adjustment report.

On Save Adjustment, SmartStock writes signed adjustment movements to the ledger (negative for Subtraction, positive for Addition) and updates the WooCommerce quantity. This is exactly how you fix “Variable product qty not going minus” situations — pick the variation, choose Subtraction, save.

Expenses & Income / Expenses

Expenses

Expenses list
Expenses list.

Click Add Expense and complete these fields:

FieldWhat it doesDefault
Business LocationWhich location the expense belongs to.First location
Expense CategoryGroups the spend (Rent, Salary, Utilities…) for the Expense Report.— Select —
Reference NoDocument number. Leave blank to auto‑generate.Auto
DateWhen the expense occurred.Now
Amount *The expense value.0
Payment AccountThe cash/bank account the money leaves. Choosing one debits that account's ledger; “— None —” records the expense without a cash movement.— None —
NotesOptional description.

Expense Categories — a sub‑screen to create, rename and delete categories. Every category feeds the category breakdown in the Expense Report.

Expenses & Income / Income

Income

Income list
Extra business income list.

Record money that isn't a product sale — services, rent received, interest, scrap sales. Click Add Income:

FieldWhat it doesDefault
Business LocationWhich location the income belongs to.First location
Income CategoryGroups the income for reporting.— Select —
Reference NoDocument number. Leave blank to auto‑generate.Auto
DateWhen the income was received.Now
Amount *The income value.0
Received Into (Payment Account)The cash/bank account the money enters — choosing one credits that account's ledger.— None —
NotesOptional description.

Income Categories — manage the category list exactly like expense categories.

Accounting / Payment Accounts

Payment Accounts

Cash & bank accounts where money flows in and out.

Accounts list
List of payment accounts with balances and per‑account ledger.

Every sale payment, purchase payment, expense, income and refund posts to an account, so each account’s balance is always live. Create an account with Add Account (Name, optional Account Number, opening balance & note); then manage it with the row actions below.

ActionWhat it does
Account BookThe account’s full dated ledger — every debit and credit with running balance, filterable by date. This is your per‑account audit trail.
Fund TransferMove money from this account to another (e.g. Cash → Bank). Posts a matching debit and credit so the combined balance is unchanged.
DepositAdd money into the account that isn’t a sale/income (e.g. owner capital, opening float). Credits the ledger.
WithdrawTake money out that isn’t an expense/purchase (e.g. owner drawings). Debits the ledger.
Close / Re‑openHide a disused account from selectors without deleting its history; re‑open when needed.
DeleteRemove an account (only when safe). Its transactions are preserved for reporting integrity.
Accounting / Financial statements

Balance Sheet · Trial Balance · Cash Flow · Account Report

Store Staff / Staff

Staff & POS Access

Turn WordPress users into cashiers / store staff and control exactly what they can do.

Staff list 1 2
Staff list with the POS Staff master switch.
Store Staff / Scope

Assign Locations & Payment Accounts

Assign Locations

Tick the business locations a staff member may access. Assigned → they only see those locations’ stock & orders; none assigned → all locations.

Assign Accounts

Tick the payment accounts a staff member may take/manage payments on. Assigned → they only see & use those accounts (POS, order payments, everywhere); none assigned → all accounts.

Store Staff / Roles

Roles & Permissions

Create custom roles (optionally cloned from an existing one) and tick a granular capability matrix — view/add/edit/delete per module (Contacts, Products, Purchases, Sales, Accounting, Reports…). Assign the role to a user, flip their POS Staff switch on, and they get exactly the access you granted.

Reports / Overview

Reports

12+ built‑in reports, each with a date‑range filter and export.

Profit and Loss report
Profit / Loss report.
Stock report
Stock report with valuation.
ReportShows
Profit / LossSales, purchases, expenses, closing stock → gross & net profit.
Stock ReportPer product/variation/location quantity & valuation (at cost & sale price).
Product PurchaseLine‑level purchases with supplier & product links.
Sales RepresentativeSales grouped by the staff who made them.
Expense ReportExpenses by category & period.
Sell / Purchase PaymentAll payments received / paid in a period.
Product SellWhich products sold, quantity & value.
Items / Purchase & SaleItem‑level movement comparisons.
Trending ProductsBest sellers over a period.
Stock AdjustmentAll adjustments with reasons.
Settings / Business & General

Settings — Business & General

Business settings
Business & General settings — the identity used across invoices, labels and the POS.

This is the first screen to complete after activation. Every field here feeds invoices, barcode labels, the POS header and the accounting reports, so fill it in fully before you start trading.

OptionWhat it doesDefault
Business NameYour legal/trading name. Printed on every invoice & label and shown in the POS register header.
PhoneContact number shown in the invoice company block.
EmailBusiness email shown on invoices and used as a reply‑to hint for notifications.
WebsiteShown in the invoice company block under your name.
VAT / Registration NumberTax/registration ID. Only printed when Show VAT Registration Number is enabled in Invoice settings.
Start DateThe opening date of your books — reports and the financial year use it as the earliest boundary.
CurrencyWooCommerce currency code (e.g. BDT, USD). Saving this updates WooCommerce’s own currency so the store and inventory always match.WC currency
Currency SymbolSymbol rendered before/after amounts (e.g. , $).WC symbol
Currency PositionWhere the symbol sits: Before amount, After amount, or the spaced variants.Before amount
Decimal PlacesNumber of decimals used when displaying money everywhere in SmartStock.2
Time ZoneUsed to timestamp ledger entries, stock history and reports.Site TZ
Financial Year Start MonthMonth your fiscal year opens — drives the Profit & Loss and dashboard period ranges.January
Business AddressMulti‑line address printed in the invoice company block.
Settings / Business Locations

Settings — Business Locations

Locations settings
Multi‑location / multi‑warehouse manager — stock is tracked separately per location.

SmartStock is multi‑location from the ground up. Every stock figure — opening stock, purchases, sales, transfers and adjustments — is held per location. Create one location per shop, warehouse or outlet. Purchases, the POS, transfers and reports all let you pick which location a movement belongs to.

FieldWhat it does
NameLocation label shown in every location dropdown and on invoices/packing slips.
Landmark / City / State / Country / Zip CodeFull address block for the location — printed as the “from / warehouse” address on invoices when warehouse info is enabled.
Mobile / EmailPer‑location contact details.
Default Payment AccountThe payment account that auto‑selects whenever this location is chosen at payment time (POS, purchase, expense). Choose — None — to leave it manual.
ActiveInactive locations are hidden from dropdowns but keep their history intact.

The list below the form shows every location with its city, mobile, status and Edit / Delete actions. A prefix (default BL) auto‑numbers each location — change it under Reference Prefixes.

Settings / Tax

Settings — Tax

Tax settings
Tax registration names/numbers + WooCommerce‑native rate calculation.

SmartStock reuses WooCommerce’s native tax engine for all rate calculation, so you never maintain two tax tables. The POS reads the WooCommerce tax class on each product and computes tax per line — correctly handling both inclusive and exclusive prices. This screen adds the registration identifiers that print on documents.

FieldWhat it doesDefault
Tax 1 NameLabel for your primary tax (e.g. VAT, GST) shown in invoice tax breakdowns.VAT
Tax 1 Registration NoYour registration number for that tax, printed on invoices.
Tax 2 NameOptional second tax label (e.g. a secondary/municipal tax).
Tax 2 Registration NoRegistration number for the second tax.

Actual rates (standard/reduced/zero and per‑class percentages) are managed in WooCommerce → Settings → Tax; the screen links straight there via “Manage in WooCommerce”.

Settings / Products & Stock

Settings — Products & Stock

Product settings
Auto SKU/barcode generation, default unit, WooCommerce sync & bulk stock tools.
OptionWhat it doesDefault
SKU PrefixPrefix used when a product’s SKU is auto‑generated (left blank on the product). E.g. SCSC-0041.SC
SKU minimum lengthMinimum digit count of the auto SKU number, zero‑padded. 4SC-0041.4
Barcode PrefixPrefix used when a barcode is auto‑generated for a product.
Barcode minimum lengthMinimum zero‑padded digit count for an auto‑generated barcode.6
Default UnitUnit pre‑selected on every new product (drawn from your Units list).— none —
WooCommerce sync qtyWhen on, every product & variation quantity is kept in lock‑step with WooCommerce stock, both directions.On
Manage stock (default on for new products)New products — both single and variable — get WooCommerce “Manage stock” enabled automatically, so quantities track from the first movement.On

Bulk Stock Tools

Apply stock settings to your entire catalogue in one click (each asks for confirmation first):

Settings / Contacts

Settings — Contacts

Defaults applied to new suppliers & customers. Contact IDs are auto‑generated and are also assigned to customers created from website (WooCommerce) orders, so every buyer gets a ledger.

OptionWhat it doesDefault
Default Credit LimitCredit limit applied to any new customer that has no explicit limit set — used by the due/credit checks.0
Customer ID PrefixPrefix for auto‑generated customer contact IDs, e.g. CO0001 (also used for website orders).CO
Supplier ID PrefixPrefix for auto‑generated supplier contact IDs, e.g. SU0001.SU
Settings / Orders & POS

Settings — Orders & POS

Orders and POS settings
POS behaviour + automatic inventory deduction on order status change.
OptionWhat it doesDefault
Default Sale Discount (%)Discount pre‑filled on a new POS sale — staff can still override per sale.0
Default POS CustomerCustomer auto‑selected when the POS opens (typically Walk‑In / Guest).Walk‑In
Allow overselling (negative stock) — POS onlyWhen on, the POS lets you sell past zero stock (quantity goes negative). Off blocks the sale when stock runs out.Off
Enable multiple carts (drafts)Lets a cashier hold several parallel carts/drafts at once (Cart 1, Cart 2 …) — useful for serving multiple customers.Off
Enable POS discount buttonShows the per‑sale Discount button in the POS totals area.On

Automatic Inventory Deduction

OptionWhat it does
Enable automatic deduction on order status changeMaster switch — when on, SmartStock auto‑deducts stock for website/WooCommerce orders instead of you ticking each one.
Deduct inventory when order status isWhich WooCommerce status triggers the deduction (e.g. Completed, Processing). Stock is subtracted the moment an order reaches it.
Default Business LocationThe location automatic deductions draw stock from (unless the order itself specifies one).

You can always override deduction per order from the WooCommerce order panel.

Settings / Invoice & Receipts

Settings — Invoice & Receipts

Invoice settings 1 2
Invoice designer with Standard (A4) & Slim (80mm thermal) layouts.

Global invoice options

OptionWhat it does
Default LayoutStandard (A4 page) or Slim (80mm) thermal receipt — the layout used when printing.
Invoice Number SchemePrefix + Year + Counter or Prefix + Counter — controls how invoice numbers are built.
Company LogoPick from the Media Library (or Remove). Rendered at the top of the invoice.
Logo Height / Width (px)Exact logo sizing; width 0 = auto (keep aspect ratio).
Invoice Date FormatDate format string used on printed documents.
Header Text / Footer TextFree text above/below the invoice body (e.g. terms, a thank‑you line).

Feature toggles (Invoice Features → Select All)

Each switch shows/hides one block on the printed invoice: Show Order ID, Show Warehouse Info (from‑location address), Show Note, Show Previous Due, Show Amount In Words, Show Footer Text, Show Barcode, Show VAT Registration Number, and Show Tax breakdown. Everything renders locally — the barcode is drawn self‑contained with no external HTTP calls, so invoices print even offline.

Settings / Barcode & Labels

Settings — Barcode & Labels

Defaults for the label printer used by Products → Print Labels. Choose the symbology, the label sheet, what each label shows and how big each element prints.

OptionWhat it doesDefault
Default Barcode TypeSymbology: Code 128, Code 39, EAN‑13, EAN‑8, UPC‑A.Code 128
Default Label SheetSheet layout: 20 / 30 / 32 / 40 / 50 per sheet or Continuous roll.30 per sheet
Barcode is based onWhich field the printed barcode encodes (the product Barcode, or SKU).Barcode
Show Product Name + font sizePrint the product name on the label; set its font size (px).On / 15
Show Product Variation + font sizePrint the variation (e.g. size/colour) on the label.On / 17
Show Product Price + font sizePrint the price on the label.On / 17
Show Business Name + font sizePrint your business name on the label.On / 20
Show Packing Date + font sizePrint a packing/print date on the label.Off / 12
Settings / Reference Prefixes

Settings — Reference Prefixes

Every document type auto‑numbers with a short prefix. Change any of them to match your existing numbering scheme — new records pick up the change immediately.

DocumentDefault prefix
PurchasePO
Sell Return (credit note)CN
Purchase ReturnPR
ExpenseEXP
IncomeINC
Stock TransferST
Stock AdjustmentSA
PaymentPAY
Business LocationBL
Settings / Email & Notifications

Settings — Email & Notifications

Email settings
Email (SMTP), SMS & WhatsApp notifications with template shortcodes.

Notify customers automatically on New Order and Order Status Change, across three independent channels. Each channel has its own driver settings and its own message template.

Email (SMTP)

FieldWhat it does
Mail DriverSend via the default WordPress mailer or your own SMTP server.
From Name / From EmailThe sender identity shown to recipients.
SMTP Host / Port / Username / PasswordCredentials for your SMTP server when the SMTP driver is selected.
EncryptionConnection security: None, SSL or TLS.

SMS

Pick a SMS ProviderTwilio, Vonage (Nexmo), Plivo, MessageBird, Infobip or a Custom Provider — and set the Sender ID / From Number. The custom provider exposes Endpoint URL, Method, Content‑Type, HTTP Headers (one Header: value per line) and a Request Body template, so any HTTP SMS gateway works.

WhatsApp

Choose Meta WhatsApp Cloud API (set Phone Number ID + Access Token) or a Custom API (Endpoint URL, HTTP Headers, and a JSON Request Body using the {to} and {message} placeholders).

Templates & shortcodes

Each channel has a New Order and Status Change template. A click‑to‑copy shortcode palette inserts dynamic values such as {order_number}, {customer_name}, {order_total}, {order_status} and more. Email messages are auto‑wrapped in a smart, invoice‑style HTML design; use Preview invoice design to see it. A toggle also lets you attach the sale invoice as a PDF to order emails.

Settings / License

Settings — License

Activate your CodeCanyon (Envato) purchase code to receive one‑click updates and support. The plugin is fully functional out of the box — activation only governs automatic updates and clears the “please activate” reminder notice at the top of the screens.

WooCommerce / Order Panel

WooCommerce Order Screen Panel

On every WooCommerce order edit screen, SmartStock adds an Inventory & POS panel: choose the Business Location, tick Deduct from inventory (subtract the ordered quantities), print the Invoice / Packing Slip, jump to Add Return / Customer Ledger, view the order’s payment history and add payments, and see a per‑location stock summary of the ordered products.

WooCommerce / Auto Deduction

Automatic Stock Deduction

Enable it in Settings → Orders & POS. When a website order reaches a selected status (e.g. Completed), SmartStock automatically deducts the ordered quantities from the default (or the order’s) business location — no manual step. You can still toggle deduction manually per order.

WooCommerce / PDF Invoice

PDF Invoice in Order Emails

Turn on Attach the sale invoice as a PDF in Settings → Email & Notifications. Every order email then carries a clean, self‑generated PDF invoice (no external service). Use Preview invoice design to see exactly what customers receive.

Help / FAQ

Frequently Asked Questions

Do I need WooCommerce?

Yes. SmartStock uses WooCommerce products & orders as its foundation. The plugin will prompt you to install it if missing.

Does the POS create real WooCommerce orders?

Yes — every POS sale becomes a genuine WooCommerce order, so your online reports, stock and emails stay in sync.

Is stock tracked per location?

Yes. SmartStock keeps its own append‑only stock ledger per product/variation/location and syncs the total to WooCommerce.

Can I limit what cashiers can do?

Absolutely — use Roles & Permissions, the POS‑Staff switch, and per‑staff location/account scoping.

Are invoices printable on thermal printers?

Yes — choose the Slim (80mm) layout for thermal receipt printers, or Standard (A4).

Does anything call an external server?

No — barcodes and PDF invoices are generated locally. Only optional SMS/WhatsApp/Envato features you configure yourself use their own APIs.

Help / Support

Support & Changelog

Getting support

For help, open a ticket on our support portal or reach out through your CodeCanyon item’s Comments. Please include your WordPress & WooCommerce versions and a description of the issue.

🛟 Open a Support Ticket   🖥️ Live Demo

Before contacting support

Changelog

See readme.txt in the plugin for the full version history. Current version: v1.0.0.