<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/index.php?action=history&amp;feed=atom&amp;title=Inventur_and_PackScan</id>
	<title>Inventur and PackScan - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/index.php?action=history&amp;feed=atom&amp;title=Inventur_and_PackScan"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;action=history"/>
	<updated>2026-11-02T17:14:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;diff=68520&amp;oldid=prev</id>
		<title>Eldy at 18:26, 22 October 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;diff=68520&amp;oldid=prev"/>
		<updated>2026-10-22T18:26:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:26, 22 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{#lang: en}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Overview==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Overview==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki_test:diff::1.12:old-68390:rev-68520 --&gt;
&lt;/table&gt;</summary>
		<author><name>Eldy</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;diff=68390&amp;oldid=prev</id>
		<title>Sgrumpelt: edit the Version number of my current release</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;diff=68390&amp;oldid=prev"/>
		<updated>2026-10-21T10:28:21Z</updated>

		<summary type="html">&lt;p&gt;edit the Version number of my current release&lt;/p&gt;
&lt;a href=&quot;https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;amp;diff=68390&amp;amp;oldid=68389&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Sgrumpelt</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;diff=68389&amp;oldid=prev</id>
		<title>Sgrumpelt: Create PackScan and Inventur documentation with setup instructions, demos and source code links</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Inventur_and_PackScan&amp;diff=68389&amp;oldid=prev"/>
		<updated>2026-10-21T10:26:56Z</updated>

		<summary type="html">&lt;p&gt;Create PackScan and Inventur documentation with setup instructions, demos and source code links&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#lang: en}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PackScan and Inventur&amp;#039;&amp;#039;&amp;#039; are two free, open-source mobile web applications for Dolibarr. They support barcode-based order picking, packing verification, stock counting and storage location management.&lt;br /&gt;
&lt;br /&gt;
The applications are developed by Stefan Grumpelt, gRoods.de, and are used daily in his own warehouse.&lt;br /&gt;
&lt;br /&gt;
They run in the smartphone browser and communicate directly with an existing Dolibarr installation through its REST API. No additional application backend or database is required.&lt;br /&gt;
&lt;br /&gt;
== Project information ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Item !! Information&lt;br /&gt;
|-&lt;br /&gt;
| Applications || PackScan and Inventur (Inventory)&lt;br /&gt;
|-&lt;br /&gt;
| Author || Stefan Grumpelt, gRoods.de&lt;br /&gt;
|-&lt;br /&gt;
| Version documented || 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| License || GNU General Public License v3.0 or later&lt;br /&gt;
|-&lt;br /&gt;
| Price || Free download; optional paid setup and support&lt;br /&gt;
|-&lt;br /&gt;
| Dolibarr compatibility || Developed and used with Dolibarr 24&lt;br /&gt;
|-&lt;br /&gt;
| Platforms || Safari on iPhone from iOS 16; Chrome on Android&lt;br /&gt;
|-&lt;br /&gt;
| Interface languages || 24 languages, including English, German, French, Italian and Spanish&lt;br /&gt;
|-&lt;br /&gt;
| Website || [https://groods.de/packscan/ Project website]&lt;br /&gt;
|-&lt;br /&gt;
| Source code || [https://github.com/groods-apps/packscan/ GitHub repository]&lt;br /&gt;
|-&lt;br /&gt;
| Documentation || [https://groods.de/packscan/anleitung-en.html English] / [https://groods.de/packscan/anleitung.html German]&lt;br /&gt;
|-&lt;br /&gt;
| Contact || info@groods.de&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== PackScan: order picking ===&lt;br /&gt;
&lt;br /&gt;
* Combine open orders into a picking list sorted by storage location.&lt;br /&gt;
* Group identical products across multiple orders.&lt;br /&gt;
* Display product images, quantities and prominent barcode end digits.&lt;br /&gt;
* Display storage locations in a visual wall or shelf grid.&lt;br /&gt;
* Scan products or enter quantities manually.&lt;br /&gt;
* Allocate picked quantities to the oldest orders first.&lt;br /&gt;
* Release complete orders while leaving incomplete orders pending.&lt;br /&gt;
* Exclude postage and other non-pickable products through the settings.&lt;br /&gt;
&lt;br /&gt;
=== PackScan: packing verification ===&lt;br /&gt;
&lt;br /&gt;
* Scan a shipment label to open the matching Dolibarr shipment.&lt;br /&gt;
* Verify products by barcode before packing them.&lt;br /&gt;
* Receive visual and audible feedback for correct and incorrect items.&lt;br /&gt;
* View packing progress for each shipment.&lt;br /&gt;
* Validate shipments and close orders according to the application settings.&lt;br /&gt;
&lt;br /&gt;
Shipment lookup supports DHL labels and the Data Matrix code of Deutsche Post Internetmarke labels. The shipment number must already be recorded in the corresponding Dolibarr shipment.&lt;br /&gt;
&lt;br /&gt;
=== Inventur: stock counting ===&lt;br /&gt;
&lt;br /&gt;
* Find products using their standard barcode or an additional GTIN field.&lt;br /&gt;
* Display product information, images and stock by warehouse.&lt;br /&gt;
* Assign or update storage locations.&lt;br /&gt;
* Suggest the next storage column when placing products sequentially.&lt;br /&gt;
* Adjust stock quantities by warehouse.&lt;br /&gt;
* Record the date and time of the last count.&lt;br /&gt;
* Warn if a product has already been counted on the same day.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Scanning a product does not change stock.&amp;#039;&amp;#039;&amp;#039; Selecting Save immediately posts the stock difference as a Dolibarr stock movement with an INV-prefixed reference. Current stock is reloaded before posting.&lt;br /&gt;
&lt;br /&gt;
=== Mobile operation ===&lt;br /&gt;
&lt;br /&gt;
* Camera scanning for EAN, Code 128, QR and Data Matrix.&lt;br /&gt;
* Torch control on supported devices and browsers.&lt;br /&gt;
* Audible feedback and visual confirmation.&lt;br /&gt;
* Protection against repeatedly counting a barcode that remains in view.&lt;br /&gt;
* Support for Bluetooth scanners that act as a keyboard.&lt;br /&gt;
* Home-screen icons for direct access to each application.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* An existing Dolibarr installation accessible over HTTPS.&lt;br /&gt;
* Access to the Dolibarr REST API.&lt;br /&gt;
* A dedicated API user with appropriate permissions.&lt;br /&gt;
* Configured product barcodes and extra fields.&lt;br /&gt;
* Products, stock/warehouses, customer orders and shipments enabled for the complete workflow.&lt;br /&gt;
* A reliable connection between the smartphone and Dolibarr.&lt;br /&gt;
&lt;br /&gt;
Developed and used with Dolibarr 24. Older versions require separate compatibility testing.&lt;br /&gt;
&lt;br /&gt;
The documented shipping workflow uses DHL and Deutsche Post shipping methods. Shipping-method codes can be adjusted in the application settings.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
These applications are standalone REST API clients, rather than conventional modules installed through the Dolibarr external-module installer.&lt;br /&gt;
&lt;br /&gt;
# Download and extract the application package.&lt;br /&gt;
# Create the directory &amp;lt;code&amp;gt;htdocs/custom/lager/&amp;lt;/code&amp;gt; in the Dolibarr installation.&lt;br /&gt;
# Copy the contents of the package&amp;#039;s &amp;lt;code&amp;gt;lager-apps&amp;lt;/code&amp;gt; directory into this directory.&lt;br /&gt;
# Keep the HTML files, icons and manifest files together.&lt;br /&gt;
# Configure the required Dolibarr modules, extra fields and API permissions.&lt;br /&gt;
# Open &amp;lt;code&amp;gt;https://your-dolibarr.example/custom/lager/&amp;lt;/code&amp;gt; on the smartphone.&lt;br /&gt;
# Select an application and open its settings.&lt;br /&gt;
# Enter the Dolibarr API address and API token.&lt;br /&gt;
# Disable demo mode if enabled and test the connection.&lt;br /&gt;
# Review warehouse and stock-movement settings before using live data.&lt;br /&gt;
&lt;br /&gt;
The applications can optionally be added to the smartphone home screen.&lt;br /&gt;
&lt;br /&gt;
Detailed instructions:&lt;br /&gt;
&lt;br /&gt;
* [https://groods.de/packscan/anleitung-en.html English setup guide]&lt;br /&gt;
* [https://groods.de/packscan/anleitung.html German setup guide]&lt;br /&gt;
&lt;br /&gt;
=== Extra fields ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Default code !! Object !! Type !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| lagerplatz || Product || Text || Storage location, picking order and grid display&lt;br /&gt;
|-&lt;br /&gt;
| gtin || Product || Text, optional || Additional product barcode&lt;br /&gt;
|-&lt;br /&gt;
| letzte_inventur || Product || Date and time || Last stock count&lt;br /&gt;
|-&lt;br /&gt;
| gepickt || Customer order || Date and time || Release after picking&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Relevant field codes can be adjusted in the application settings.&lt;br /&gt;
&lt;br /&gt;
The optional server-side shipping automation additionally uses the order field &amp;lt;code&amp;gt;umgebucht&amp;lt;/code&amp;gt; to track stock transfers.&lt;br /&gt;
&lt;br /&gt;
=== API permissions ===&lt;br /&gt;
&lt;br /&gt;
Use a dedicated API user and grant only the permissions required for the selected workflow.&lt;br /&gt;
&lt;br /&gt;
The complete workflow requires permissions to:&lt;br /&gt;
&lt;br /&gt;
* Read and update products.&lt;br /&gt;
* Read warehouses and create stock movements.&lt;br /&gt;
* Read, update and close customer orders.&lt;br /&gt;
* Read, create and validate shipments.&lt;br /&gt;
* Read third parties.&lt;br /&gt;
&lt;br /&gt;
For initial tests with live data, use a read-only API user where possible.&lt;br /&gt;
&lt;br /&gt;
=== Stock configuration ===&lt;br /&gt;
&lt;br /&gt;
Review Dolibarr&amp;#039;s stock-movement settings before completing shipments.&lt;br /&gt;
&lt;br /&gt;
If stock is already deducted when an order or invoice is validated, shipment validation must not deduct it a second time. Configure the stock trigger to match the actual warehouse workflow.&lt;br /&gt;
&lt;br /&gt;
== Storage locations ==&lt;br /&gt;
&lt;br /&gt;
Storage locations are stored as text in a product extra field.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;2.LW1.3.12&amp;lt;/code&amp;gt; identifies room 2, wall LW1, row 3 and column 12.&lt;br /&gt;
&lt;br /&gt;
The final two parts identify the row and column. Preceding parts describe the room, wall, shelf or other storage structure.&lt;br /&gt;
&lt;br /&gt;
PackScan uses these locations to sort the picking list and display a visual storage grid.&lt;br /&gt;
&lt;br /&gt;
== Optional integrations ==&lt;br /&gt;
&lt;br /&gt;
The free applications do not include:&lt;br /&gt;
&lt;br /&gt;
* Marketplace or webshop order imports.&lt;br /&gt;
* Purchasing postage or generating shipping labels.&lt;br /&gt;
* Sending tracking information back to marketplaces.&lt;br /&gt;
* Server-side shipping automation.&lt;br /&gt;
&lt;br /&gt;
These workflows require separate integrations.&lt;br /&gt;
&lt;br /&gt;
Without shipping automation, labels are created in an external shipping tool and the corresponding shipments are prepared in Dolibarr.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
=== Connectivity ===&lt;br /&gt;
&lt;br /&gt;
Loading lists, looking up products and saving changes require a connection to Dolibarr.&lt;br /&gt;
&lt;br /&gt;
Local picking and packing progress is stored on the device and retained after a connection interruption. This is not a fully offline workflow.&lt;br /&gt;
&lt;br /&gt;
=== Multiple users ===&lt;br /&gt;
&lt;br /&gt;
* Picking progress is device-local. Use one picker per picking run.&lt;br /&gt;
* Multiple people can pack simultaneously when working on different shipments.&lt;br /&gt;
* Coordinate stock counts to avoid concurrent updates to the same product and warehouse. Reloading stock before saving does not constitute a reservation or lock.&lt;br /&gt;
&lt;br /&gt;
=== Partial shipments ===&lt;br /&gt;
&lt;br /&gt;
Create genuine partial shipments in Dolibarr.&lt;br /&gt;
&lt;br /&gt;
Finishing packing with missing items does not automatically reduce the quantities recorded in the shipment.&lt;br /&gt;
&lt;br /&gt;
=== Sets and variants ===&lt;br /&gt;
&lt;br /&gt;
* Sets are handled as individual products with their own barcode.&lt;br /&gt;
* Components of Dolibarr kits are not expanded.&lt;br /&gt;
* Product variants are handled as separate products with their own barcode.&lt;br /&gt;
&lt;br /&gt;
=== Inventory scope ===&lt;br /&gt;
&lt;br /&gt;
* Stock corrections involving lots or serial numbers must be performed in Dolibarr.&lt;br /&gt;
* Inventur does not currently provide a separate count sheet or an expected-versus-counted export.&lt;br /&gt;
* Inventory movements can be reviewed and exported in Dolibarr.&lt;br /&gt;
* The last-count field can be used to identify products that have not yet been counted.&lt;br /&gt;
&lt;br /&gt;
Products without a barcode can be counted manually using the quantity controls.&lt;br /&gt;
&lt;br /&gt;
== Data storage and access ==&lt;br /&gt;
&lt;br /&gt;
Business records are stored in the user&amp;#039;s Dolibarr installation.&lt;br /&gt;
&lt;br /&gt;
The browser stores the API address, API token, settings and local workflow progress. Camera images are processed locally and are not uploaded by the applications.&lt;br /&gt;
&lt;br /&gt;
Use a dedicated API user with permissions appropriate to the workflow.&lt;br /&gt;
&lt;br /&gt;
If a device is lost, its access can be revoked by renewing the relevant API user&amp;#039;s token in Dolibarr. Other devices using the same token will then need the new token.&lt;br /&gt;
&lt;br /&gt;
== Languages ==&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 supports 24 interface languages:&lt;br /&gt;
&lt;br /&gt;
Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish and Ukrainian.&lt;br /&gt;
&lt;br /&gt;
The applications follow the browser language by default and fall back to English for unsupported languages. A language can also be selected manually in the settings.&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
Replace the application files on the server while keeping the same application URLs. Browser-stored settings remain on the individual devices.&lt;br /&gt;
&lt;br /&gt;
The installed version is displayed in the application settings.&lt;br /&gt;
&lt;br /&gt;
See the [https://groods.de/packscan/#versionen project version history] for release information.&lt;br /&gt;
&lt;br /&gt;
== Demonstrations and download ==&lt;br /&gt;
&lt;br /&gt;
* [https://groods.de/demo/packscan/ PackScan demonstration]&lt;br /&gt;
* [https://groods.de/demo/inventur/ Inventur demonstration]&lt;br /&gt;
* [https://github.com/groods-apps/packscan/ Source code on GitHub]&lt;br /&gt;
* [https://groods.de/packscan/download/lager-apps.zip Download application package]&lt;br /&gt;
* [https://groods.de/packscan/anleitung-en.html English setup guide]&lt;br /&gt;
* [https://groods.de/packscan/anleitung.html German setup guide]&lt;br /&gt;
&lt;br /&gt;
The demonstrations use example data and require no registration.&lt;br /&gt;
&lt;br /&gt;
When testing with an existing Dolibarr installation, self-hosting the application files on the same origin is the most reliable option. Cross-origin connections from the public demonstration may be blocked by the server, proxy or security configuration.&lt;br /&gt;
&lt;br /&gt;
== Support and contributions ==&lt;br /&gt;
&lt;br /&gt;
Documentation and demonstrations are available online.&lt;br /&gt;
&lt;br /&gt;
Individual support is not included in the free download. Optional paid setup, training and assistance are available by arrangement.&lt;br /&gt;
&lt;br /&gt;
Bugs and feature requests can be submitted through the [https://github.com/groods-apps/packscan/ GitHub repository].&lt;br /&gt;
&lt;br /&gt;
Reports should include the application version, Dolibarr version, browser, device and steps to reproduce the issue.&lt;br /&gt;
&lt;br /&gt;
Do not publish API tokens, credentials or customer data.&lt;br /&gt;
&lt;br /&gt;
Contact: info@groods.de&lt;br /&gt;
&lt;br /&gt;
== License and third-party components ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2026 Stefan Grumpelt, gRoods.de.&lt;br /&gt;
&lt;br /&gt;
PackScan and Inventur are distributed under the &amp;#039;&amp;#039;&amp;#039;GNU General Public License v3.0 or later&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
SPDX-License-Identifier: &amp;lt;code&amp;gt;GPL-3.0-or-later&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software is provided without warranty as described in the license.&lt;br /&gt;
&lt;br /&gt;
Barcode recognition uses ZXing-C++ (Apache-2.0) through zxing-wasm (MIT). Internetmarke Data Matrix decoding follows the approach used by BinaryEye (MIT).&lt;br /&gt;
&lt;br /&gt;
Third-party components retain their respective licenses and notices.&lt;br /&gt;
&lt;br /&gt;
Dolibarr, eBay, DHL and Deutsche Post are trademarks of their respective owners. This is an independent project and is not an official product of those providers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;/div&gt;</summary>
		<author><name>Sgrumpelt</name></author>
	</entry>
</feed>