This commit is contained in:
seb
2026-10-16 17:23:59 +02:00
parent 2f0c4aced1
commit 52f49fb651

View File

@@ -2,4 +2,25 @@ Process Incoming Product and Invoices: use draft_delivery_manifest tool to store
# Overview
use draft_delivery_manifest tool to store parsed invoice
first task a subagent to find "lieferant_id using GET /supplier" using information in the data.
then task a subagent to find existing links with articles using "`POST /supplier/{id}/articles` Params: `id: int, body?: { skus?: str[] }`" with all the SKUs of that supplieer we have in the data.
use the existing linked data to besser match vpe
finally call draft_delivery_manifest
- manifestType: "rechnung" or "lieferschein". For "lieferschein", prices and taxes must be null.
- Exclude non-product lines (shipping, handling, etc.).
- Line items: Count, vpe (default: 1), liefArtNr, mwst (7 or 19), and eknetto per Item(euro cents).
- Match supplier against . For unknown suppliers, extract lieferantName and set lieferant_id to null.
- Write notes strictly in German.
VPE (Verpackungseinheit) Logic:
VPE represents the number of individually sellable units inside a bulk item as sold by the store. If not explicitly split for individual sale, default to 1.
- "20 Boxen á 10 Stück" -> VPE = 20.
- "10 Gläser á 100 Filter" -> VPE = 10 (we sell the 10 glasses individually).
- "100 Stück" -> VPE = 1 (sold as one bulk pack).
- We don't sell the individual filters or Pieces, but typical VPEs like Beutel, Glässer, Boxen, Hefte
- That means that in "Y Hefte á X Blatt" the VPE is NOT X but: Y
- a so called "Display" also means VPE. So "20er Display" means VPE = 20
- eknetto is the price of one full vpe