diff --git a/web/src/units.js b/web/src/units.js
index 8f79567..fcac66f 100644
--- a/web/src/units.js
+++ b/web/src/units.js
@@ -114,6 +114,23 @@ export function stockLabelMitZweit(p) {
return zweit ? `${stockLabel(p)} · ${zweit}` : stockLabel(p);
}
+/**
+ * Artikelname, wie man ihn in einer Auswahlliste braucht: "Pesto Rosso ·
+ * Barilla · 190 g".
+ *
+ * Der blosse Name reicht nicht. Ein Vorrat enthaelt denselben Artikel von
+ * mehreren Herstellern und in mehreren Groessen; zwei Zeilen "Pesto Rosso"
+ * untereinander sind dann nicht zu unterscheiden, und man waehlt die falsche.
+ * Marke und Gebindegroesse sind genau die beiden Angaben, die sie trennen.
+ */
+export function artikelLabel(p, { groesse = true } = {}) {
+ if (!p) return "";
+ const gebinde = groesse && p.package_size > 0
+ ? `${fmt(p.package_size)} ${unitShort(p.base_unit)}`
+ : "";
+ return [p.name, p.brand, gebinde].filter(Boolean).join(" · ");
+}
+
// Auswahlmöglichkeiten für Menge beim Ein-/Auslagern eines Produkts.
export function unitOptions(product) {
const opts = [{ value: baseUnitToInput(product.base_unit), label: unitShort(product.base_unit) }];