HTKapp Logo

Products Module (Catalog)

The HtkDoli Products module lets you consult, search and manage your catalog of physical products (stockable items). Services (non-stockable items) are handled in a dedicated module (Services Module). All information displayed faithfully reflects the business behavior of Dolibarr (prices, stocks, sale and purchase statuses, variants, kits, etc.).

Interface and Features (List)

The main view displays the list of all your products, with a floating header that automatically hides on scroll to free up space.

  • Search bar: Instant search by reference, label or barcode.
  • Barcode scanner: A dedicated icon (📷) opens the scanner to look up a product directly from its barcode or QR Code.
  • Sorting: Several orders are available:
    • Reference (A→Z, Z→A)
    • Label (A→Z, Z→A)
    • Price (ascending, descending)
    • Stock (ascending, descending)
  • Filters: An icon at the top of the screen lets you filter by availability:
    • All
    • In stock (> 0)
    • Out of stock (≤ 0)
  • Floating letter: When sorting alphabetically (Reference or Label), a blue bubble temporarily shows the current letter while scrolling, to help you find your way quickly in a long list.
  • Refresh: A button at the top of the screen triggers manual synchronization. The icon changes color depending on the state (gray = stale data, blue = in progress, green = success, red = error).

Displayed Information (Product Cards)

Each row representing a product displays:

  • The product's Dolibarr photo (a cube is shown as the default visual when no photo is attached).
  • The product reference (e.g. PR-0001).
  • The product label.
  • The pre-tax sales price (labeled "€ excl. tax").
  • The available physical stock, with a color code that lets you quickly spot products that are out of stock.

Quick Actions (Context Menu and Swipes)

A long press on a product opens a context menu with the following options:

  • View stock: Quick view of stock by warehouse.
  • Duplicate: Create a new product from an existing one.
  • Edit: Opens the product sheet in edit mode.
  • Delete: Permanently deletes the product (with a confirmation alert).

You can also use swipe gestures:

  • Swipe right to reveal the edit button.
  • Swipe left to reveal the delete button.

Pagination and States

  • The list loads in batches of 50 products. A "Load more" button appears at the bottom if more products exist on the server.
  • When there are no results, a clear message is displayed (differentiated depending on whether the search, the filter, or the catalog itself is empty).
  • A synchronization indicator is shown during loads.

Detail View (Consulting a product)

By tapping a product in the list, you access its detailed sheet, structured into clear sections.

Header (Hero Section)

  • Cube icon indicating the Product type.
  • Product reference and label.
  • Status badges:
    • On Sale / Off Sale (commercial status).
    • On Purchase if the product is also marked as purchasable.

If images are attached to the product (.jpg, .jpeg, .png, .webp), they appear in a horizontal carousel at the top of the sheet. A tap opens the full-screen preview (with zoom and panning).

General Information

  • Reference
  • Label
  • Barcode
  • Weight (in kg if filled in)

Categories / Tags

  • Displays the Dolibarr categories associated with the product as pills.
  • If you have edit rights, a "Edit tags" button lets you add or remove categories directly.

Prices & Taxes

  • Sales price excl. tax
  • Sales price incl. tax
  • Applied VAT rate

Stock

  • Physical Stock: Quantity actually present.
  • Theoretical Stock: Forecast quantity (including pending movements).
  • Detail by warehouse: For stockable products, the distribution by warehouse is displayed if the information is available.

Composition (Kit / Virtual)

If the product is a kit (or virtual product), the list of its child components is shown with their reference, label and quantity. Each component is tappable to navigate to its own sheet.

Component of

Conversely, if the product is used as a component in other kits, the list of parent products is displayed, also tappable.

Movement History

A dedicated link opens the complete history of stock movements (entries, exits, corrections) for the product.

Statistics

A grid of cards summarizes the use of the product in other modules, with the number of occurrences and the total amount. Each card is tappable to open the corresponding filtered list:

  • Quotes (commercial proposals)
  • Orders (customer)
  • Invoices (customer)
  • Contracts
  • Supplier Orders
  • Supplier Invoices
  • Interventions
  • Shipments

Supplier Prices

