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 TypeTracks stock?Inventory accountHow its cost is treated
InventoryYes. 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-InventoryNo. 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.
ServiceNo. 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:

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.

  1. Open the Products list

    Go to Inventory → Products.

  2. Start a new product

    Select Add Product. The Create New Product drawer opens on its Product Details tab.

  3. 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.

  4. 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.

  5. 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.

  6. Add a description (optional)

    Use Description for any detail you want on the product, for example its specification.

  7. 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.

  8. 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.

  9. Set the prices

    All amounts are in LKR.

    FieldWhat it does
    CostYour 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.
    PriceThe normal selling price that prefills a sales line (required, defaults to 0).
    Wholesale PriceAn alternative selling price used for customers marked Apply Wholesale Price. Optional.
  10. 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.

  11. 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.

  12. Set the tax and discount defaults

    These prefill onto a sales line so you type less on each document.

    FieldWhat it does
    Default Tax %The tax rate that prefills on the product's lines, from 0 to 100.
    Tax InclusiveWhen 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.
  13. Set the status flags

    FieldWhat it does
    ActiveOn by default. An inactive product stays for history but is not offered when you pick a product on a document.
    ApprovedOff 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.
  14. 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.

    FieldRequired forWhat it does
    Sales AccountInventory, Non-Inventory, and ServiceThe revenue account this product's sales post to.
    Expense AccountInventory, Non-Inventory, and ServiceThe cost of sales or expense account this product's cost posts to.
    Inventory AccountInventory onlyThe asset account that holds this item's stock value. It appears only when the inventory type is Inventory.
  15. Add images (optional)

    Open the Gallery tab to upload a Main Product Image (up to 5 MB) and more images under Product Gallery.

  16. 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:

  1. The product has a Re-Order Point above 0. Without one, you are alerted only if its stock goes negative.
  2. 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.
  3. 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:

ActionWhat it doesNeeds
Import CSVCreates 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 EditEdits 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 LabelsOpens barcode label printing for your products.Nothing extra
Add ProductOpens 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.

AppWhat it adds to productsApplies to
Bundle ProductsA Bundle inventory type made of other productsNew Bundle products
Multiple Units of MeasurementSelling and buying in several units, such as Piece and BoxInventory
Serial / IMEI TrackingTracking each unit by its serial or IMEI numberInventory
Bill of MaterialsMarking a product as a finish good you makeInventory and Non-Inventory

A product can use multiple units or serial tracking, not both.

Bundle products

Gated feature

Install 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.

RuleDetail
At least one itemA 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 inInventory, 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 beA parent or child product, serial-tracked, or sold in multiple units.
TaxThe bundle is taxed at its own Default Tax % and Tax Inclusive setting. The items' tax rates are not used.
Items lock once usedYou 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.
ImportBundles 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 feature

Install 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:

ColumnWhat it does
UnitThe unit, from your Units list.
Per baseHow many base units make one of this unit. The base unit is always 1.
PriceThe selling price for this unit. Leave blank to use the base price times Per base.
BaseThe unit stock and cost are kept in. Choose one.
DefaultThe 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 feature

Install 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 feature

Install 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:

FieldWhat it does
Finish goodMarks 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 supplierThe 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