A product is anything you sell or buy: a stocked item, a non-stocked item you still trade, or a service. The product record holds its name, code, prices, tax and discount defaults, and the ledger accounts its transactions post to. It is the line you pick on every sales and purchasing document, from a Quotation and an Invoice through to a Purchase Order and a GRN. The bookkeeper or accountant creates products once, and everyone selects from the list when they raise a document.
A product decides three things at once: what you pick and price on a document, whether ZyncLedger tracks its stock, and which accounts its sales and costs land in. Set it up correctly once and every document for it starts with the right price, the right tax, and the right ledger effect.
The inventory type decides how a product behaves
The most important choice on a product is its Inventory Type. It sets whether ZyncLedger tracks stock for the item and how its cost reaches the ledger. There are three types.
| Inventory Type | Tracks stock? | Inventory account | How its cost is treated |
|---|---|---|---|
| Inventory | Yes. ZyncLedger keeps an on-hand quantity per location, and one moving average cost for the product across all locations. | Required. | The cost is held as stock value when received, and released to the expense (cost of sales) account when the item is sold or issued. |
| Non-Inventory | No. It is bought and sold, but no on-hand quantity is kept. | Not used. | The cost goes straight to the expense account when the item is purchased. |
| Service | No. There is no physical item. | Not used. | Used for labour and services. No stock, no SKU, and no weight. |
If your workspace has the Bundle Products app installed, a fourth type, Bundle, also appears. See Bundle products below.
Inventory Type is locked once the product is saved
You choose the Inventory Type when you create the product, and it cannot be changed afterwards. The same is true of the account links on the Accounts tab. If you pick the wrong type, create a new product with the correct type and deactivate the old one.
Before you start
A new business starts with no products. Add them one at a time, or in bulk with Import CSV on the Products list.
Several fields point at other master files. You do not have to set them up first, but the product form only offers them if they already exist:
- A Product Type and a Product Category to classify the item.
- Accounts from the Chart of Accounts for the Sales Account, Expense Account, and (for Inventory items) the Inventory Account.
You need the create products permission to add one, the edit products permission to change one, the approve products permission to approve it, and the delete products permission to remove one. These are set per user under Users, seats & permissions.
Defaults prefill from your workspace
When you open a new product, ZyncLedger prefills the account links from your workspace system accounts: the Sales Account from your sales revenue account, the Expense Account from your cost of goods sold account, and, for Inventory items, the Inventory Account from your inventory asset account. These are the accounts seeded with your Chart of Accounts. You can change any of them before you save.
Create a product
The product form opens as a drawer with tabs. Most of the work is on the Product Details tab, the account links are on the Accounts tab, and images sit on the Gallery tab.
Open the Products list
Go to Inventory → Products.
Start a new product
Select Add Product. The Create New Product drawer opens on its Product Details tab.
Choose the inventory type
Set the Inventory Type to Inventory, Non-Inventory, or Service. It defaults to Inventory. This choice changes which fields the rest of the form shows, so set it first. It is locked once you save the product.
Enter the name and code
Type the Product Name (required). A name must be unique within its inventory type, and it cannot contain a colon (
:), which ZyncLedger reserves for type and category paths.The Product Code identifies the product. If your workspace generates product codes automatically, this field reads Auto-generated and fills itself on save. If it is set to manual, type a unique code (required). You set this mode under Document numbering.
Set the SKU
For an Inventory or Non-Inventory product, the SKU is the stock-keeping code you scan or search on. It is optional and must be unique if you set one. Leave Same as code ticked (the default) to reuse the product code as the SKU, or clear it to type a separate SKU. Service products have no SKU field.
Add a description (optional)
Use Description for any detail you want on the product, for example its specification.
Set a parent product (optional)
Use Parent Product (Optional) to nest this product under another, for example a variant under its base product. You can only pick a parent of the same inventory type. If the parent carries a product type, category, or description that differ from this product, ZyncLedger asks whether to copy them across. Leave it blank for a top-level product.
Classify the product (optional)
Use Product Type and Product Category to group the product for filtering and reporting. Both are optional and independent of each other. See Product types & categories.
Set the prices
All amounts are in LKR.
Field What it does Cost Your standard buying cost (required, defaults to 0). It prefills the line cost on a Purchase Order, GRN, and GRN Credit, and it drives the Profit Margin on the Products list and the below-cost warning on an invoice. It never posts to the ledger: stock value and cost of sales use the moving average cost built up from what you actually receive. Price The normal selling price that prefills a sales line (required, defaults to 0). Wholesale Price An alternative selling price used for customers marked Apply Wholesale Price. Optional. Set the re-order point (Inventory only)
For an Inventory product, enter the Re-Order Point: the on-hand quantity below which the item counts as low on stock. Leave it at 0 for no threshold. The field does not appear for Non-Inventory or Service products. A re-order point on its own sends no alert; see Low-stock alerts below.
Enter the weight (optional)
For an Inventory or Non-Inventory product, enter Weight (grams): the shipping weight of one unit, in whole grams (type 1500 for 1.5 kg), up to 1,000,000. ZyncLedger uses it as the parcel weight when a delivery is booked with a courier. Leave it blank if you have not weighed the item. Service products have no weight, and choosing Service clears any weight you typed.
Set the tax and discount defaults
These prefill onto a sales line so you type less on each document.
Field What it does Default Tax % The tax rate that prefills on the product's lines, from 0 to 100. Tax Inclusive When ticked, the Price is treated as already including tax. Off by default. Default Discount % A line discount that prefills on the product's sales, from 0 to 100. A customer's own default discount applies where the product has none. Set the status flags
Field What it does Active On by default. An inactive product stays for history but is not offered when you pick a product on a document. Approved Off by default. A product is only offered for selection once it is both Active and Approved. Ticking this needs the approve permission, and once a product is approved the box is locked. Set the account links
Open the Accounts tab and confirm the ledger accounts this product posts to. They prefill with the system accounts Sales Revenue, Cost of Goods Sold, and Inventory (see Chart of Accounts). You can change them before saving, but not after.
Field Required for What it does Sales Account Inventory, Non-Inventory, and Service The revenue account this product's sales post to. Expense Account Inventory, Non-Inventory, and Service The cost of sales or expense account this product's cost posts to. Inventory Account Inventory only The asset account that holds this item's stock value. It appears only when the inventory type is Inventory. Add images (optional)
Open the Gallery tab to upload a Main Product Image (up to 5 MB) and more images under Product Gallery.
Save
Select Create and Close to save and close the drawer, or Create and New to save and start another product. Once the product is approved, it appears in the product search on sales and purchasing screens.
Custom fields appear as their own tab
If your workspace has defined custom fields for products, the drawer shows an extra Custom Fields tab where you fill them in. If you do not see the tab, no product custom fields have been set up.
Approval gates availability
A new product is created as pending until someone with the approve permission approves it. Until then it does not appear when you pick a product on a document. If a product is not showing up, check that it is both Active and Approved.
Opening stock is entered separately
This form does not capture what you already have on hand at go-live. A new Inventory product starts with zero stock. Record your starting quantity with an Inventory Adjustment: enter the New Quantity, and turn on Value Adjustment to give the stock a value, because a product with no cost history otherwise adjusts at zero value.
Low-stock alerts
ZyncLedger can notify you when an Inventory item runs low. The alert is in-app, it does not block a sale, and it needs three things in place:
- The product has a Re-Order Point above 0. Without one, you are alerted only if its stock goes negative.
- The product's own alert bell is on. Select the bell in the Alert column of the Products list, or in the product's header in the Inventory Centre. A filled bell means alerts are on. New products start with the bell off. The bell is the only way to switch it: the product form, Batch Edit, and Import CSV do not change it. Changing it needs the edit products permission.
- At least one user has ticked Notify me on low stock under Settings → Notifications (offered to admin users).
The alert fires once, when on-hand drops from at or above the re-order point to below it, or goes negative. It does not repeat while stock stays low. Only Inventory products have a bell; Non-Inventory, Service, and Bundle products show a dash.
The Products list
The list shows, by default: Product, Product Code, Description, Type, Product Type, Category, Qty in Hand, Re-Order Point, Alert, Cost, Price, Profit Margin, Parent, and Actions. Use the column picker to add SKU, Image, Wholesale Price, Weight (grams), Status, or Created By. You can filter by status, inventory type, product type, product category, and approval.
The toolbar and each row offer these actions:
| Action | What it does | Needs |
|---|---|---|
| Import CSV | Creates products from a CSV file. Choose whether rows matching an existing product (same name and type) are skipped or update that product. | Create and edit products |
| Batch Edit | Edits names, codes, SKUs, prices, tax, discount, classification, and status for many products in one grid. Inventory type and accounts stay read-only. | Edit products |
| Print Labels | Opens barcode label printing for your products. | Nothing extra |
| Add Product | Opens a new product form. | Create products |
| Edit (row) | Opens the product form. | Edit products |
| View Inventory Balance Detail (row) | Opens the Inventory Balance Detail report for that product in a new tab. | The report's own permissions apply |
| Delete (row) | Deletes the product, if nothing depends on it (see below). | Delete products |
Edit, deactivate, or delete
Select the edit icon on a product row, change what you need, and select Update Product. The Inventory Type and the account links are fixed once the product exists, so they are read-only when you edit.
To stop a product being used without losing its history, clear Active rather than deleting it.
When a product cannot be deleted
ZyncLedger blocks deleting a product that has child products beneath it, or that appears on any document at all. That includes documents that post nothing, such as a Quotation, Sales Order, Purchase Order, or Request Note, as well as anything that moved stock or posted to the ledger. It also blocks deleting a product that is an item in a bundle or, with the Bill of Materials app, part of a BOM recipe. Deactivate the product instead, or remove its children first.
Options added by apps
Some product options only exist once an app is installed for your workspace. Without them, the product form is exactly as described above. Each app is installed the same way: open Apps → Apps, select the app's card, leave Enabled on, and select Save. Then open any other page to see the new options. The Apps screen shows for users who can open Permissions.
| App | What it adds to products | Applies to |
|---|---|---|
| Bundle Products | A Bundle inventory type made of other products | New Bundle products |
| Multiple Units of Measurement | Selling and buying in several units, such as Piece and Box | Inventory |
| Serial / IMEI Tracking | Tracking each unit by its serial or IMEI number | Inventory |
| Bill of Materials | Marking a product as a finish good you make | Inventory and Non-Inventory |
A product can use multiple units or serial tracking, not both.
Bundle products
Gated featureInstall Bundle Products first
Bundles come with the Bundle Products app. Until it is installed, the Bundle inventory type does not appear. To install it, open Apps → Apps, select the Bundle Products card, leave Enabled on, select Save, and confirm Install. Once you have any bundle, the app cannot be uninstalled until every bundle is deleted, and a bundle that has been used on a document cannot be deleted. To stop using bundles, make them inactive.
A bundle sells a set of products as one item with its own name, code, SKU, and price, such as a gift hamper or a starter kit. It holds no stock and has no accounts of its own: when you sell one, each item inside it leaves stock and posts through that item's own accounts.
To create one, start a new product and set the Inventory Type to Bundle. The form changes:
- The Accounts tab is replaced by a Group Items tab.
- Cost is greyed out. It is worked out from the items: each item's Cost times how many go in.
- There is no Re-Order Point, Weight (grams), or Parent Product. A bundle's weight is its items' weights added up (if any item is not weighed, the bundle has no weight). Stock alerts are set on the items, not the bundle.
On the Group Items tab, add each product under Items in this bundle and enter its Qty per bundle: how many go into one bundle. The grid shows each item's Product and Type. If the items cost more than the bundle's Price, the tab warns you how much you lose on each one sold.
| Rule | Detail |
|---|---|
| At least one item | A bundle with no items cannot be saved. Each Qty per bundle must be more than zero, and each product can appear once. |
| What can go in | Inventory, Non-Inventory, and Service products that are active and approved. Not another bundle, not the bundle itself, and not a serial-tracked product. |
| What a bundle cannot be | A parent or child product, serial-tracked, or sold in multiple units. |
| Tax | The bundle is taxed at its own Default Tax % and Tax Inclusive setting. The items' tax rates are not used. |
| Items lock once used | You can change the items until the bundle appears on any document. After that they are locked. To sell a different set, create a new bundle and deactivate the old one. |
| Import | Bundles cannot be created with Import CSV. Create them in the product form. |
You can put a bundle on a Quotation, Sales Order, Invoice, Delivery Order, Invoice Credit, Bank Receipt, and the POS. It is refused on purchase documents (Purchase Order, GRN, GRN Credit, Bank Payment) and on stock documents such as a Stock Transfer, Request Note, Inventory Adjustment, Issue Note, or Issue Return: buy and move the items on their own lines instead. When a bundle is sold, each item's stock and cost of sales post at that item's average cost, and the bundle's revenue is split across the items' sales accounts in proportion to their prices.
When a product is an item in one or more bundles, its Product Details tab shows an In N bundles panel naming them. While it is in a bundle, the product cannot be deleted, and its units and serial setting are fixed.
Units of measurement
Gated featureInstall Multiple Units of Measurement first
Multiple units come with the Multiple Units of Measurement app. Until it is installed, the Units of measurement box and the Lists → Units screen do not appear. To install it, open Apps → Apps, select the Multiple Units of Measurement card, leave Enabled on, and select Save. Once any product uses multiple units, the app cannot be disabled or uninstalled.
Use this when you sell or buy an Inventory product in more than one unit, such as by the piece and by the box, while ZyncLedger keeps its stock and cost in one base unit. Set up your units first under Lists → Units.
On the product form, tick Sell / buy this product in multiple units (e.g. Piece, Box, Dozen), then add a row per unit with Add unit:
| Column | What it does |
|---|---|
| Unit | The unit, from your Units list. |
| Per base | How many base units make one of this unit. The base unit is always 1. |
| Price | The selling price for this unit. Leave blank to use the base price times Per base. |
| Base | The unit stock and cost are kept in. Choose one. |
| Default | The unit that prefills on a document line. Choose one. |
The checkbox can only be set when you create the product. When you edit, existing units keep their Per base and Base and cannot be removed, but you can change their Price, switch the Default, or add new units. A product cannot use multiple units and serial tracking together.
Serial / IMEI tracking
Gated featureInstall Serial / IMEI Tracking first
Serial tracking comes with the Serial / IMEI Tracking app. Until it is installed, the Stock tracking box does not appear. To install it, open Apps → Apps, select the Serial / IMEI Tracking card, leave Enabled on, and select Save. Once any product is serial-tracked, the app cannot be disabled or uninstalled.
For an Inventory product, the Stock tracking box lets you tick Track serial / IMEI numbers so each unit is recorded by its own number. Set Min length and Max length (each 1 to 64 characters) to match your serial format. These settings can only be chosen when you create the product; they are locked when you edit. A serial-tracked product cannot use multiple units and cannot go in a bundle.
Bill of Materials: finish goods
Gated featureInstall Bill of Materials first
Finish goods come with the Bill of Materials app. Until it is installed, the Bill of Materials box does not appear. To install it, open Apps → Apps, select the Bill of Materials card, leave Enabled on, select Save, and confirm Install. Once a job exists, the app cannot be uninstalled.
For an Inventory or Non-Inventory product, the Bill of Materials box adds:
| Field | What it does |
|---|---|
| Finish good | Marks the product as something a Bill of Materials can make. A Non-Inventory finish good is never held in stock: producing it moves its cost to the product's expense account. |
| Default supplier | The supplier a production plan's purchase order for shortages buys this product from. Optional. |
| Lead time (days) | How many days after ordering that purchase order expects it. Optional. |
The Products list gains a Finish good filter. Finish goods also have their own page, Bill of Materials → Finish Goods, with its own permissions; its Add Finish Good button opens this same form with Finish good already ticked.
Related
- Product types & categories classify products for grouping and reporting.
- Chart of Accounts holds the sales, expense, and inventory accounts a product posts to.
- Document numbering sets whether product codes are generated automatically or typed by hand.
- Customers and Suppliers are the parties you sell to and buy from.
- Invoice is where a product's price, tax, and discount defaults prefill the sale.
- GRN is where you receive Inventory products into stock.
- Inventory Adjustment records starting stock and stock corrections.