There is a product catalog in Erply.
A "product" is a stock-keeping unit (SKU) that can be sold, purchased or moved between stores. A product has a name (can be different in each language) and can have up to eight codes. The first four codes, by convention, are designated:
Codes 5-8 can be enabled as a separate module and do not have fixed roles either (can be used as needed).
A product can be:
Bundle is an item that consists of one or more other products (components); this composition is called the recipe and it may be changed over time. Bundles are only used in sales. A bundle itself does not have an inventory quantity, nor does Erply attempt to calculate it. When a bundle is sold, its components are subtracted from inventory instead.
Matrix product is a virtual item that groups together different sizes and/or colors of the same basic item. This setup is most commonly used with clothing and footwear. A matrix product's children are called "variations" and each one of them is a regular product, which just holds a reference to its parent.
Matrix product (the parent) cannot be sold or purchased and it does not have inventory. In some cases, Erply may display the total inventory quantity of a matrix product — this is the quantities of all its variations combined. A matrix product has up to three dimensions (like Color and Size) and each variation corresponds to one combination of the dimensions' values (like color "Yellow" and size "8").
Assembly is basically a regular product, but it has a recipe, just like bundles, and there is a procedure for "assembling" it. "Assembling" adds N pcs of the assembly product into inventory, and at the same time subtracts from the inventory an appropriate amount of its components (the raw materials). It does not support labor costing or other advanced manufacturing features, but it is a more efficient alternative to bundles, and it is possible to see an assembly product's inventory quantity.
By status, products can be:
Archived products are ignored by Erply in most use cases, except in reports — eg. if an archived product has been sold, Sales Report will show it. Archiving a product does not remove its inventory quantity or other associated data. Product can be un-archived if needed. From the back office, products cannot be deleted — the "X" button archives instead.
The other two statuses are for controlling in which modules the item should show up — "not for sale" for products that should not be sold, but can be ordered from suppliers, and "no longer orderable" for products that should be the other way around. Back office and API do not actually prevent user from selling/purchasing the product, it just does not appear in the product picker.
Products can be grouped and classified in five dimensions:
These dimensions can be used for product filtering, and are somewhat interchangeable. Supplier has the most specific meaning and semantics of those, and is used elsewhere besides the product catalog. Groups and Categories are hierarchical, and searching products by group/category will return items from subgroups/subcategories as well. Priority Groups and Brands are flat lists.
A product can belong to just one group (and one category, one brand etc.) at a time. Product Group is a required field, so it is guaranteed that each product belongs to some branch in the product group tree. Other fields are optional.
A product can have a flag "non-stock product". These are items for which inventory quantity is not tracked, and which do not have a cost.
Product price can be defined on product card, but pricing options are discussed in more detail in section "Pricing".
Product has an inventory quantity, separately for each location (store, warehouse). Costs, inventory quantities, and inventory batches are discussed in more detail in section "Inventory".
Product card has a "tax rate" field, but taxing is discussed in more detail in section "Taxes".