List of the rates negotiated with suppliers, each showing:

  • Supplier name
  • Supplier reference
  • Purchase price
  • Minimum quantity

If you have the produit.creer permission:

  • An "Add a supplier price" button at the bottom of the section opens a form to enter a new rate (supplier picker over the local cache of third parties marked as suppliers, free supplier reference, minimum quantity, purchase price excl. tax, optional VAT). The rate is sent to Dolibarr via the POST /products/{id}/purchase_prices endpoint.
  • A left swipe on a row exposes two actions: Edit (re-opens the pre-filled form to update via PUT /products/{id}/purchase_prices/{priceid}) and Delete (with a confirmation alert, calls DELETE /products/{id}/purchase_prices/{priceid}).

After each add, edit or delete, the section is reloaded automatically from the server.

Variants

  • If the product is a parent product, its variants (color, size, etc.) are listed.
  • If the product is itself a variant, its "siblings" (other variants of the same parent) are displayed, with the current variant highlighted.

If you have the produit.creer permission and the product is not itself a child variant, a "Create a variant" button is shown below the list. It opens a dedicated form that:

  • loads the available attributes from Dolibarr (GET /products/attributes) — Color, Size, etc.;
  • offers, for each attribute, a drop-down menu of the configured values (or "None");
  • accepts an optional variant reference (auto-generated if left blank) and a price impact excl. tax relative to the parent product;
  • submits the combination to POST /products/{id}/variants.

If the Dolibarr instance has not enabled the Product Combinations module (the attributes endpoint returns 404), the form degrades gracefully by showing the message "Le module Variantes Produit n'est pas activé sur cette instance Dolibarr", without blocking the rest of the product sheet. After a successful creation, the Variants section reloads automatically.

Description, Notes and Documents

  • Description: Rich descriptive text, stripped of its HTML formatting for optimized reading.
  • Notes: Public and private notes (the private note is marked with a padlock icon).
  • Documents: View, download (PDF preview) and add new documents (technical sheets, high-definition photos, etc.). A left swipe on a document row exposes the Delete action (with a confirmation alert) to remove the document from the Dolibarr server.

Available Actions

From the floating header of the sheet:

  • Edit (pencil icon): Opens the full product edit screen.
  • Stock correction: Opens the screen for adding a manual stock movement (correction, transfer, entry, exit).
  • Delete: Permanent deletion of the product (confirmation alert).

Create / Edit

The create-or-edit form for a product (or service) is split into coherent sections: Identity, Prices & taxes, Physical characteristics (products only: barcode, weight), Stock limits (products only: desired stock), Accounting, Miscellaneous and Notes.

The Identity section notably includes the "On purchase" toggle (status_buy) that marks the product as purchasable, in addition to the sale status.

For the Prices & taxes section:

  • VAT (%): this field is a picker (drop-down menu) populated from your Dolibarr instance's c_tva dictionary, no longer a free-text field. The list is loaded the first time the form is opened and then cached for the duration of the session. If the product being edited carries a custom rate that is not in the dictionary (custom configuration), that rate is still shown at the top of the picker so no value is lost. The selected rate is serialized as "20.00" exactly as before: no API change.

Business Behavior and Dolibarr

The Products module strictly respects the permissions and configuration of your Dolibarr instance.

Rights and Permissions

  • Read: You must have permission to read products for the list to be displayed.
  • Create / Edit: A "+" button in the top bar only appears if you have the produit.creer permission. This same permission gates access to the edit actions and to category management.
  • Delete: If allowed by your role, deletion from HtkDoli is immediate and permanent on the server side.

Synchronization

  • Initial loading in batches of 50.
  • Stock details by warehouse are loaded automatically for products with a non-zero stock.
  • Statistics, supplier prices, kits, variants and categories are fetched on demand when the detail sheet is opened.
  • A pull-to-refresh (pull down) on the list or the sheet forces a full refresh.

Products vs Services

In Dolibarr, products and services share the same table but are distinguished by their type field:

  • type = 0Product (stockable) — managed in this module.
  • type = 1Service (non-stockable) — managed in the Services Module.

The list and detail screens adapt automatically: the stock sections (physical stock, movements, warehouses) are displayed only for products.

Screenshots

3 screenshots — click to enlarge