Einrichtung von PackScan und Inventur
Diese Anleitung führt dich durch alles, was in Dolibarr und auf dem Smartphone eingestellt werden muss. Rechne mit ein bis zwei Stunden für die Technik. Das Vergeben der Lagerplätze dauert je nach Sortiment länger, die Inventur-App hilft dabei.
1Vorher ausprobieren
Beide Apps laufen ohne Installation als Demo mit Testdaten. Öffne sie am besten gleich auf dem Smartphone, dann kannst du auch den Scanner testen.
Mit dem eigenen Dolibarr testen
Du kannst die Demo auch mit deinem Dolibarr verbinden: Zahnrad oben rechts, Demo-Modus ausschalten, API-URL und Token eintragen, „Verbindung testen“. Dolibarr sendet die dafür nötigen Freigaben (CORS) von Haus aus. Je nach Serverkonfiguration, Proxy oder Sicherheitsmodul kann die Verbindung von einer fremden Adresse trotzdem blockiert werden. Am zuverlässigsten testest du mit den selbst gehosteten Dateien aus Schritt 8.
2Voraussetzungen
- Dolibarr ab Version 24 (ältere Versionen auf Anfrage)
- Dolibarr ist über HTTPS erreichbar. Ohne HTTPS gibt das Smartphone die Kamera nicht frei.
- Produkte haben einen Barcode (EAN) oder eine GTIN im ergänzenden Attribut
- Aufträge kommen als Kundenaufträge in Dolibarr an, z. B. per Import von eBay, WooCommerce oder anderen Marktplätzen
- Ein Smartphone mit Kamera: iPhone mit iOS 16 oder neuer (Safari) oder Android 10 oder neuer (Chrome)
- WLAN im Lager. Jeder Scan fragt live bei Dolibarr nach.
3Module aktivieren
Unter Einstellungen › Module/Anwendungen müssen diese Module eingeschaltet sein:
| Modul | Wofür |
|---|---|
| Produkte | Artikel, Bilder, Lagerplatz |
| Barcodes | Feld „Barcode“ am Produkt. Als Standard-Typ EAN13 wählen. |
| Lagerverwaltung | Lager, Bestände, Lagerbewegungen |
| Kundenaufträge | Grundlage der Pickliste |
| Lieferungen | Einpacken und Versand abschließen in PackScan |
| API/Webservices (REST Server) | Schnittstelle, über die die Apps mit Dolibarr sprechen |
4Bestandsbuchung prüfen
Der Bestand darf nur an einer Stelle abgebucht werden. Schau unter Einstellungen › Module › Lagerverwaltung (Zahnrad), wann Dolibarr bei dir abbucht:
- Abbuchung beim Freigeben von Auftrag oder Rechnung (üblich bei Marktplatz-Importen): Dann muss „Tatsächlichen Lagerbestand beim Freigeben von Lieferungen reduzieren“ aus sein. Sonst bucht der Versandabschluss in PackScan ein zweites Mal ab.
- Abbuchung erst beim Versand: Dann bleibt nur diese Option an, und die beiden anderen sind aus. PackScan validiert die Lieferung, und Dolibarr bucht den Bestand dabei ab.
5Ergänzende Attribute anlegen
Ergänzende Attribute legst du im jeweiligen Modul an: Einstellungen › Module › Produkte bzw. Kundenaufträge, dort der Reiter „Ergänzende Attribute“. Der Attribut-Code muss klein und ohne Leerzeichen sein. Wenn du andere Codes verwendest, trägst du sie in den App-Einstellungen ein.
Am Produkt
| Attribut-Code | Bezeichnung | Typ | Pflicht? | Wofür |
|---|---|---|---|---|
lagerplatz | Lagerplatz | Zeichenkette, Länge 32 | ja | Sortierung der Pickliste, Wand-Raster, Vorschlag in der Inventur |
gtin | GTIN | Zeichenkette, Länge 14 | nein | Zweiter Barcode, z. B. Herstellercode, wenn das Barcode-Feld einen eigenen Code enthält |
letzte_inventur | Letzte Inventur | Datum und Uhrzeit | nein | Zeitpunkt der letzten Zählung. In der Produktliste kannst du danach filtern. |
Am Kundenauftrag
| Attribut-Code | Bezeichnung | Typ | Pflicht? | Wofür |
|---|---|---|---|---|
gepickt | Gepickt | Datum und Uhrzeit | ja | PackScan setzt es bei der Freigabe nach dem Picken. Freigegebene Aufträge verschwinden aus der Pickliste. |
umgebucht | Umgebucht | Datum und Uhrzeit | nur mit Versand-Automatik | Schutz gegen doppelte Umbuchung im Versandlauf |
dhl_shipment_number | Sendungsnummer | Zeichenkette, Länge 64 | nur mit Versand-Automatik | Aufträge mit Sendungsnummer zählen als versendet und erscheinen nicht mehr in der Pickliste |
Tipp: Bei „Sichtbarkeit“ reicht „nur in der Detailansicht“, dann bleibt die Liste übersichtlich.
6Versandarten
PackScan trägt beim Abschluss die Versandart an der Lieferung ein, wenn dort noch keine steht. Das passiert anhand der Sendungsnummer: Nummern einer Internetmarke beginnen mit A0 und bekommen die Brief-Versandart, alle anderen die Paket-Versandart.
Unter Einstellungen › Wörterbücher › Versandarten:
| Code | Bezeichnung | Tracking-URL |
|---|---|---|
DHL | DHL Paket (vorhanden, nur aktivieren) | https://www.dhl.de/de/privatkunden/pakete-empfangen/verfolgen.html?piececode={TRACKID} |
DPAG | Deutsche Post (neu anlegen) | https://www.deutschepost.de/de/s/sendungsverfolgung.html?piececode={TRACKID} |
Andere Codes, z. B. für Hermes oder GLS, trägst du in PackScan unter Einstellungen ein.
7API-Benutzer und Rechte
Lege für die Apps einen eigenen Benutzer an, keinen Administrator. So siehst du in Dolibarr genau, welche Buchungen von den Apps kommen, und kannst den Zugang jederzeit sperren.
- Benutzer & Gruppen › Neuer Benutzer, z. B. Login
lager-app. Kein Administrator, kein externer Benutzer. - Im Reiter „Berechtigungen“ die Rechte aus der Tabelle setzen.
- In der Benutzerkarte auf „Bearbeiten“ und beim Feld „Token für API“ einen Token erzeugen. Je nach Version liegt das im eigenen Reiter „Tokens für die API“.
- Token kopieren. Er wird in den Apps unter „API-Key (DOLAPIKEY)“ eingetragen.
| Modul | Berechtigung | Nur testen | PackScan | Inventur |
|---|---|---|---|---|
| Produkte | Produkte/Leistungen einsehen | ✓ | ✓ | ✓ |
| Produkte | Produkte/Leistungen erstellen/bearbeiten | ✓ Lagerplatz, letzte Inventur | ||
| Lagerverwaltung | Warenlager und Lagerbestände einsehen | ✓ | ✓ | ✓ |
| Lagerverwaltung | Lagerbewegungen einsehen | ✓ | ✓ | ✓ |
| Lagerverwaltung | Lagerbewegungen erstellen/bearbeiten | ✓ Bestandskorrektur | ||
| Kundenaufträge | Kundenaufträge einsehen | ✓ | ✓ | |
| Kundenaufträge | Kundenaufträge erstellen/bearbeiten | ✓ Feld „gepickt“ | ||
| Kundenaufträge | Kundenaufträge abschließen | ✓ | ||
| Lieferungen | Lieferungen einsehen | ✓ | ✓ | |
| Lieferungen | Lieferungen erstellen/bearbeiten | ✓ Sendungsnummer, Versandart | ||
| Lieferungen | Lieferungen freigeben | ✓ | ||
| Geschäftspartner | Geschäftspartner einsehen | ✓ | ✓ Kundenname |
Produktbilder und Versandarten liest die App mit denselben Rechten, dafür ist nichts Zusätzliches nötig.
8Apps installieren
Die Apps sind einfache Dateien, eine Installation auf dem Server oder eine Datenbank brauchen sie nicht. Am einfachsten legst du sie in den custom-Ordner deiner Dolibarr-Installation. Dann erkennt die App die API-URL selbst.
- PackScan-Inventur_v1.2.1.zip herunterladen und entpacken. Alternativ das Repository von GitHub klonen.
- Ordner anlegen:
htdocs/custom/lager/ - Den Inhalt des Ordners
lager-appshineinkopieren:index.html,packscan.html,inventur.html, die beiden*.manifest.jsonund die Icons*-192.png,*-512.png,*-maskable-512.png. - Im Browser aufrufen:
https://dein-dolibarr.de/custom/lager/. Die Startseite verlinkt beide Apps.
Die Apps können auch auf einem anderen Webserver liegen. Dann trägst du die API-URL von Hand ein, sie lautet immer https://dein-dolibarr.de/api/index.php.
9Smartphone einrichten
PackScan und Inventur sind Web-Apps. Sie laufen im Browser, lassen sich aber wie eine normale App auf den Home-Bildschirm legen und starten dann im Vollbild. Ein App-Store wird nicht gebraucht.
iPhone (iOS)
- Die App-Adresse in Safari öffnen
- Teilen-Symbol › „Zum Home-Bildschirm“
- App über das neue Icon starten
- Kamera-Zugriff einmal erlauben
Android
- Die App-Adresse in Chrome öffnen
- Menü ⋮ › „App installieren“ oder „Zum Startbildschirm hinzufügen“
- App über das neue Icon starten
- Kamera-Zugriff einmal erlauben
Danach in jeder App einmal das Zahnrad öffnen, API-URL und Token eintragen und „Verbindung testen“ tippen. Beide Apps teilen sich URL und Token, wenn sie unter derselben Adresse liegen.
10Einstellungen der Apps
Alle Einstellungen erreichst du über das Zahnrad oben rechts. Sie gelten für das jeweilige Gerät, jedes Smartphone wird also einmal eingerichtet.
Gemeinsam für beide Apps
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Dolibarr-API-URL | automatisch im custom-Ordner | Adresse der REST-Schnittstelle |
| API-Key (DOLAPIKEY) | leer | Token des API-Benutzers |
| Extrafeld-Code Lagerplatz | lagerplatz | Attribut-Code am Produkt |
| Extrafeld-Code GTIN/EAN | gtin | Zweiter Barcode, wird gesucht, wenn der Barcode nicht passt |
| Demo-Modus | aus (in der öffentlichen Demo an) | Testdaten statt Dolibarr |
| Sprache | Sprache des Browsers | 24 Sprachen: Deutsch, Englisch, Französisch, Spanisch, Italienisch, Portugiesisch, Niederländisch, Polnisch, Tschechisch, Slowakisch, Ungarisch, Rumänisch, Bulgarisch, Kroatisch, Slowenisch, Griechisch, Schwedisch, Dänisch, Norwegisch, Finnisch, Estnisch, Lettisch, Litauisch, Ukrainisch. Wird die Browsersprache nicht unterstützt, startet die App auf Englisch. |
| Taschenlampe | aus | Bleibt an, bis du sie ausschaltest, auch nach einem Neustart der App |
Nur PackScan
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Nur abgerechnete Aufträge in die Pickliste | an | An: nur freigegebene Aufträge mit Status „abgerechnet“, also bezahlte Marktplatz-Bestellungen. Aus: alle freigegebenen Aufträge. |
| Ausgeblendete Produkte | DE_*, eBayPlus, DUMMY | Referenzen, die nie gepickt werden, z. B. Porto-Positionen. * steht für beliebige Zeichen. |
| EAN: hervorgehobene letzte Ziffern | 4 | 4, 5 oder 6 Endziffern groß neben jedem Artikel |
| Raster: Zeile 1 ist | oben | Zählrichtung der Zeilen im Wand-Raster |
| Extrafeld-Code „gepickt“ | gepickt | Datumsfeld am Kundenauftrag |
| Versandart-Code Paket / Brief | DHL / DPAG | Wird eingetragen, wenn die Lieferung noch keine Versandart hat |
| Auftrag nach dem Einpacken abschließen | an | Setzt den Kundenauftrag auf „Geliefert“ |
| Lieferung zusätzlich schließen | aus | Schließt die Lieferung nach dem Validieren. Nur einschalten, wenn du geschlossene Lieferungen brauchst. |
| Gezählte Mengen auf 0 setzen | Setzt den Pick-Fortschritt auf diesem Gerät zurück |
Nur Inventur
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Extrafeld-Code Letzte Inventur | letzte_inventur | Datums- und Uhrzeitfeld am Produkt |
| Lager auswählen und Reihenfolge | alle Lager | Welche Lager beim Zählen erscheinen und in welcher Reihenfolge |
| „Zuletzt gezählt“ leeren | Leert die Liste der zuletzt gezählten Artikel | |
| Inventurliste exportieren | Auf der Startseite der Inventur: Zählliste (sortiert nach Lagerplatz, Soll je Lager, Feld für Ist) oder Inventurprotokoll (gebuchte Korrekturen eines Zeitraums) als PDF oder CSV. Es gelten die ausgewählten Lager. |
11Wo die Daten liegen
Die Apps haben keinen eigenen Server und keine eigene Datenbank. Es gibt nur zwei Orte:
In deinem Dolibarr
- Lagerplatz, GTIN und letzte Inventur am Produkt
- Bestandskorrekturen als Lagerbewegung mit Inventur-Code
- „gepickt“ am Kundenauftrag
- Sendungsnummer, Versandart und Status der Lieferung
- Status des Kundenauftrags
Im Browser des Smartphones
- API-URL und Token
- Alle Einstellungen aus Schritt 10
- Pick-Fortschritt und begonnene Lieferungen, falls die App zwischendurch geschlossen wird
- Letzter vergebener Lagerplatz und die Liste der zuletzt gezählten Artikel
Die Daten im Browser liegen im lokalen Speicher der Website, alle Schlüssel beginnen mit ps_. Beide Apps teilen sich diesen Speicher, wenn sie unter derselben Adresse liegen. Kamerabilder werden nur im Gerät ausgewertet und weder gespeichert noch übertragen.
Zum Löschen: in den Einstellungen „Alle Einstellungen auf diesem Gerät löschen“ tippen oder in den Browser-Einstellungen die Websitedaten löschen. In Dolibarr bleibt dabei alles erhalten.
12Lagerplätze vergeben
Ein Lagerplatz ist ein Text mit Punkten und beschreibt den Weg von vorn nach hinten: Raum, Wand oder Regal, Zeile, Spalte. Die letzten beiden Stellen sind immer Zeile und Spalte.
| Beispiel | Bedeutung |
|---|---|
2.LW1.3.12 | Raum 2, Lochwand 1, Zeile 3, Spalte 12 |
1.R4.2.5 | Raum 1, Regal 4, Fachboden 2, Platz 5 |
2.SLW.E1.2.11 | Raum 2, Schrank-Lochwand, Ebene 1, Zeile 2, Spalte 11 |
- Zeile und Spalte müssen Zahlen sein. Die Pickliste sortiert numerisch, also 2 vor 10.
- Alle Artikel mit demselben Anfang, z. B.
2.LW1, bilden eine Wand. PackScan zeichnet sie als Raster. - Am schnellsten geht es mit der Inventur-App: Wand von links nach rechts abgehen, scannen, speichern. Hat ein Artikel noch keinen Platz, schlägt die App den zuletzt gespeicherten plus eine Spalte vor. Mit + und − änderst du jede Stelle einzeln.
13Täglicher Ablauf
- Picken: PackScan, Reiter „Pickliste“. Artikel in Reihenfolge scannen oder Menge tippen. Am Ende „Gepickte Aufträge freigeben“.
- Lieferungen erzeugen: mit der Versand-Automatik per Versandlauf, sonst in Dolibarr am Auftrag „Lieferung erstellen“ und die Sendungsnummer eintragen.
- Einpacken: PackScan, Reiter „Lieferungen“. Label oder Internetmarke scannen, dann jeden Artikel. Nach dem letzten Artikel schließt die App Lieferung und Auftrag ab.
- Inventur: nebenbei, wann immer Zeit ist. Artikel scannen, Platz und Menge prüfen, speichern.
14Fehlerbehebung
| Meldung | Ursache und Lösung |
|---|---|
| Kamera startet nicht, NotAllowedError | Die Seite läuft nicht über HTTPS, oder der Kamera-Zugriff wurde abgelehnt. In iOS unter Einstellungen › Safari › Kamera bzw. in Chrome über das Schloss-Symbol neben der Adresse erlauben. |
| HTTP 401 | Token falsch oder abgelaufen. In Dolibarr neu erzeugen und in der App eintragen. |
| HTTP 403 | Dem API-Benutzer fehlt ein Recht. Tabelle in Schritt 7 prüfen. |
| Failed to fetch / Load failed | Adresse falsch, Dolibarr nicht erreichbar oder nur über HTTP. Die API-URL im Browser öffnen: …/api/index.php/status muss eine Antwort liefern. |
| Pickliste leer | Aufträge müssen freigegeben sein. Ist „Nur abgerechnete Aufträge“ an, müssen sie außerdem als abgerechnet markiert sein. Bereits gepickte Aufträge und Aufträge mit Sendungsnummer erscheinen nicht. |
| Keine Lieferungen | Der Reiter zeigt nur Lieferungen im Entwurf. Validierte Lieferungen gelten als versendet. |
| Produkt nicht gefunden | Barcode am Produkt fehlt oder weicht ab. Die App sucht zuerst im Barcode-Feld, dann im GTIN-Attribut. |
| Kein Wand-Raster | Der Lagerplatz endet nicht auf zwei Zahlen, oder der Attribut-Code in den Einstellungen stimmt nicht. |
| Bestand doppelt abgebucht | Schritt 4 prüfen: Abbuchung bei Lieferung ausschalten, wenn schon beim Auftrag oder bei der Rechnung abgebucht wird. |
Hilfe bei der Einrichtung gibt es im Einrichtungspaket, oder schreib mir.

